2021.12.20
こんにちは。
クラウドソリューショングループ 池崎です。
プログラミング言語「VBA」をご紹介します。
冬の休暇に、少しばかり作業効率を上げる手段として勉強してみてはいかがでしょうか?
「VBA」は、Windowsユーザなら一度は使ったことがある、Microsoft社のOfficeシリーズに特化したプログラミング言語です。
「Visual Basic」、通称「VB」を元に、ExcelやAccessなどのアプリケーションに最適化されたもので、アプリケーション名が頭に付きます。
Excelなら「ExcelVBA」、Accessなら「AccessVBA」ですね。
アプリケーションごとに最適化されたものなので、似ていますが、Excelで「AccessVBA」は使えませんし、Accessで「ExcelVBA」は使えません。
この記事では、「ExcelVBA」を想定して話を進めます。

「ExcelVBA」の何が手軽かと言えば、Excelがインストールされていれば、他に何も用意する必要がない点です。
Java や Python といった言語を使ってプログラミングをしようとした時、エディタ、ライブラリ、実行環境、と始める前に準備すべきものがあります。
「ExcelVBA」なら、何かをダウンロードしてくる必要はありません。Excelさえインストールされていれば、思い立ったらすぐに始められます。
「ExcelVBA」を勉強するにあたって、知っておくべきことが二つあります。
ひとつは、「マクロ」と「ExcelVBA」の違い。
これを知らないと、調べ物をする時に混乱すると思うので最初に。
「マクロ」と「ExcelVBA」は、どちらもExcelの自動処理を指す言葉として使われるので、初心者には違いがわかりにくいですね。
自分でマクロを組む知識がある人でさえ、きちんと説明できない場合もあります。
ザックリ言うと、機能と言語です。
「マクロ」とは、指定の作業を自動実行するという機能の名前であり、「ExcelVBA」はそのマクロを構成するためのプログラミング言語を指す言葉です。
似て非なるもの、というよりは、完成品と素材の関係です。
もう一つは、バージョンの違いです。
Excelは現在進行形で進化を続けているビジネスソフトです。
個人で保有できるマシンのスペックがどんどん高くなるのに合わせ、新機能が続々登場します。
当然、初期の頃と現在ではできることも見た目も違います。
直近だと2003あたりで慣れていた人が2010あたりを目にすると、見た目が違い過ぎて驚くと思います。
私も驚いた一人です。
あの機能どこ行った!?マシンスペックが足りてなくて重い!と大混乱しましたね。
バージョンが違うと、ネット上で調べたとおりに記述しても、うまく動作しない場合があります。
過去自分で作ったマクロが動かなくなることもあるので、その時は最新情報に従って更新していく必要があります。
最後に、新しいプログラミング言語を実行する時の慣例、「Hello world!」を実行して終わりとします。
これは元々、プログラミングをする環境が整っていることを確認するためのものです。
「ExcelVBA」の場合は必要性が薄いですが、ここは慣習に倣って。
まずはExcelで、新しいブックを作成します。
ブックを開いたら、alt+F11でエディタを開きます。

下画像の赤枠内を右クリックして、挿入 >> 標準モジュールをクリックします。


下画像のように、「Module1」ができて、赤枠部分をクリックした時カーソルが点滅していれば成功です。
もしも赤枠部分にカーソルが出ない場合は、「Module1」をダブルクリックしてください。
この赤枠部分に記述していきます。

記述内容は、以下の通り。
画像の通りに記述してください。

下の「sub」から「end sub」をコピー&ペーストしても出来ます。
エディタが自動的に足りない部分を補い、実行できる形にしてくれます。
Excelに付属する専用エディタだからこそ出来ることですね。
sub hello
msgbox "Hello World!"
end sub
ブックを「マクロ有効ブック」として保存します。
VBAを編集する場合は、必ずこの「マクロ有効ブック」として保存してください。

下画像の画面で、「Sub」から「End Sub」の間のどこかにカーソルを移動させた状態でF5を押します。

下画像のようにポップアップが出れば成功です。

これであなたの初めてのプログラムは完成しました。おめでとうございます!
「Hello world!」は、最も簡単なプログラムです。
まずは「ExcelVBA」における「Sub」「msgbox」とは何か、検索するところから勉強を始めてみてください。

2026.04.27
水木しげるさんの戦記や関連著作を5冊読み比べながら、それぞれの本の魅力と心に残った点を紹介します。戦争の過酷さや生き残ったことの重みが描かれる一方で、文章や絵の力によって不思議と「もっと知りたい」と思わされる読書体験が綴られています。戦後90年に向けて、戦争を知らない世代が何を受け取り、どうつないでいくかを考えるきっかけになる内容です。
2026.04.24
Salesforceの動的ゲージグラフにおいて、数式を用いた目標値の設定方法を解説します。年間目標から月次目標を算出する基本的な使い方に加え、役職や勤続年数に応じて目標値を変動させる方法を紹介。IF関数や日付項目を活用することで、複数条件に基づいた柔軟な目標設定が可能になります。さらに、カスタムオブジェクトやフローを組み合わせることで、より高度な管理にも対応できる点についても触れています。
2026.04.20
春は新生活のスタートとともに、アレルギーに悩まされる方も多い季節です。対処療法で乗り切ってきた中で、睡眠や食事といった基本を見直すことで体調の安定を実感しています。
2026.04.13
2026年2月に開催された佐賀県ラージボール卓球選手権大会に出場し、60~64歳クラスで優勝した体験を振り返ります。予選リーグを順調に勝ち上がり、トーナメントでは日頃から対戦経験のある選手との接戦を制して決勝へ。決勝ではファイナルゲームまでもつれる白熱した試合となり、最後は接戦をものにしました。これまでの経験や戦術の変化を実感しながら、試合ならではの緊張感も味わうことができました。