エクセルマクロ(VBA)は、繰り返し作業の自動化や業務の効率化に役立つ強力なツールです。
しかし、「マクロって難しそう…」「プログラミングの知識がないとできないのでは?」 と思っている方も多いかもしれません。
実は、マクロは基本的な書き方を覚えれば初心者でもすぐに使えるようになります!
本記事では、初心者でも学びやすい実践的なマクロ練習問題を10問用意しました。
「マクロを実践的に学びたい!」 という方は、ぜひ挑戦してみてください!
マクロ(VBA)とは?初心者向けの基礎知識
マクロって何?
エクセルの「マクロ」とは、エクセルでの繰り返し作業を自動化する機能のことです。
例えば、以下のような作業をボタン1つで自動化できます。
- 複数シートのデータを一括集計
- 重複データを削除
- 指定フォルダ内のエクセルファイルを全て開く
- メールを自動で送信する
えっメール送信?と思われた方もいらっしゃるかもしれませんが、そのようなこともできてしまいます。
また、マクロの記録機能を使えば、プログラミング知識がなくても簡単なマクロを作成できます。
しかし、より自由にカスタマイズするにはVBA(Visual Basic for Applications)の知識が必要ですので、今回の問題にチャレンジしてみてください。
マクロの基本操作
マクロを作成する準備
まずはマクロを作成するための準備が必要です。ご自身のパソコンのエクセルを開いたときに「開発」というタブは存在していますでしょうか?

表示されている方は、OKです。表示されていない方は下記の手順で、まずは「開発」タブを表示させましょう。
1.「ファイル」タブをクリックする

2.「オプション」をクリックする

3.「リボンのユーザ設定」で「開発」にチェックを入れる

これで準備は完了です。
VBAエディタを開く
準備ができたら、VBAのコードを記述する箇所を確認します。
1.「開発」タブから「Visual Basic」をクリックする

2.右クリックし「挿入」→「標準モジュール」

3.「Module1」というのができるので、そこをダブルクリックした右側にコードを記述していきます。

初心者向けマクロ練習問題10問
ここから、実践につながる基本知識を習得できるマクロの練習問題を10問紹介します!
※ 「Module1」にコードを入力し、[F5]キーで実行してみましょう。
自分で考えられる方は考えてから回答を見て頂き、難しい方は回答をコピペして実行してみましょう。
基礎編
問題1:A1セルに「Hello, Excel!」と入力するマクロを作成しましょう

問題1の解答
下記のコードを記述し、実行します。
Sub 問題1()
Range("A1").Value = "Hello, Excel!"
End Sub
ポイント
Range("A1").Value = "〇〇"
で、A1セルに文字を入力できる!
問題2: A1~A4のセルを空にするマクロを作成しましょう

問題2の解答
Sub 問題2()
Range("A1:A4").ClearContents
End Sub
ポイント
ClearContents
を使うとセルの値だけを削除できる(書式はそのまま)
問題3: A1~A5の背景色を黄色にするマクロを作成しましょう

問題3の解答
Sub 問題3()
Range("A1:A5").Interior.Color = RGB(255, 255, 0)
End Sub
ポイント
Interior.Color = RGB(〇,〇,〇)
を使うと背景色を変更できる(RGBで指定)
問題4:実行すると「お疲れ様です!」とメッセージが表示されるマクロを作成しましょう

問題4の解答
Sub 問題4()
MsgBox "お疲れ様です!"
End Sub
ポイント
MsgBox "〇〇"
を使うとメッセージボックスを表示できる
問題5:実行するとCドライブの「excel」というフォルダに「マイマクロ.xlsm」としてファイルが保存されるマクロを作成しましょう

問題5の解答
※Cドライブ直下に「excel」というフォルダがある状態で実行が必要
Sub 問題5()
ActiveWorkbook.SaveAs "C:\excel\マイマクロ.xlsm"
End Sub
ポイント
SaveAs
で特定の名前で保存できる
応用編
問題6:シートを追加するマクロ
マクロを実行すると、新しいシートを追加され「新規シート」という名前がつくようにしましょう。

問題6の解答
Sub 問題6()
Sheets.Add.Name = "新規シート"
End Sub
ポイント
Sheets.Add
で新しいシートを追加できる.Name = "〇〇"
でシート名を変更できる
問題7:実行すると、A1セルに現在の日付と時刻が入力されるマクロを作成しましょう

問題7の解答
Sub 問題7()
Range("A1").Value = Now
End Sub
ポイント
Now
を使うと現在の日時を取得できる
問題8:A列のデータを昇順に並び替えるマクロを作成しましょう ※データの対象はA1~A10セル

問題8の解答
Sub 問題8()
Range("A1:A10").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlNo
End Sub
ポイント
Sort
を使うと並び替えができる
問題9: A列の重複データを削除するマクロを作成しましょう ※データの範囲はA1~A10セル

問題9の解答
Sub 問題9()
Range("A1:A10").RemoveDuplicates Columns:=1, Header:=xlNo
End Sub
ポイント
RemoveDuplicates
を使うと簡単に重複を削除できる
問題10:Cドライブの「データフォルダ」というフォルダに入っているエクセルファイルの名前一覧を取得し、A1セルから順番に書き出していくマクロを作成しましょう

問題10の解答
Sub 問題10()
Dim folderPath As String
Dim fileName As String
Dim i As Integer
folderPath = "C:\データフォルダ\"
fileName = Dir(folderPath & "*.xlsx")
i = 1
Do While fileName <> ""
Cells(i, 1).Value = fileName
fileName = Dir
i = i + 1
Loop
End Sub
ポイント
Dir
を使うとフォルダ内のファイルを取得できる
まとめ
いかがでしたでしょうか?正しく動作するマクロを作ることができましたか?
マクロは目標となるものをもって、実際に手を動かして学ぶのが一番の近道です。
「動かしてみる → 修正する → 応用する」 を繰り返してスキルアップしましょう!