Vbaでセルを変数として使用するにはどうすればよいですか?

範囲または単一セルを変数として使用するには、まずその変数を範囲データ型で宣言する必要があります。それが完了したら、range オブジェクトを使用して、1 つのセルからこの変数までの範囲を指定する必要があります。これにより、範囲で使用できるすべてのプロパティとメソッドにアクセスできるようになります。

  1. キーワード「Dim」を使用して変数名を入力します。
  2. キーワードをRangeとして宣言します。
  3. 変数名を入力します。
  4. 変数に代入する範囲を指定します。
キーワード dim を使用します

選択範囲を範囲変数に設定します

変数に対して選択した範囲を使用し、その変数を使用してプロパティやメソッドにアクセスすることもできます。次のコードを考えてみましょう。

 Sub vba_range_variable() Dim rng As Range Set rng = Selection Selection.Clear End Sub

ただし、範囲以外のオブジェクトを選択すると、VBA がエラーを表示することに注意する必要があります。

範囲以外のオブジェクトを選択する

ただし、これは範囲を何度も変更する必要がない動的な方法でもあります。

変数を使用して範囲をコピーする

変数を範囲として宣言すると、その変数名を使用してその範囲をコピーすることもできます。範囲 A1:A10 を rng 変数として宣言したとします (上記の例)。次のコードを使用してコピーできます。

変数を使ってコピーアレンジする
 Sub vba_range_variable() Dim rng As Range Set rng = Range("A1:A10") rng.Copy End Sub

関数内で範囲変数を使用する

マクロを作成するときに、範囲変数を使用して関数内の範囲を参照することもできます。次のコードを考えてみましょう。

 Sub vba_range_variable() Dim iNames As Variant Dim rng As Range Set rng = Range("A1:A10") Range("B1") = WorksheetFunction.Max(rng) End Sub
関数で範囲変数を使用する

A1:A10の範囲の値を取り、変数「rng」を使用する必要があるため、最大値の変数を使用して出力しました。

関連: VBA で WorksheetFunction を使用する方法

行と列の数を数える

前に述べたように、変数を範囲として指定すると、すべてのプロパティとアクセス メソッドも取得されます。行と列をカウントしたい場合を想像してください。使用できるコードは次のとおりです。

 Sub vba_range_variable() Dim rng As Range Set rng = Range("A1:A10") MsgBox "This range has " & _ rng.Rows.Count & " row(s) and " & _ rng.Columns.Count & " coulmn(s)." End Sub
行と列の数を数える

このコードを実行すると、変数で指定した範囲の行数と列数を示すメッセージが表示されます。

範囲を含むワークシートの定義

上記のすべての例では、ワークシートについて言及せずに範囲を使用しているため、このコードを実行すると、VBA は常にアクティブ シート内の範囲を参照します。ただし、特定のワークシートを参照したい場合は、範囲を指定してワークシート オブジェクトを使用する必要があります。

 Dim rng As Range Set rng = Worksheets("Sheet1").Range("A1:A10")
VBAとは

関連するチュートリアル

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です