※この記事はExcelVBAの情報です。
実際に、仕事でVBA開発を求められるシーンって増えてきていませんか?
僕は仕事中、イカツイVBAツールを作っていかにサボれるかということばかりを考えていた時期がありました。
中でも自分でも良くできたなーと思うツールは、30分以上かかる作業がボタン1つで1分以内に終わってしまうという内容のものでした。(それから正式にVBAの仕事をガンガン依頼されるようになりまして・・・)
今回はそんな僕が最初にどうやってVBAを身につけていったのか、そしてVBAを始める前に最低限何を知っておくといいのかという内容をご紹介します。
VBAのノウハウをまとめる内容は、既に他のブログやメディアサイトで出尽くしていると思います。このサイトでは既存のVBAノウハウを元に、様々なシーンでそのまま使えるアドインをご紹介していきます。今回は導入編です。
Contents
VBAとは?マクロとは?
VBAとは
「VisualBasic for Applications」の略です。
簡単に言えばVBAはプログラミング言語のひとつです。
Excelというソフトを使ってツールやアプリケーションの開発・実行ができます。
参考:VBAとは
マクロとは
Excel上での手動操作を記録し、再現することです。
Excel上での手動操作を記録する際、裏でVBAのソースコードが自動的に記録されています。
それを実行することで、記録した手動操作を再現できるわけです。
参考:エクセルマクロとは?
VBAとマクロ
つまり次のような捉え方でOKです。
- マクロは手動操作をVBAソースコードとして記録し再現する手法。
- VBAはExcel上の操作を表現することができるプログラミング言語。
あまり細く自分の中で棲み分けても会話で伝わらないと意味がないので、一般的には、言葉としてはマクロもVBAも同じ意味で使われることが多いと捉えておきましょう。
VBAで具体的に何ができるのか?
Excel上の様々な手動操作を再現
VBAソースコードを記述し実行することで、様々なExcel上での手動操作を再現することができます。
具体例を挙げます。
- セルに値を入力・値の編集・削除
- セルの背景色や文字色を変更
- セルに罫線を引く
- 列や行の挿入や幅を変更
- セルに入力されている数値を使って複雑な計算
- メッセージボックスやYes No 選択メッセージを表示
- シートの追加・削除・シート名の変更
- 任意のオートシェイプを挿入する
などなど。
Excel以外の操作
VBAはExcel以外のソフトウェア操作や、ファイルの操作も可能です。
操作できるものは限られてきますが、それでも非常に多くのシーンで活用できます。
具体例を挙げます。
- ファイルの作成・移動・編集・削除
- フォルダの作成・移動・削除
- フォルダ内のファイル名一覧を取得する
- ファイルの存在確認やプロパティ情報を取得
- テキストファイルを作成・中身の編集・削除
- InternetExplorerを自動制御
- InternetExplorerと連携しページのテキストやHTMLを取得
など、自動化できると嬉しいWEBブラウザの制御もできてしまいます。
ちなみにInternetExplorerとVBAを連携させてスクレイピングなんてこともできてしまいますね。
高度な使い方もできます
ウィンドウズAPIという言葉をご存知でしょうか?
Windows上での操作を司るAPIのことです。
このAPIをVBAで呼び出して連携させれば、非常に高度なWindowsPC上の操作をVBAでプログラミングできます。
具体的に例を挙げると、
- 現在のマウスポインタの画面上座標の取得
- 画像ファイルの1pxごとのRGBカラー値を取得
- サーバーとのSSH接続・コマンド送信
しかし使い方が非常に難しいので、上級者向けです。今回は、そういうこともできるんだ、と知っていただきたくWindowsAPIをご紹介しました。
ちなみにWindowsAPIとVBAを連携させることを解説している本は種類が非常に少ないです。僕が参考にしている本はこちらの本です。
もしVBA+WindowsAPIを極めていきたいという方がいらっしゃれば手に入れておくべき一冊です。
ソフトウェアアプリケーションの開発と大差ないので、無限の可能性を感じています。
VBA開発の様子を見てみよう
百聞は一見に如かずということで、画像を多めに使ってVBA開発の様子をご紹介します。
今回は、上記でも少し話を出した「スクレイピング」をやってみます。
内容は「YouTubeチャンネルURLを入力しボタンを押すと、チャンネル名、チャンネル登録者数を取得し、Excelシート上に表示する」というマクロを作ってみます。
エクセル起動・VBEを開く
エクセルを起動し、Alt+F11 でVBEを開くことができます。
VBEとは?
Visual Basic Editor の略です。VBEはVBAを開発する画面のことです。VBAと間違えやすいので注意しましょう。
開けましたでしょうか。画面の見方を解説します。
プロジェクトエクスプローラー、プロパティウィンドウ、ソースコード表示エリアが表示されているVBEです。
VBEにはもっと多くの種類のウィンドウがありますが、初期状態は画像のように表示されます。
モジュールとは?
ソースコードを記述するテキストファイルのようなものです。
モジュールを作成する
早速新規モジュールを作成していきます。
プロジェクトエクスプローラーの空白部で右クリックし、「挿入」→「標準モジュール」を選択します。
次の画像のように新規モジュールが追加されます。新規追加されたモジュールは名前が「Module1」となっているので、わかりやすいように名前を変更します。
今回は「YouTubeTool」という名前にしておきました。
プロシージャを作成する
それではこのYouTubeToolモジュールにソースコードを記述していきます。
詳しい内容は今回は省略します。以下の画像のようにプロシージャを記述しました。
プロシージャとは?
実行する動作(処理)です。モジュールにはプロシージャを複数記述することができます。
実行契機を作る(ボタンを配置する)
開発タブ→挿入→ボタンを選択してボタンを設置します。
このボタンが実行するプロシージャを選択してOKを押下します。
これにて、設置したボタンを押下すれば今回作成したプロシージャが実行されるようになりました。
実行
実際に設置したボタンを押下して、実行してみます。
情報を取得中です。
情報取得が完了しました。
「取得しました」というメッセージボックスも意図して出したものです。処理が終わるタイミングで、メッセージを出すようにプログラミングしています。
いかがでしょうか。具体的な開発のフローはイメージできましたでしょうか。
今回のツールが欲しい方はお問い合わせいただくか、TwitterなどのSNSでBrownにご連絡いただければと思います。
【初心者歓迎】VBA概要 のまとめ
「VBAの始め方・始める前に最低限知っておきたいこと」というタイトルでまとめました。僕がVBAを全く知らない状態の時に、やっとVBAがなんとなくわかってきたなーと感じたところまでを書いています。
自力で調べると結構労力を使うので「これから始めたいけど何も知らないからイメージできなくて障壁を感じている」という方へ、1記事でなんとなく分かったような気分になれる情報をご紹介させていただきました!
今後はアドインをまとめていきます
前述の繰り返しになりますが、VBAのノウハウをまとめる内容は、既に他のブログやメディアサイトで出尽くしていると思います。
なのでこのサイトでは今後、既存のVBAノウハウ情報を元に、様々なシーンでそのまま使えるアドインをご紹介していきます。