エクセル マクロ

【実践でスキルアップ】エクセルマクロの練習問題集10問!

エクセルマクロ(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 を使うとフォルダ内のファイルを取得できる

まとめ

いかがでしたでしょうか?正しく動作するマクロを作ることができましたか?

マクロは目標となるものをもって、実際に手を動かして学ぶのが一番の近道です。

「動かしてみる → 修正する → 応用する」 を繰り返してスキルアップしましょう!

  • この記事を書いた人

いしはらゆうと

実務エクセルのプロ
パソコンが使えず全く仕事ができなかったことから猛勉強し、 各部署から頼りにされるレベルになりついにはSEに。
マクロを活用し、2人がかりで1日の仕事を1人×30分に短縮。 自身の経験から、最短で学ぶことのできるエクセル学法をノウハウ化し数十名以上にオンライン講座を開講。
現在は「瞬習エクセルアカデミー」として実務に必要なスキルをスキマ時間で学ぶことのできるオンラインスクールを運営中。
元SE
国家資格:応用情報技術者

-エクセル, マクロ
-,