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