Quantcast
Channel: プログラミング
Viewing all articles
Browse latest Browse all 7831

ExcelVBAのWorksheetFunctionオブジェクトで使用するAddress関数の使い方 - 教えて!ExcelVBA!

$
0
0

構文

構文は以下の通りです。

WorksheetFunction.Address(行番号, 列番号, [参照の種類], [参照の書式], [シート名])

解説

WorksheetFunctionは、ExcelVBAの組み込みオブジェクトで、Excelのワークシート関数をVBAから呼び出す際に使用します。Address関数は、指定した行番号と列番号を基にセル参照の文字列を返す関数です。Excelのセル参照(例:A1, B2など)をプログラム内で動的に作成する際に使用します。引数は以下のように構成されています。

引数内容
行番号セルの行を指定します。
例えば1を指定すると1行目(A1の1)になります。
列番号セルの列を指定します。
例えば1を指定するとA列になります。
参照の種類(省略可能)参照を相対参照にするか絶対参照にするかを指定します。
 1 = 絶対参照(例:$A$1)
 2 = 行相対、列絶対(例:A$1)
 3 = 行絶対、列相対(例:$A1)
 4 = 相対参照(例:A1)
参照の書式(省略可能)参照の形式を指定します。
TrueでR1C1形式、FalseでA1形式を指定します。
デフォルトはFalseです。
シート名(省略可能)セル参照にシート名を含めるかどうかを指定します。
シート名を指定すると、そのシートに属するセル参照が返されます。

プログラミング例

具体的なプログラミング例を紹介します。

(例1)A1形式で絶対参照を作成

Sub アドレス例1()
    Dim 行番号 As Integer
    Dim 列番号 As Integer
    Dim 結果 As String
    行番号 = 1 ' 1行目
    列番号 = 1 ' A列
    結果 = WorksheetFunction.Address(行番号, 列番号, 1)
    MsgBox "セル参照: " &結果 ' 結果は $A$1 と表示されます
End Sub

上記のプログラムは、行番号1、列番号1を基に、A1セルの絶対参照$A$1が返され、MsgBoxに表示されます。

(例2)相対参照でセル参照を作成

Sub アドレス例2()
    Dim 行番号 As Integer
    Dim 列番号 As Integer
    Dim 結果 As String
    行番号 = 3 ' 3行目
    列番号 = 2 ' B列
    結果 = WorksheetFunction.Address(行番号, 列番号, 4)
    MsgBox "セル参照: " &結果 ' 結果は B3 と表示されます
End Sub

上記のプログラムは、行番号3、列番号2(B列)を基に、B3という相対参照が作成され、MsgBoxで表示されます。

(例3)シート名を含めたセル参照を作成

Sub アドレス例3()
    Dim 行番号 As Integer
    Dim 列番号 As Integer
    Dim 結果 As String
    Dim シート名 As String
    行番号 = 5 ' 5行目
    列番号 = 3 ' C列
    シート名 = "シート1"
    結果 = WorksheetFunction.Address(行番号, 列番号, 1, False, シート名)
    MsgBox "セル参照: " &結果 ' 結果は シート1!$C$5 と表示されます
End Sub

上記のプログラムは、行番号5、列番号3(C列)を基に、シート名「シート1」を含めた絶対参照シート1!$C$5が作成され、MsgBoxで表示されます。

まとめ

Address関数を使用することで、動的にセル参照を作成することができます。引数を変更することで、絶対参照や相対参照、さらにはシート名を含めたセル参照を簡単に生成できます。これにより、複雑なシート操作や計算をプログラムで柔軟に実行できるようになります。


Viewing all articles
Browse latest Browse all 7831

Trending Articles