【初心者必見!】EXCEL VBAのはじめ方

EXCELでVBAを使う方法

EXCELでVBA(マクロ)を使う方法としては、ふつうにEXCELを起動します。

そしてショートカットキーの「Alt」+「F11」を押します。

これでEXCELのVBAを編集する画面が表示されます。

このままだとプログラムのコードが記載できないので、メニューバーの「挿入」「標準モジュール」を選択します。

これで、コードを記載する事が出来るようになります。

実際に書いてみた感じ。

Public Sub main()

MsgBox ("テスト")

End Sub


Public Function test() As String

test = "テスト"

End Function

どちらのコードも”テスト”を返すコードです。
上に書いたコード(main)は、サブモジュールで単独で実行できるもの。
下に書いたコード(test)は、関数で、呼び出して実行するものとなります。

の文字は、VBAの予約語となっています。言語特融のコードですね。
ピンクの文字は、VBAの標準関数。
青緑の文字は、変数の型となっています。

「mainサブモジュール」のコードの意味は、”Public”がEXCEL全体から呼び出せるもの、基本的にこれをつけておけばOK。
”Sub”が処理のエントリポイント(実行指示を出したときに動くもの)を表します。
”main()”は、今回作成するサブモジュールの名称。自由に名前を付けれます。
”Msgbox()”はVBAの標準関数で、メッセージボックスを表示し、指定した文字を表示する関数。
”End Sub”がサブモジュールのおわりを表しています。

「test関数」のコードの意味は、”Public”がEXCEL全体から呼び出せるもの、サブモジュールと同様にPublicを使っておけばOK
”Function”が関数であることの宣言を表します。
”test()”は、今回作成する関数の名称。自由に名前を付けれます。
本来関数は、”()”の中に引数を渡しますが、今回は引数無しにしています。
”As String”は、この関数が”String型”の値を返す事を表しています。
”test = “テスト””は、test関数の戻り値として、”テスト”という文字列を返します。
”End Function”が関数のおわりを表しています。

早速実行してみましょう。
メニューバーの実行ボタンを押すと実行されます。

メッセージボックスが表示され、中に”テスト”が表示されました。

test関数は呼び出していないので、今の時点では実行されていません。

次は、test関数を呼び出してみます。

通常は、サブモジュールから呼び出しますが、分かりやすくするためにEXCELワークシートから呼び出してみます。

EXCELのセルに”=test()”を記入します。
ちなみに関数の候補に自分が作成した”test”が表示されていることに注目してください。

エンターを押してセルから抜けると、セルの内容が”テスト”になっています。
これでtest関数が呼び出せました。

EXCELのVBAを保存する方法

VBA(マクロ)を普通のEXCEL BOOKに保存すると、セキュリティの関係からVBAが保存されません。
その為、マクロ有効ブックで保存する必要があります。

まず、普通に上書き保存を選択し

保存画面で、”ファイルの種類”を選択。

“Excel マクロ有効ブック (*.xlsm)”を選択。

ファイルの拡張子が”xlsm”に変わっている事を確認し、保存します。
これで、作成したVBAが保存されます。

起動時にEXCEL VBAを有効にする方法

Excelのセキュリティ対策で、普通にインストールしただけでは、VBA(マクロ)が実行できません。

そこで、EXCELの設定を変更し、VBAが実行できるようにします。

まず、EXCELの左上メニューの”ファイル”を選択し、一番したの「オプション」を選択します。

Excelのオプションの”トラスト センター”を選択。

画面右の”トラスト センターの設定”ボタンを押下します。

左のメニューから”マクロの設定”を選択します。

”すべてのマクロを有効にする”にチェックをいれて”OK”ボタンを押せばマクロが有効化されます。
あとは、EXCELを再起動すればOK

bassmania

メンサ会員 IT系企業に20年以上従事。 プログラミング・インフラ系エンジニア