【Excel VBA】変数にシート名とセル番地(セル範囲)を代入

Excel VBA講座 開講中!

今回は変数に、文字列や数値だけでなく、シートやセル番地(セル範囲)などのオブジェクトも代入する使い方についてご紹介します。

※本ページはプロモーションが含まれています

スポンサーリンク
スポンサーリンク

変数にシート名とセル番地(セル範囲)を代入

シートを代入するための変数を宣言する場合、

Dim 変数名 As Object

または、

Dim 変数名 As Worksheet

のようになります。

またセル番地(セル範囲)を代入するための変数を宣言する場合、

Dim 変数名 As Object

または、

Dim 変数名 As range

のようになります。

どちらもObjectを使うことができますが、シートはWorksheet、セルはrangeを指定した方が後で見た時に分かりやすいかもしれません。
(この辺りはお好みで良いかと思われます)

下記のサンプル1はObjectで変数を宣言し、サンプル2はWorksheetとrangeを使って変数を宣言し、それぞれ「シート」という名前を付けたシートのセルA1に文字列「A1」、セルA2に文字列「A2」を入力したサンプルになります。

・サンプル1

Sub 変数にシート名とセル番地を代入1()

Dim sh As Object ‘シート名を格納するための変数
Dim Rng As Object ‘セル番地を格納するための変数
Dim cel As Object ‘セル番地を格納するための変数

Set sh = Worksheets(“シート”) ‘シート名を変数に格納
Set Rng = sh.range(“A1”) ‘セル番地を変数に格納
Set cel = sh.Cells(2, 1) ‘セル番地を変数に格納

Rng.Value = “A1” ‘指定したシートのセルに「A1」と入力
cel.Value = “A2” ‘指定したシートのセルに「A2」と入力

End Sub

サンプル2

Sub 変数にシート名とセル番地を代入2()

Dim sh As Worksheet ‘シート名を格納するための変数
Dim Rng As range ‘セル番地を格納するための変数
Dim cel As range ‘セル番地を格納するための変数

Set sh = Worksheets(“シート”) ‘シート名を変数に格納
Set Rng = sh.range(“A1”) ‘セル番地を変数に格納
Set cel = sh.Cells(2, 1) ‘セル番地を変数に格納

Rng.Value = “A1” ‘指定したシートのセルに「A1」と入力
cel.Value = “A2” ‘指定したシートのセルに「A2」と入力

End Sub

タイトルとURLをコピーしました