マクロを勉強しようと思い立った方は、きっと本を買ったりやサイトを見たりして勉強を始める予定かと思います。
しかし、本は厚いし、サイトも情報量多いし…。マクロ(VBA)はたくさんのことを勉強しなければいけません。
ただ、そんな初心者の方だからこそ、優先して勉強するべき内容を絞ることはできると考えます。
そこで本記事では、
このような方々に向けて、優先して勉強するべき内容を紹介します。
本記事で紹介することが分かるだけでも、色々なマクロがつくれるようになります。
優先して勉強すべきこと5選
マクロを勉強する上で、初心者の方が優先して勉強すべきことを5つに絞りました。
- オブジェクト式(オブジェクト、メソッド、プロパティ)
- 変数
- RangeとCells
- 条件分岐
- ループ(繰り返し)
この記事では、これらを簡単に解説します。
オブジェクト式(オブジェクト、メソッド、プロパティ)
オブジェクト式というのはVBAの構文の1つです。
対象となるオブジェクトを操作するための記述方法です。
この構文は、
- オブジェクト
- メソッド
- プロパティ
の3つを使って構成されます。
オブジェクト
上述の通り、操作するための対象のことです。
例えば、Excelブックやシート、セル範囲などが、オブジェクトにあたります。
メソッド
このオブジェクトは、メソッドで操作します。
オブジェクト.メソッド
のように . を使って記述します。
例えば、
- ブック.閉じる(ActiveWorkbook.Close)
- シート.コピーする(ActiveSheet.Copy)
のように記述してオブジェクトを操作します。
プロパティ
オブジェクトの属性を表すのがプロパティです。
オブジェクト.プロパティ
と記述して、オブジェクト(対象)のプロパティ(属性)を表します。
- シート.名前(ActiveSheet.Name)
- セル範囲.塗りつぶしの色(Range(“A1”).Interior.Color)
このようにして属性データを取得したり、変更したりすることができます。
変更するには、
オブジェクト.プロパティ = どうするか
という書き方をします。
オブジェクト式(まとめ)

オブジェクト式とは、
- オブジェクト.メソッド
- オブジェクト.プロパティ = どうするか
といったVBAの書き方のことです。
コードを記述する上で必須の知識となります。
変数
変数とはデータを保管する「箱」のようなものです。
保管できるデータには、数値や文字列、オブジェクトなどがあります。
変数の宣言
変数は、
Dim 変数名 as データ型
という構文で宣言します。例えるなら箱を用意するということです。
変数名は箱の名前です。わりと自由に決めることができます。
データ型は箱の種類です。変数に入れるデータの種類(文字列、整数、ワークシートなど)を指定します。
みかんは果物の箱に。電子レンジは家電の箱に。ということです。
変数に値を代入する
変数に値を代入するには、
変数名 = データ
のように記述します。
- 同じデータを何度も使用
- 保管しているデータの中身を変える
といった使い方ができます。
変数は、同じ処理を複数のデータに対して行う場合や、複雑な計算を行う場合に特に役立ちます。
RangeとCells
RangeとCellsは、Excelの操作対象であるセル範囲を表すオブジェクトです。
Range
セル範囲を指定する場合に使用します。
例えば、
Range("A1:C5")
は、A1セルからC5セルの範囲を表します。
Cells
セルを行番号と列番号で指定する場合に使用します。
例えば
Cells(3, 2)
は、B3セルを表します。
RangeとCellsの使い分け
RangeとCellsは、どちらもセル範囲を操作するために使用できます。
初心者のうちは、Rangeは複数セル範囲、Cellsは単一セルという使い方をすることが多いかと思います。
条件分岐
条件分岐とは、条件に応じて異なる処理を実行するための仕組みです。
VBAでは、If文
If 条件1 Then
'処理A
Else
'処理B
End If
といった構文や
Select Case
Case1
'処理A
Case2
'処理B
End Select
という構文があります。
If〜End If
条件式が真(True)の場合と偽(False)の場合で異なる処理を実行します。
下の例で言えば
If 条件1 Then
'処理A
Else
'処理B
End If
条件1がTrueのとき処理Aを、Falseのとき処理Bを実行します。
Select Case
複数の条件に応じて異なる処理を実行する場合に便利です。
下の例であれば、
Select Case
Case1
'処理A
Case2
'処理B
End Select
Case1の場合は処理A、Case2の場合は処理Bを行います。
条件が多い場合などはIf文ではなく、Select Caseを使うとスッキリと記述することができます。
条件分岐を使おう
条件分岐を使うことで、データの値やユーザーの操作に応じて柔軟な処理を行うことができます。
ループ処理
ループ処理とは、同じ処理を繰り返し実行するための仕組みです。
VBAでは、
For Next構文やDo Loop構文を使ってループ処理を記述します。
For Next
For To 〜 Nextは、回数を決めてループをする構文です。
For Each 〜 Nextは、範囲や配列の中身をループします。
Do Loop
Do Loopは、条件を満たしている間、または満たすまで処理を繰り返します。
ループ処理を使うことで、大量のデータを効率的に処理したり、複雑な処理を簡潔に記述したりすることができます。
マクロの勉強は1日にしてならず
本記事では、マクロで必須の知識5選をピックアップしてみました。
この5つの知識があれば、ある程度のマクロは理解できるようになるかと思います。
この5つの知識をしっかりと学んでください。それぞれの詳細については、別記事にまとめていきますので、そちらもぜひ見てください。
もちろん他にもプログラミングの基礎的な知識(デバッグやエラー処理など)も、マクロ作成には必要になってくると感じています。
これらもしっかり学んでいきましょう。
コメント