かっきぃーの雑記帳

おもしろき こともなき世に おもしろく

ExcelVBA特有の基本構文[とりあえず使えるエクセルVBAマクロ超入門]

Lesson2 これだけは覚えておく基本構文

Lesson1で紹介したのはマクロと呼ばれるプログラムの自動作成機能について紹介しましたが、自分でプログラムを作成することにより、より使いやすく、より便利なマクロを作成することができます。プログラムを書くには構文(いわゆる文法)を知る必要があります。Lesson1では自動作成し、応用する方法を紹介しましたが、いくつかの基本的なものははじめから覚えておくと便利です。構文にはExcelVBA特有のものVisual Basic一般として共通して使えるものがあります。ここでは、基本として覚えておきたい構文を紹介します。

「セルを参照する」「グラフを作成する」などエクセルの機能を利用した操作に関するマクロはエクセル特有のものです。ここでは特に覚えておきたい「セルの参照」について紹介します。

 

セルを参照する構文

セルを参照する作業はエクセル特有の構文で、エクセルVBAマクロを使う上では欠かせない構文です。方法はいくつかの種類がありますが、代表的なものは次のとおりです。

  • 単一のセル Range("A1")  → A1のセル
  • 連続したセル Range("A1:C10")  → A1を始点、C10を終点とした四角で囲まれた領域

シート、ワークブックを選ぶ

f:id:k_create:20180924020623p:plain

A1のセルといっても、複数のシートが存在する場合、それぞれのシートにA1セルがあります。そこで、そのシートを特定する場合は次のように記載します。

Sheets("Sheet2").Range("A1") Sheet2のA1のセル

次のように2文に分けることもできます。

Sheets("Sheet2").Select
Range("A1")

 「Sheets("Sheet2")・・・」を省略した場合はその命令文が実行されるときに選択されているシートが対象になります。複数のシートが存在するファイルを使っている場合は、それぞれのタイミングでどのシートが選択されているかを把握しておくことが重要です。

また、複数のワークブック(既に開かれているエクセルファイル)が存在し、データのやり取りをする場合は、次のように記述してそのワークブックを選びます。

Windows("Book1.xls").Activate Book1.xlsを選びます。
ActivateとSelectは厳密には違いますが、ほぼ同様の機能を有しています。ただ、付属する命令文によっては、どちらかしか使えない場合もあります。厳密な意味についてはやや複雑ですので、とりあえずはSelectを使ってみて、エラーが発生した場合はActivateを使ってみるという使い分けでよいと思います。ちなみに、上記Windows("Book1.xls")に.Selectをつけるとエラーになります。

 

スポンサーリンク

 

 

セルに名前をつける

セルは行番と列番で指定するほか、セルに名前をつけてその名前で指定する方法があります。セルに名前がついている場合は、シートには関係なく、1名称につき1セルとなるため、シートが異なるセルであっても、「Sheets("Sheet2").」のような記述は省略できます。たとえば、あるセルにあらかじめ\abcという名前をつけておくと次のように簡単に表すことができます。

Sheets("Sheet3").Select
Range("D13").Select
 ↓ セルに\abcという名前をつけていると、どのシートがアクティブであっても・・・
Range("\abc").Select

 の一文で済みます。

セルに名前をつける方法

名前ボックスに任意のセル名称を記入します(名前の頭を「\(半角)」にする必要があります)。

★セルの名前を削除する場合は、挿入(I)>名前(N)>定義(D)から該当する名前を選択して削除します。
★BackSpaceやDel.キーでは消えません。

f:id:k_create:20180924020632p:plain

あるセルを基準にオフセットする

あるセルを基準に行方向、列方向に離れたセルを指定(オフセット)することもできます。

Range("A1").offset(列方向のオフセット量,行方向のオフセット量)
(例1)Range("A1").offset(1) →A1のセルから1セル下のセル
(例2)Range("A1").offset(0,1) →A1のセルから1セル右のセル

スポンサーリンク

VisualBasicの基本構文

              8    10  11

とりあえず使えるエクセルVBAマクロ超入門(もくじ)

 

スポンサーリンク

 


#エクセル #Excel #マクロ #VBA