VBA Rangeオブジェクト変数(Dim / Set Range)
このチュートリアルでは、VBAのRange Object Variableについて説明します。
変数と定数とは何かについては、「VBAのデータ型 – 変数と定数」のチュートリアルですでに説明しました。今回は、VBAのRangeオブジェクトと、変数をRangeオブジェクトとして宣言する方法について見ていきます。Rangeオブジェクトは、VBAでセルや複数のセルを示すために使用されます。ですから、コードで使用するととても便利です。 VBAのセル範囲とセルについてはこちらをご覧ください。
VBAのRangeオブジェクト
Rangeオブジェクトを使用すると、1つのセルを参照することができます。たとえば、VBAのコードでセルA1を参照してセルの値を設定し、セルのテキストを太字にしたい場合は、次のコードを使用します。
Sub ReferringToASingleCellUsingTheRangeObject()
Range("A1").Value = 89
Range("A1").Font.Bold = True
End Sub
「実行」または「F5」を押してコードを実行すると、実際のワークシートでは、次のような結果になります。
Rangeオブジェクトを使用すると、複数のセルやセルの範囲を参照することができます。たとえば、VBAのコードでセルの範囲(A1:C1)を参照したい場合、以下のコードのようにVBAのRangeオブジェクトを使用することができます。
Sub ReferringToMultipleCellsUsingTheRangeObject()
Range("A1:C1").Value = "ABC"
Range("A1:C1").Borders(xlEdgeBottom).LineStyle = xlDouble
End Sub
「実行」または「F5」を押してコードを実行すると、実際のワークシートでは次のような結果になります。
変数をRangeとして宣言する
変数を範囲指定する場合は、Dimと Setキーワードを使用する必要があります。以下のコードは、変数を範囲として宣言する方法を示しています。
Sub DeclaringAndSettingARange()
Dim rng As Range
Set rng = Range("A10:B10")
rng.Value = "AutomateExcel"
rng.Font.Bold=True
rng.Select
rng.Columns.AutoFit
End Sub
結果は以下のようになります。
Rangeオブジェクトで特定の行を選択する
Rangeオブジェクトの中で特定の行を選択することができます。以下のコードで、その方法を説明します。
Sub SelectingSpecificRowsInTheRangeObject()
Dim rng As Range
Set rng = Range("A1:C3")
rng.Rows(3).Select
End Sub
結果は以下のようになります。
Rangeオブジェクトで特定の列を選択する
Rangeオブジェクトの中で特定の列を選択することができます。以下のコードはその方法を示しています。
Sub SelectingSpecificColumnsInTheRangeObject()
Dim rng As Range
Set rng = Range("A1:C3")
rng.Columns(3).Select
End Sub