【VBA入門】何から始める?マクロで優先して勉強するべきこと5選

VBA

マクロを勉強しようと思い立った方は、きっと本を買ったりやサイトを見たりして勉強を始める予定かと思います。

しかし、本は厚いし、サイトも情報量多いし…。マクロ(VBA)はたくさんのことを勉強しなければいけません。

ただ、そんな初心者の方だからこそ、優先して勉強するべき内容を絞ることはできると考えます。

そこで本記事では、

  • Excelの関数はある程度分かってきたから、マクロの勉強を始めてみたい!
  • マクロの本は買ったけど、何から勉強すればいいの?

このような方々に向けて、優先して勉強するべき内容を紹介します。

本記事で紹介することが分かるだけでも、色々なマクロがつくれるようになります。

優先して勉強すべきこと5選

マクロを勉強する上で、初心者の方が優先して勉強すべきことを5つに絞りました。

  • オブジェクト式(オブジェクト、メソッド、プロパティ)
  • 変数
  • RangeとCells
  • 条件分岐
  • ループ(繰り返し)

この記事では、これらを簡単に解説します。

オブジェクト式(オブジェクト、メソッド、プロパティ)

オブジェクト式というのはVBAの構文の1つです。

対象となるオブジェクトを操作するための記述方法です。

この構文は、

  • オブジェクト
  • メソッド
  • プロパティ

の3つを使って構成されます。

オブジェクト

上述の通り、操作するための対象のことです。

例えば、Excelブックシートセル範囲などが、オブジェクトにあたります。

メソッド

このオブジェクトは、メソッドで操作します。

オブジェクト.メソッド

のように . を使って記述します。

例えば、

  • ブック.閉じる(ActiveWorkbook.Close)
  • シート.コピーする(ActiveSheet.Copy)

のように記述してオブジェクトを操作します。

プロパティ

オブジェクトの属性を表すのがプロパティです。

オブジェクト.プロパティ

と記述して、オブジェクト(対象)プロパティ(属性)を表します。

  • シート.名前(ActiveSheet.Name)
  • セル範囲.塗りつぶしの色(Range(“A1”).Interior.Color)

このようにして属性データを取得したり、変更したりすることができます。

変更するには、

オブジェクト.プロパティ = どうするか

という書き方をします。

オブジェクト式(まとめ)

Screenshot

オブジェクト式とは、

  • オブジェクト.メソッド
  • オブジェクト.プロパティ = どうするか

といったVBAの書き方のことです。

コードを記述する上で必須の知識となります。

変数

変数とはデータを保管する「」のようなものです。

保管できるデータには、数値文字列オブジェクトなどがあります。

変数の宣言

変数は、

Dim 変数名 as データ型

という構文で宣言します。例えるなら箱を用意するということです。

変数名は箱の名前です。わりと自由に決めることができます。

データ型は箱の種類です。変数に入れるデータの種類(文字列、整数、ワークシートなど)を指定します。

みかんは果物の箱に。電子レンジは家電の箱に。ということです。

変数に値を代入する

変数に値を代入するには、

変数名 = データ

のように記述します。

  • 同じデータを何度も使用
  • 保管しているデータの中身を変える

といった使い方ができます。

変数は、同じ処理を複数のデータに対して行う場合や、複雑な計算を行う場合に特に役立ちます。

RangeとCells

RangeCellsは、Excelの操作対象であるセル範囲を表すオブジェクトです。

Range

セル範囲を指定する場合に使用します。

例えば、

Range("A1:C5")

は、A1セルからC5セルの範囲を表します。

Cells

セルを行番号と列番号で指定する場合に使用します。

例えば

Cells(3, 2)

は、B3セルを表します。

RangeとCellsの使い分け

RangeCellsは、どちらもセル範囲を操作するために使用できます。

初心者のうちは、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つの知識をしっかりと学んでください。それぞれの詳細については、別記事にまとめていきますので、そちらもぜひ見てください。

もちろん他にもプログラミングの基礎的な知識(デバッグやエラー処理など)も、マクロ作成には必要になってくると感じています。

これらもしっかり学んでいきましょう。

この記事を書いた人

関西の非IT企業で働く非エンジニア。
入社してからVBAを勉強し始めて、マクロで業務効率化に貢献。
「非エンジニアの方にも分かりやすく」を心がけて、実務で使えるVBAやExcelについて書いていきます。

フォローする
VBA
シェアする

コメント

タイトルとURLをコピーしました