● 各機能・ソフトの概要:ExcelVBA(Excelの標準機能)~「パソコンでの自動化」について

目次
● 各機能・ソフトの概要:第5項 ExcelVBA(Excelの標準機能)~「パソコンでの自動化」について
 †1 簡単なプログラムを書く
 †2 書いたプログラムを実行する
※Shift+TABキー、もしくは、Homeキー、Homeキー+TAB数回、を押すと、目次付近に戻れます。

Excelを使う中で、『これ毎回(毎時間、もしくは毎日)同じことをするんだけど、1クリックで済ませられないかなあ・・・?』というようなことが多く出てきます。
それを実現するためのものが「ExcelVBA」です。

§1 できること

・セルの書式変更
・よく使う操作の短縮化とそのコマンドボタン化
・データの転記
・入力ミスチェック
・重複チェック
・自動集計(あまりやりすぎないほうが良いですが。要注意。)
・コマンドプロンプトやバッチファイルを動かす。
・簡易バーコードPOSレジのようなミニシステムを作って動かす。
・他のソフトを動かす。 ・・・

などなど

ExcelVBAは、主にお仕事で使うことが多いですが、「Excelゲーム」という分野もありまして、それにもExcelVBAを使います。かなり楽しいみたいです。

※Excelゲームの例↓
http://www1.plala.or.jp/chikada/vba/vba.htm

シューティング、落ちモノ、ビリヤードなど、色々とあるようです。Web検索すると色々と出てきます。グーグルなどで「Excelゲーム」などのキーワードで検索してみてください。

§2 使い方

Excel2000~2003なら、「ツール」「マクロ」「Visual Basic Editor」にて「挿入」「標準モジュール」などとやってからプログラムを書きます。
Excel2007以降ならリボンに「開発」タブを表示させて、「Visual Basic」ボタンにて「挿入」「標準モジュール」、です。

なお、Excel2007以降の場合は、マクロを保存するには「xlms」拡張子でファイルを保存しないといけません。 xlma拡張子では、一応プログラムを書くことや実行することはできますが、保存ができないので、ファイルを閉じたらプログラムは消えてしまいます。

†1 簡単なプログラムを書く
プログラムの最小単位を「プロシージャ」と呼びます。
ここではもっとも小さなプログラムを書いてみます。

「ツール」「マクロ」「Visual Basic Editor(以下VBE)」にて、「挿入」「標準モジュール」をクリックします。

そこで、以下の3行をそのままコピペします。

Sub test01()

MsgBox "こんにちは!"

End Sub

※コピペ → コピー&ペーストの略です。「ペースト」とは、「貼り付け」のことです。あまり略語は良くないかもしれませんが、プログラミングの世界ではこのほうが通っているので、このように書かせていただきました。

Subの行からEnd Subの行までが1つの「プロシージャ」です。
ここに実行させたいことを書くわけです。
また、「test01」というのがプロシージャ名となります。
プロシージャ名は日本語でも一応、いいのですが、トラブルを起こすことがあるので、Excelが勝手に日本語名をつける場合以外は、できるだけ半角英数文字で書きます。
なお、この例ではプログラムを1行だけ書きましたが、通常は何行も書くことになります。
ちなみに、「MsgBox」は「・・・というメッセージを表示しろ」という命令です。

†2 書いたプログラムを実行する
VBEの画面のまま、F5キーを押すか、VBEの「実行」「Sub/ユーザーフォームの実行」を押します。

先の、「test01」というプロシージャを実行すると、「こんにちは!」というメッセージダイアログが表示されます。