VBAの実践的なテクニックを網羅的に解説

マクロとVBAの概念

「マクロ」は2つの意味があります

「マクロ」はExcelを自動処理してくれるもExcelの機能です。

そして「VBA(Visual Basic for Applications)」という言語で命令書を作成することを「マクロを組む」といいます。

マクロはどうやって作成するか?

  • 自動で記録(マクロ記録)
  • 自分で書く(VBE(Visual Basic Editor)というツール)…Excelで[Alt] + [F11]

マクロの記録方法

再度押すと記録再開されます。

記録したマクロを使用する方法

記録したマクロを選択し、「実行」すると記録した処理が実行されます

「編集」でVBEを起動して編集できます

VBEを開く手順

開発タブを表示させる

「開発」の項目はExcelインストールしたばかりの状態だとだとはチェックが外れいるので有効化しておきます。

表示された「開発」タブから「Visual Basic Editor」をクリック

[Alt] + [F11]でも開けます

マクロのセキュリティレベル

Excelのセルやワークシートを操作できるだけでなく、悪意のある者が作成すればパソコンに障害を引き起こすような動作もプログラミングすることができます。

そうした悪意のあるマクロが勝手に実行されないように、セキュリティレベルを設定する機能があります。

[ファイル] → [オプション] → [トラスト センター]

既定では1度目のみ警告が表示される

VBEでプロシージャを実行すると警告が出る

プローシージャとは

マクロ動作の基本単位「プロシージャ」には「Sub」と「Function」があります。

サブ(Sub)とは

**サブプロシージャ(Sub)**は、「処理手順のまとまり」を表すひとまとまりのコードブロックです。「この手順を実行してね」と指示できる単位と考えると分かりやすいです。Subは処理を実行するための命令文のかたまりであり、戻り値を返しません

サブの基本形

Sub サブ名()
    ' ここに実行したい処理を書きます
End Sub

処理内容はインデント(字下げ)するのがお作法です

  • Functionで始まりEnd Functionで終わる
  • Function名を処理結果として代入することで戻り値を設定します(関数名 = 値
  • 戻り値は数値でも文字列でもオブジェクトでも、データ型を適宜指定できます
  • Functionはワークシート関数としても使える場合があり、Excelのセルに独自の関数として呼び出せます(ただしパブリック関数として標準モジュールに記述が必要)
  • 別のSubやFunctionから「戻り値 = 関数名(引数)」という形で呼び出して、計算結果などを受け取ることができます