ExcelVBA特有の基本構文[とりあえず使えるエクセルVBAマクロ超入門]
Lesson2 これだけは覚えておく基本構文
「セルを参照する」「グラフを作成する」などエクセルの機能を利用した操作に関するマクロはエクセル特有のものです。ここでは特に覚えておきたい「セルの参照」について紹介します。
セルを参照する構文
セルを参照する作業はエクセル特有の構文で、エクセルVBAマクロを使う上では欠かせない構文です。方法はいくつかの種類がありますが、代表的なものは次のとおりです。
- 単一のセル Range("A1") → A1のセル
- 連続したセル Range("A1:C10") → A1を始点、C10を終点とした四角で囲まれた領域
シート、ワークブックを選ぶ
A1のセルといっても、複数のシートが存在する場合、それぞれのシートにA1セルがあります。そこで、そのシートを特定する場合は次のように記載します。
Sheets("Sheet2").Range("A1") | → | Sheet2のA1のセル |
次のように2文に分けることもできます。
Sheets("Sheet2").Select Range("A1") |
「Sheets("Sheet2")・・・」を省略した場合はその命令文が実行されるときに選択されているシートが対象になります。複数のシートが存在するファイルを使っている場合は、それぞれのタイミングでどのシートが選択されているかを把握しておくことが重要です。
また、複数のワークブック(既に開かれているエクセルファイル)が存在し、データのやり取りをする場合は、次のように記述してそのワークブックを選びます。
Windows("Book1.xls").Activate | → | Book1.xlsを選びます。 |
スポンサーリンク
セルに名前をつける
セルは行番と列番で指定するほか、セルに名前をつけてその名前で指定する方法があります。セルに名前がついている場合は、シートには関係なく、1名称につき1セルとなるため、シートが異なるセルであっても、「Sheets("Sheet2").」のような記述は省略できます。たとえば、あるセルにあらかじめ\abcという名前をつけておくと次のように簡単に表すことができます。
Sheets("Sheet3").Select Range("D13").Select |
↓ セルに\abcという名前をつけていると、どのシートがアクティブであっても・・・ |
Range("\abc").Select |
の一文で済みます。
セルに名前をつける方法
名前ボックスに任意のセル名称を記入します(名前の頭を「\(半角)」にする必要があります)。
★セルの名前を削除する場合は、挿入(I)>名前(N)>定義(D)から該当する名前を選択して削除します。
★BackSpaceやDel.キーでは消えません。
あるセルを基準にオフセットする
あるセルを基準に行方向、列方向に離れたセルを指定(オフセット)することもできます。
Range("A1").offset(列方向のオフセット量,行方向のオフセット量)
(例1)Range("A1").offset(1) →A1のセルから1セル下のセル
(例2)Range("A1").offset(0,1) →A1のセルから1セル右のセル
スポンサーリンク