【作成中】Excel VBAを始めるための基礎知識

これからExcelでVBAプログラミングを始めようと

目次

Excel VBAとは?

VBAは「Visual Basic for Applications」の略でMicrosoft Office製品で利用可能なプログラミング言語です。VBAはWordやOutlookなどのOffice製品でも利用可能ですが、Excelでもっともよく使用されています。

マクロを利用するとさまざまな処理を自動化することができますが、複雑な処理をするには限界があります。VBAはプログラミング言語なので、マクロより柔軟で複雑な処理を実行できるようになります。

はじめてのVBAプログラム

はじめにVBAプログラムを記述するExcelのブックを開いておきましょう。

ここでExcelファイルではなくブックという表現を使っているのには理由があります。例えばExcelの「ファイルタブ」>「新規」>「空白のブック」で作成されるのはブックです。このブックはファイルへ保存することができます。ブックをファイルへ保存したもの(Windowsのエクスプローラーで見える実体)がExcelファイルです。ブックはファイルに保存していなくても存在します。つまり、Excelアプリケーション上に存在する実体です。

「開発」タブを表示する

デフォルトで開発タブ(下図参照)は表示されていません。VBAプログラムを作成する場合、開発タブを表示したほうが何かと便利なので表示させておきましょう。

開発タブ
開発タブ

開発タブは次の手順で表示することができます(Excelのバージョンによって多少手順が異なる場合があります)。

  1. 「ファイル」タブをクリックする。
  2. 左側メニューの「オプション」をクリックして「Excelのオプション」ダイアログを表示する。
  3. 左側メニューの「リボンのユーザー設定」をクリックする。
  4. メイン画面の「リボンのユーザー設定」で「メインタブ」の「開発」にチェックを入れる。
  5. 「OK」ボタンをクリックする。

VBE(Visual Basic Editor)を起動する

VBAプログラムはVBEで記述します。開発タブの「Visual Basic」ボタンをクリックするとVBEが起動します(Alt+F11で起動することもできる)。

VBE
VBE

標準モジュールを追加する

つぎに標準モジュールを追加します。それにはVBEのメニューから「挿入」>「標準モジュール」をクリックします。

すると追加された標準モジュール(ここではModule1という名前)が「標準モジュール」という入れ物の下に表示されます(下図の赤枠参照)。標準モジュールの名前を変更したければ、(オブジェクト名)欄に任意の名前を入力します。標準モジュールを追加するとコードウィンドウも表示されます。

コードウィンドウが表示されない場合はModule1をダブルクリックします。

標準モジュールの追加
標準モジュールの追加

VBAプログラムを追加する

コードウィンドウはVBAのコードを記述する場所です。コードウィンドウに次のVBAコードを記述してみましょう。

Sub はじめてのプログラム()
    MsgBox "はじめてのVBAプログラム!"
End Sub
はじめてのVBAプログラム
はじめてのVBAプログラム

VBAプログラムを実行する

それではプログラムを実行してみましょう。Excelに戻って開発タブの「マクロ」ボタンをクリックします。すると「マクロ」ダイアログボックスが表示されます。「はじめてのプログラム」が選択されていることを確認して「実行」ボタンをクリックします。

VBAプログラムを実行する
VBAプログラムの実行

プログラムを実行すると次のようなメッセージボックスが表示されます。

メッセージボックスを表示する
メッセージボックスの表示

VBAプログラムを保存する

この時点でVBAプログラムはまだファイルに保存されていません。VBAプログラムはブックと共に保存されますのでブックをファイルに保存しましょう。保存するときは「Excel マクロ有効ブック(*.xlsm)」で保存しましょう。VBEはもう必要ないので閉じてしまっても構いません。

マクロ有効ブックとして保存する
マクロ有効ブックで保存

これでブックを閉じてしまっても、再度ブックを開けばVBAプログラムを実行することができます。

基礎知識

SubプロシージャーとFunctionプロシージャー

プロシージャーとは「手続き」という意味で、ひとまとまりの処理単位です。VBAでもっとも頻繁に使われるのがSubプロシージャーとFunctionプロシージャーです。Subプロシージャーは一連の処理を実行するだけのプロシージャですが、Functionプロシージャーは戻り値を返すことができます。

Excelから呼び出されるマクロは、VBAのSubプロシージャーとして定義します。

Subプロシージャーを定義する

Subプロシージャーは一連の処理をまとめます。Excelから呼び出されるマクロはSubプロシージャーとして定義します。定義する構文は次の通りです。

Sub プロシージャー名(引数リスト)
    ここにステートメント(処理)を記述する。
End Sub

Subプロシージャーはキーワード「Sub」で始まり、その後にプロシージャー名と()を続けます。()の中には引数リストを記述します。引数リストは省略することもできます。しかし、その場合でも()を省略することはできません。そしてSubプロシージャーは、「End Sub」で終わります。プロシージャーで実行するステートメント(処理)はプロシージャーの本体としてこれらの間に記述します。

Functionプロシージャーを作成する

Functionプロシージャーは一連の処理をまとめます。Subプロシージャーとは異なり戻り値を返すことができます。Functionプロシージャーを使うには、はじめにFunctionプロシージャーを定義する必要があります。定義する構文は次の通りです。

Function プロシージャー名(引数リスト)
    ここにステートメント(処理)を記述する。
    プロシージャー名 = 戻り値
End Function

Functionプロシージャーはキーワード「Function」で始まり、その後にプロシージャー名と()を続けます。()の中には引数リストを記述します。引数リストは省略することもできます。しかし、その場合でも()を省略することはできません。そしてFunctionプロシージャーは、「End Function」で終わります。プロシージャーで実行するステートメント(処理)はプロシージャーの本体としてこれらの間に記述します。このプロシージャーから返す戻り値は、プロシージャ名の変数へ返す値を代入します。

Visual Basic Editor(VBE)の使い方

Visual Basic Editor(VBE)は、Excelに付属しているVBAプログラミング作成するためのアプリケーションです。

VBEを起動する

VBEを起動するには「開発」タブの「Visual Basic」をクリックします。

よかったらシェアしてね!
  • URLをコピーしました!
目次