「ファイル集計の効率化にpythonを」でExcelファイルをpythonで処理する話を取り上げました。昔から、Excelではマクロが使え、私も何度か勉強し始めましたが、使いこなせるように至らず終わっていました。今回、pythonとの比較もしながら再度勉強しようと思っています。「Excel VBAの絵本」(著者:(株)アンク・新井くみ子、高橋 誠 発行所:翔泳社)が読み易いので紹介します。これを参考に一緒に勉強していきましょう。
資料はこちら → VBA
p.1 私が就職した頃、Basicが最先端のプログラミングでした。「Visual basic」はこのBasicによく似ているので、私にとっては受入易い言語です。「VBA」とはOfficeのようなアプリケーション上で動作するVBという意味で、ExcelのVBAは「マクロ」とほぼ同じ意味です。マクロは、作業を自動化する機能のことを意味し、この機能を動作するための言語がVBです。
p.2 Excelを起動したら、①「開発」をクリックしてマクロがあるか確認してください。マクロの表示がない場合は、次ページ参照ください。②先ず、A列に「あいうえお」と記入しておきます。③マクロの記録をクリック後、マクロ名(今回はセル操作とします)を入れてOKをクリックしてください。④A列をCtrl・CでコピーしてCtrl・VでB・D・F列にペーストした後、記録終了をクリックします。
p.3 マクロの表示がなかった場合は、左上から赤矢印部分をクリックして、右の方に進んでください。アドイン完了したら、p.2に戻って実施ください。
p.4 「あいうえお」を全て消去して、⑤及び⑥でマクロを実行します。右上のような結果になれば成功です。マクロ付きのファイルは、ファイルの種類のところで「Excelマクロ有効ブック(*.xlsm)」を選択して保存してください。
p.5 マクロはセキュリティー上リスクがありますので、自分以外のマクロ付きファイルを読み込む場合のために備えて、「マスクのセキュリティー」選択→「警告を表示してすべてのマクロを無効にする」にチェック→OKとしておいてください。 こうすると、先ほど保存したファイルを読み込むと右下のようなセキュリティーの警告が表示されます。問題なさそうな場合は、「コンテンツの有効化」をクリックしてファイルを開けてください。
p.6 記録したマクロのVBAを見てみましょう。⓼マクロ→編集をクリックすると右下の画面が表示されます。標準モジュールの下にあるModule1が今回作成のマクロのVBAです。この中身が赤枠内です。
p.7 VBAの内容を説明しておきます。「セルF1がアクティブ」は無くても動作します。マクロを記録すると所々に不要なコードが記載することがあるようです。 マクロ記録でできないことがあります。条件分岐、繰返し操作、変数を使った処理などです。 この場合は、直接VBA内にコードを書き込む必要があります。
p.8 マクロの記録ではなく、直接VBを作成する方法を説明します。先ず、Visual Basicをクリックします。次に、プロジェクトエクスプローラーをクリックすると左側にエクスプローラーが表示されます。挿入→標準モジュールをクリックするとModule2が追加されるはずです。
p.9 右側の白いエリアに、Sub Message()と入力すると、自動的にEnd Subが1行空けて表示るので空いた行に今回は、MsgBoxと書き込むと入力例が表示ます。MsgBoxの後に「”Hello”」と書き込みます。VBAができたので、実行します。3種類方法を書いておきます。実行するとExcel画面に切り替わり右下のように表示されます。メッセージボックス内に「Hello」が表示されるはずです。OKクリックでVBE画面に戻ります。
p.10 Excel画面からの実行する場合は、マクロをクリック→Message選択→実行でp.9と同じような結果となります。
今回は、マクロの記録と簡単なVBA作成の説明でした。 今回は、それほど難しくないですね。 明日は配列の話です。私はいつも飛ばしてしまうのですが、上述の本は分かり易く書いてあるので紹介します。この配列が理解できれば、前進できるような気がしています。