こんにちは!
フリーランスエンジニアのかたやまです。
今回は、効率化の強力な味方であるEXCELマクロやVBAについて解説します。EXCEL作業だけでなく、幅広く自動化できることができる優れた技術です。エンジニアでなくても、パソコン使うすべての人が知っておくべき内容だと思います。
そもそもマクロとは?
マクロについて、一言で表すと「EXCELに関係する、あらゆる作業を自動化できる機能」です。操作の手順をあらかじめ登録しておき、必要なタイミングで実行することが可能です。
「毎日同じ作業をしているなあ」と感じている人は、マクロを使って自動化することができるかもしれません。具体的にどんな作業が自動化可能なのか?については、後ほど見ていきたいと思います。
VBAとは?
VBAとは、プログラミング言語の名前です。正式には、Visual Basic for Applicationsと呼ばれる言語です。
言語の難易度自体は高くないのですが、開発環境(実際にVBAを使ってプログラミングを行う場所)であるVisual Basic Editorが少し使いづらいため、大規模な開発では採用されづらい開発方法です。
具体的にマクロでできることは?
具体的にマクロを使って、できることを見ていきたいと思います。
今回は8つのカテゴリに分けてできることをリスト化します。
1.EXCEL自体の操作

EXCELで普段使用している機能のほとんどは、マクロによって自動化することが可能です。
- シート名を指定してシートを一括追加
- コピー&ペースト作業
- セルの色を一括変更
- 文字の書式設定の一括変更
- 図形の大きさを一律で変更する
2.ファイルの読み込み

特定のフォルダやファイルを読み込んで、情報を取得することが可能です。
- テキストファイルを読み込んで、情報を取得し、結果をEXCEKに書き込む。
- PowerPoint、EXCEL、Wordを読み込んで、情報を取得し、結果をEXCEKに書き込む。
- ソースコードを読み込んで、情報を取得し、結果をEXCEKに書き込む。
- 指定したフォルダ内の画像を読み込んで、EXCELに張り付ける。
3.ファイルの書き込み

特定のファイルに対して、情報を書き込むことが可能です。
- テキストファイルを読み込んで、情報を置換する。
- テキストファイルを読み込んで、情報を追記する。
- テキストファイルを読み込んで、情報を削除する。
- PowerPoint、EXCEL、Wordを読み込んで、情報を置換/追記/削除する。
- ソースコードを読み込んで、情報を置換/追記/削除する。
4.画面キャプチャの取得

指定したアプリケーションやブラウザの画面キャプチャを取得し、保存することが可能です。
- 指定したファイルを開いた状態の画面キャプチャを取得して、EXCELに張り付ける。
- 指定したURLのWebサイトの画面キャプチャを取得して、EXCELに張り付ける。
- 指定したアプリケーションの画面キャプチャを取得して、EXCELに張り付ける。
5.文字列検索

特定のファイルから情報検索を行い、結果を取得することが可能です。
- フォルダ内のすべてのファイルを開いて、特定の文字で検索する。
- EXCELファイルの図形に書かれている文字を検索する。
- 検索でHITした行に加えて、前後5列の情報を取得して、結果をEXCELに書き込む。
- 大量のファイルの中で、指定した文字を含むファイル名の場合、特定のフォルダにコピーする。
6.Webサイトから必要な情報を収集する。

特定のWebサイトを開いて、表示結果を取得することが可能です。
- 指定したURLの文字をすべて取得して、結果をEXCELに書き込む。
- 指定したURL内の画像をダウンロードして、保存する。
- 指定したURL内のすべてのページのURLとタイトル、本文を取得する。
- 指定した検索キーワードで検索を行い、検索結果の上位10個のWebサイトの情報を取得する。
7.Webサイトを操作する。

特定のWebサイトを開いて、簡単な操作を自動化することが可能です。
- 指定したWebサイトの問合せフォームに情報を入力して、「送信」ボタンをクリックさせる。
- EXCELにあらかじめ登録した情報をもとに、勤怠システムに自動入力する。
8.メールの送信

指定した宛先、本文にてメール送信を行うことが可能です。
- Outlookを利用してメールを送信する。
まとめ
今回の「EXCELマクロ/VBAでできることリスト」は以上です。マクロを使うだけで、さまざまな作業を自動化できることが分かったと思います。
何ができるかを知っておくだけでも、日々のパソコン作業の見え方が変わると思います。自動化できそうな作業をたくさんやっていたら、VBAの学習を始めても良いのではないでしょうか。
では、また次回!