Excel VBA

Microsoft Excel では VBA を使ってマクロ(一種のプログラム)を動かすことができます。書籍や解説サイトはたくさんありますので個人で学習できますが、初めの壁が高く慣れるのに時間がかかるので基本的な使い方をまとめておきます。

Hello World!

いわゆる “Hello World!” をやってみましょう。

VBE を起動

VBA(Visual Basic for Applications)はプログラミング言語、VBE(Visual Basic Editor)はそのプログラミングに使うエディターです。ややこしいので混乱しないように。Excel を起動して [ファイル] > [オプション] > [リボンのユーザー設定] へ進み、[開発] タブをチェックしておいてください。

[開発] タブが表示されるようになるので、その中の Visual Basic を選択してください。

または、ショートカットキー Alt+F11 (Macは Option+F11) を使えば上記の設定は不要です。これで VBE のウインドウが開きます。

VBE でプログラミングする

VBE のウインドウが開いたら、元の Excel のウインドウとの間を行き来しながらプログラミングをしますが、まずは、とにかく動かしてみましょう。VBE のウインドウのメニューから [挿入] > [標準モジュール] を実行してください。編集画面が開きますので下のコードをコピペしてください。

このようになったはずです。

ファイルを保存する

Excel と VBE の両方のウインドウが開いている状態ですが、Excel のウインドウに移って [ファイル] > [名前を付けて保存] で、ファイル形式を “マクロ有効ブック(.xlsm)” にして保存します。

動作を確認する

いったん Excel を終了して、改めて先ほど保存したファイルを開いてください。標準の設定だと “マクロが無効にされました” という警告が表示されるので [コンテンツの有効化] のボタンを押してマクロを有効にします。

メニューの [開発] > [マクロ] をクリックすると保存されたマクロが一覧表示されますので “あいさつ” を選んで [実行] ボタンを押してください。

マクロが実行されました。

ちょっと改良

VBA で書いたマクロが動きましたが、このままでは不便なので改良しましょう。メニューから [開発] > [挿入] の中からボタンのフォームを選んでください。

カーソルの形が変化しますので Excel シートの上でドラッグして、ボタンの位置と大きさを決めます。次にボタンに関連付けるマクロを指定して [OK] ボタンを押します。

Excel のシート上にボタンが出来ます。ボタンを右クリックして [テキストの編集] で好きな名前に変更できます。出来上がったボタンを押してみましょう。

もっと勉強する

さて、簡単な Hello World! をやりましたが、これ以上の内容はここには書きません。なぜなら Excel で何をやりたいのか、その目的によって必要な知識は千差万別だからです。勉強する方法はいろいろあります。

  • ネットで “Excel VBA マクロ” で検索してください。色々なサイトがヒットしますので、目的に応じて写経してください。
  • 系統的に勉強したい人は書籍を読むのもよいでしょう。Excelは毎年のようにバージョンアップしますので何千円もする最新刊を購入する必要はありません。数年前の古本を安く買えば十分です。
  • 書籍を購入しなくても、そのような本に掲載されているサンプルがダウンロードできるようになっている場合があります。書籍の名前で検索してみてください。

 

生粋のプログラマはVBAなんて大嫌いって人も多いですね。C言語やPythonに慣れているとVBAの文法に馴染めません。VBAを知らなくてもCSVに変換すればC言語やPythonのプログラムで好きなように加工できますから。Pythonなら直接Excelを操作するライブラリもあります。それでも、ファイルひとつの中でプログラムが完結して動作するというのは実用性の面ではとても便利です。