こんにちは。システム担当の父親、KATSUです。
Excel歴20年、Access歴10年ですが、ブログは50記事を書いた程度です。先日、「パーフェクトExcel VBA」という書籍を購入しました。今まで約10年間VBAを使ってきましたが、これまでおざなりにしてきた基本を見つめ直そうと考えています。
「ExcelのVBAは便利らしいけど、どんな場面で使うことが出来るのかな?」
「VBAの本を買ってみたけど、実務での使い方が分からなくて今はもう使っていません」
今回は、VBAを使ったプログラミングに興味はあるけど、なかなか手を付けられなかった人に向けて書いてみました。
この記事を書いている私は、約20年前に就職しでから社内でExcelを使い続けてきました。
VBAを使ったプログラミングに興味はあったのですが、どんな場面で使ったらよいか分からず、なかなか手を付けられずに無駄に時間が過ぎていきました。
しかしある日、Excelの単純作業を行っている時に、「この作業を自動化できればいいのに」という思いが起こり、一度挫折していたVBAの学習を再開できました。
更に学び続けていくうちに、「このような時に使えるのではないか?」という疑問やアイデアが浮かんで、今まで学習を継続できています。
VBAの学習を挫折してしまった方が再開するきっかけになれば、との思いで本記事を作成しました。
Excel VBAを習得するステップ
VBAを使うことで小さな業務改善のためのツールから、ファミコン程度の画質のゲームまで、本当にさまざまなものを作ることが出来ます。
ゲームを作ることが出来れば素晴らしいのでしょうが、仕事以外にプログラミングの時間を捻出するのは本当に難しいと思います。
実際に今行っている業務を改善するためのツール作りをおすすめします。
難易度が低い順にステップを追っていくと、
- 手作業していることを自動化
- システム的な機能を盛り込む
- 他のOfficeソフトとの連携
- WEBからのデータ取込
以上の4つが出来れば実務のいろんな場面でVBAを活用できます。
リストにして挙げていくと、少しはイメージが固まってきたのではないでしょうか?
更に各ステップをもう少し掘り下げます。
身の回りの手作業を自動化する
例えば、
「毎日使う定型用紙をリセットするのが面倒くさかったので、対象の範囲を選んで空白にするマクロを作った。」
「データ分析のためのピボットテーブルをいくつか作ったが、更新に時間がかかる。マクロで記録したものをボタンに登録した。」
このような簡単な動作でも、今までかかってきた作業時間をいくらか少なくできます。
毎日同じ作業を繰り返していれば、相当な時間に積み重なります。
作業をそのまましてしまった方が早いのではないか?という気持ちも分かりますが、多少時間をかけてでもマクロを作る時間を少しでも良いので確保してみましょう。
マクロを作るためにかけた時間は決して無駄になっていません。
これから起きるであろう無駄な時間を減らせるとともに、新しい自動化への足掛かりになります。
システム的な要素を盛り込む
次は、現在使用しているExcelファイルに、システム的な要素を盛り込んでみてはいかがでしょうか?
例えば、「データテーブル(表)から、特定のデータを定型様式に貼り付けて印刷する」というものがオススメです。
印刷用の帳票にデータを反映させるためには、セルの操作が必要になります。
Excel VBAを使うために必要なことはセルの操作です。
セルを思い通りに操作出来れば、出来ることが大きく広がります。
一つのセルだけではなく、複数のセルを選択するresizeや、特定のセルからズラした場所を選択するoffsetを使う事が出来れば、更に自動化出来る範囲が広がります。
帳票へのデータ貼付けと印刷が出来るようになったら、入力フォームからデータテーブルへのデータ追加などが出来れば、更にVBAプログラミングの能力が高まります。
他のOfficeソフトとの連携
Microsoft Officeには、Excel以外にも様々なソフトがあります。
他のソフトもVBAでの自動化も可能です。
特にExcel VBAと相性抜群なのは、Accessです。
Accessで入力フォームを使った業務システムを作ることも出来ます。
Accessで作ったシステムからExcelにデータを反映させたり、ExcelからAccessのテーブルにデータを入れることも出来ます。
単独で購入することもできますし、Microsoft365では標準装備もされています。
開発用として1台分のAccessがあれば社内での運用は可能です。
ユーザーのPCにはAccessRuntimeをインストールすればそのまま作業できます。
他にも、ExcelからOutlookを使ってメールを自動送信する方法も可能です。
Webからの情報を自動取込
VBAを使って、webからデータを取り込むことができます。
実行するためには、htmlを知っていた方がスムーズにマスター出来ますが、手順はそんなに難しくはないです。
ブラウザにはソースコードを確認出来るディベロッパーモードがあるのですが、この機能を活用して取り込みたい場所を調べます。
場所を指定すれば、そのデータをExcelシートなどに取り込む事ができます。
株価や統計データ、ECサイトの価格比較など、有効に活用できるものはたくさんあります。
Webからの取り込みを行う場合には、Webドライバというものをインストールする必要があります。
ブラウザのバージョンが変わると都度入れ替える必用がありますので、若干手間がかかるのが欠点です。
しかし、自分だけの業務でWebの取り込みを行う程度であれば、問題ありません。
まとめ
このように、Excel VBAを使って出来ることはたくさんあります。まずは身近なことから、手をつけてみてはいかがでしょうか?
間違いなく、新しい発見がありますし、もっとこんなことがしたい、という気持ちも湧いてきます。
もしVBAに興味がある方は、こちらで書籍を紹介していますので、よかったらご覧ください。
本日も最後までありがとうございました。