今回は、OfficeのExcel VBAで初心者でも簡単にマクロを作成する方法を紹介します。

Excelのマクロ(VBA)を使ったことがないし、当然プログラミングもしたことがない……
かといって1から勉強を始めるのもハードルが高いなぁ

「マクロの記録」機能で作成したコードを利用すれば、初心者でも簡単にマクロを作成できますよ♪
もちろんプログラミング要素が0とは言いませんが、
ほとんど知識なしでもできてしまう方法ですので、良かったらご参考にしてくださいね。
元となるExcelを作成
まずはマクロを付与する元となるExcelを作成しましょう。
例えば、「健康診断の日程」を社員の人数分印刷するケースです。
以下のように、
まずVLOOKUP関数を利用して「印刷No」を変更するだけで内容を変えられるようにします。
(VLOOKUP関数の使い方については以下を参照してください♪)


さて、ここで一つ一つ「印刷No」に値を入れて印刷するを繰り返すのも面倒なので、
From~ToのNoの人へ一括して通知文を印刷したい!とします。

ここで登場するのが処理を自動化させるマクロです。次項から作成方法を説明していきます。
Excelをマクロ形式にする&開発タブを追加する
前準備としてExcelをマクロ形式にしましょう。
名前を付けて保存する際に、「Excelマクロ有効ブック」を選択して保存します。
こうすることで、ファイルの拡張子が「.xlsm」となり、マクロを保存できるようになります。

次に、もしExcel上部に「開発タブ」が出ていなければ設定してあげましょう。
「開発タブ」からマクロの設定ができます。


「開発」にチェックを入れるとタブが現れます。

「マクロの記録」機能でベースコードを作成
前項までで事前準備もできたため、早速マクロを作成していきましょう。
ただ、いきなりVBAのコードエディタを開き、1からコードを作成……、
なんてことをしてしまうと一気に難易度が高くなってしまうため、
今回はマクロの元となるベースコードを作成するため、Excelの「マクロの記録」という機能を使用します。
「マクロの記録」とは、その名の通りExcelの操作を記録する機能です。
やり方は以下の通り、まず「マクロの記録」をクリックします。

適当にマクロ名を付けて保存します。
(プログラミング言語はアルファベットが基本なので、アルファベットで「動詞+名詞」のような処理内容がわかる名前がおすすめです)

「OK」を押すと記録が始まるので、記録したい処理を手作業で行います。
今回のケースだと、以下を記録してみましょう。
1.G2の値を変える
2.印刷する

終わったら、記録終了します。

これで記録できました!
マクロボタンをおして、編集を押すと……。


このように、マクロのベースとなるコードができましたね♪

コードを見て、
・G2を選ぶ
・値(2)を入れる
・エンターを押したためG3が選ばれる
・印刷する
という処理内容になっていることがなんとなく分かれば、マクロ作成は難しくありません!
分からなくても、いくつかやっているとなんとなく分かってきますのでご安心を。
また、もし、同じ作業をするだけなら次項のコードの修正は不要なので飛ばしてくださいね♪
コードを適宜修正
前項にてベースコードができましたので、以下のとおり適宜修正していきます。
・G2を選ぶ → 必要
・値(2)を入れる → 値にFromToの内容を反映させれるようにする
・エンターを押したためG3が選ばれる → G3を選ぶ必要はないため不要
・印刷する → 必要
◎上記をFromToの間だけ繰り返す!
ここでややこしいプログラミングの知識は一つだけで、「繰り返す」ということです。
繰り返すには「For~Next」というコードを使います。
このコードは、マクロを作るうえではとても重要なもので、
逆にこれだけ覚えていたら、簡易なマクロであればなんとなくの雰囲気だけで作れちゃったりします。
For start To end
処理
Next
上記の通りstartからendまで、処理を繰り返します。
startの値は一度繰り返すごとに1ずつ増えていき、startの値は処理内で使用することができます。
では、実際に作ってみたコードがこちらです。
Sub PrintFromTo()
→ マクロ名(関数)
'
' PrintFromTo Macro
'
Range("G2").Select → G2を選ぶ
For i = Range("G5").Value To Range("H5").Value
→ iという変数(入れ物)に入れたG5の値からH5の値まで繰り返す
ActiveCell.FormulaR1C1 = i → 選んだG2へiの値を入れる
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False → 印刷する
Next → iの値を1プラスしてForに戻る
End Sub → マクロを終了する

これでコーディングは終了です。初めてでもなんとなく理解できたら幸いです。
できたらコードエディタを右上の×で閉じて、マクロを実行してみましょう。

想定通り、繰り返し印刷できていたら成功です!
(必要であれば)マクロ実行のためのボタン等を作成する
前項のとおりマクロができましたが、毎回マクロの画面を開いて実行と押すのも非効率なので、
必要であればボタン等装飾してみるのもおすすめです。
今回は、ボタンを押すと設定したマクロが実行できるようにしてみましょう。
まず、図形から丸みを帯びた四角のボタンを作成します。


次にボタンを右クリックし、「マクロの登録」を押すと、
以下のように登録画面が出てきますので、作成したマクロを選択しましょう。

これでマクロボタンの作成についても完了です。
どうでしょう、わりと簡単だったなと思っていただけると嬉しいです。
少し難しいと思っても数回やってみると、
「ふ~ん、こんな感じか」と慣れてくると思いますので、是非チャレンジしてみてくださいね!
以上です。
今回の記事が何かの参考になれば幸いです。ありがとうございました♪