ここではExcelマクロの作成方法について、超最低限に絞って解説します。
Excelマクロに興味をもったが、いったい何ができるのかわからない方などは是非ご参照ください。
Youtubeはこちら
1.Excelのマクロとは?
①自動化の機能全体を指して「マクロ」と表現する。
「マクロ」とはExcelに限らない広い意味です。
Excel以外で何らかの自動化の仕組みを用意したとしても、それも「マクロ」と表現します。
Excelのマクロを指す場合は、以下②で記載するプログラミング言語のVBAで記載されたコードの集合体をまとめて「マクロ」と表現しています。
誰かが「マクロ」という言葉を使用したとき、必ずしもExcelの話をしているわけではありませんので注意しましょう。
②PCに指示を出すためのプログラミング言語がVBA。
世の中にはPCに指示をだすためのプログラミング言語がたくさんあります。
ExcelのマクロとはVBAというプログラミング言語で記述します。
”言語”ですから誰かに何かを伝えるための言葉です。
日本語は日本人が理解できる言語だし、英語は英語圏の人たちが理解できる言語です。
VBAはというと?PCが理解できる言語の一つというわけです。
③Excelが入っていれば誰でも利用可能!
他のプログラミング言語においては、その言語を使うためにPCにその環境を整えることが必要な場合もありそこで頓挫する人も多いです。
しかしExcelのマクロは、Excelさえ入っていれば誰でも利用することが可能です。
会社支給のPCにおいてWindowsであれば、ほぼほぼExcelも最初から入っていると思います。
こんな便利なものを使わない手はありません。
2.マクロで何ができる?
Excelのマクロでできることを3点ご紹介します。
この3つできると業務の幅がかなり広がります。
2-1.Excel操作
Excelのマクロで最もイメージするのはこれでしょう。
自分で作ったことがなくとも、他人が作ったものを使ったことがある人も多いのではないでしょうか。
Excel操作の何ができるのかというと、ほとんど全てできると考えてください。
セルへの入力、シートの追加などわかりやすいものだけでなく、例えば「データ」リボンの中の「重複の削除」などもできます。
2-2.Outlook等他のソフトの操作。
仕事でよく使うWord・Excel・PowerPoint・OutlookなどはすべてMicrosoft社の製品です。
そしてそれらは連携がとれるように作られています。
よってExcelのマクロでそれらのソフトを操作することもできるのです。
特にOutlookを操作して自動で大量のメールを作成することは筆者のお勧めです。
2-3.WEB画面の操作
これもできるとブレイクスルーとなります。
マクロを作成できるという人でもこれをできる人は少ないと思います。
WEB画面を自動で操作して、フォームへIDやPASSWORDの入力をしログインボタンを押すなんてこともできるのです。
さらにはWEB画面からテキスト情報や画像を取り出すなんてこともできてしまいます。
できると一目置かれるでしょう!
3.マクロはどこに書く?
マクロを記述する場所は以下の手順で呼び出せます。
①Excel起動。
②Alt + F11で記述用の画面が表示される。
③「挿入」→「標準モジュール」
④VBAでマクロを記述。
⑤マクロ有効ブックで保存。 ※これを選ばずに保存すると作成したマクロがすべて消えてしまうのでご注意ください。
4.マクロの基本構造
指示内容を『Sub』と『End Sub』で挟む。
5.マクロの記述の基本
最低限以下の3つを抑えましょう。
①セルを表す
Cells(〇, ☆).Value ⇒ 〇行目、☆列目のセルの値(文字や数字)
②「.」は「の」もしくは、動作の前なら「を」と読む。
Workbooks(“Book1”).Sheets(“Sheet1”).Cells(1 ,2).Select
“Book1″という名前のブック「の」 “Sheet1″という名前のシート「の」 1行目・2列目のセル「を」選択しろ。
※ブック名やシート名は省略可能。
③「=」には2つの意味がある。
●代入
例:Cells(2, 3).Value = “情弱”
「2行目、3列目の値として”情弱”という文字を代入(入力)する」
●「同じである」の意味 ※If文の中で使う
例:If Cells(3, 4).Value = “情弱” Then …
「もし3行目、4列目のセルの値が”情弱”ならばそのときは…」
6.マクロ(VBA)記述例
・Cells(1, 1).Value = “情弱”
・Sheets(“Sheet1”).Name = “情弱”
・Cells(1, 1).delete
・Sheets(“Sheet1”).delete
・Sheets.Add
・Workbooks.Add
・If ActiveWorkbook.Name = “情弱.xlsx” Then ActiveWorkbook.Close