「毎日のExcel作業、もう少し楽にならないかな?」 そんな風に思ったことはありませんか?
Excelの「マクロ」や「VBA(Visual Basic for Applications)」を使えば、面倒な繰り返し作業を自動化し、効率を大幅にアップさせることが可能です。
でも、「マクロって難しそう…」「プログラミングなんて自分には無理」そう思っていませんか?
Excelマクロ/VBAは、プログラミング初心者でも取り組みやすく、一度習得すれば業務効率を劇的に改善することができるでしょう。
本記事では、マクロとVBAの基本から、簡単な自動化までを解説していきます。
1.Excelマクロ/VBAの基本概念を理解する
まずは、ExcelマクロとVBAがそれぞれ何を指すのか、そして両者の関係性について明確に理解することから始めましょう。
Excelマクロとは?繰り返し作業を自動化するためのツール
Excelマクロとは、Excel上で行う一連の操作を記録し、必要に応じてその操作を自動で再現する機能のことです。例えば、
特定のセル範囲にデータを入力する
セルの色やフォントを変更する
データを並べ替える
特定のシートをコピーする
複数のファイルをまとめて処理する
といった、繰り返し行う定型的な作業を「マクロ」として記録しておくことで、次回からはボタン一つ、
あるいは特定の条件を満たしたときに、これらの作業を瞬時に実行させることができます。
マクロは、Excelの機能の一つとして提供されており、特別なプログラミング知識がなくても、
「マクロの記録」機能を使えば、簡単に作成することができます。
VBAとは?マクロを記述するためのプログラミング言語
VBAは、**Visual Basic for Applications(ビジュアルベーシック・フォー・アプリケーションズ)**の略で、
Microsoft Office製品(Excel, Word, PowerPoint, Accessなど)に搭載されているプログラミング言語です。
つまり、Excelマクロは「自動化された操作」であり、その自動化された操作の中身を記述しているのが「VBA」というプログラムコードです。
「マクロの記録」機能を使ってExcelの操作を記録すると、その操作に対応するVBAコードが自動的に生成されます。
このVBAコードを直接編集したり、一から記述したりすることで、より複雑で高度な自動化や、
Excelの標準機能では実現できないような処理を実行することが可能になります。
マクロとVBAの違い
マクロ:Excelの操作を自動で記録し再現する機能
VBA:マクロを裏で動かすプログラム言語で、手動でのコード記述も可能
例えるなら、マクロは「自動運転の車」で、VBAは「その車を動かすための設計図やプログラム」のような関係性です。
マクロの記録で自動運転の車を動かすことはできますが、VBAを学ぶことで、
その車の性能をカスタマイズしたり、全く新しい機能を追加したりすることができるようになります。
2.環境設定
「開発」タブの有効化方法
①Excelを開き、「ファイル」→「オプション」を選択
②左メニューの「リボンのユーザー設定」をクリック
③右側のリストから「開発」にチェックを入れてOK
これで、Excelのリボンに「開発」タブが表示されるようになります。
このタブには、マクロの記録、Visual Basic Editorの起動、コントロールの挿入など、マクロ/VBA開発に必要なツールがまとめられています。
Visual Basic Editor (VBE) の起動方法
①「開発」タブをクリック
②「Visual Basic」ボタンをクリックでVBEが起動します
これで、Visual Basic Editor(VBE)が新しいウィンドウで開きます。
VBEの画面構成は、左側に「プロジェクトエクスプローラー」(開いているブックやシート、モジュールなどが表示される)
中央に「コードウィンドウ」(VBAコードを記述する場所)
下部に「イミディエイトウィンドウ」(デバッグなどに使用)などが配置されています。
マクロセキュリティ設定の確認
①「開発」タブ→「マクロのセキュリティ」をクリック
②「セキュリティセンター」で「すべてのマクロを有効にする」または
「デジタル署名されたマクロを有効にする」などを選択(用途に応じて)
開発中は「警告を表示してすべてのマクロを無効にする」を選択し、
マクロを含むファイルを信頼できる場所(信頼できる場所の設定は「セキュリティセンターの設定」から)に保存すると便利です。
こうすることで、毎回警告が表示されるのを避けつつ、悪意のあるマクロの実行を防ぐことができます。
3.マクロの記録と実行
いよいよ、実際にマクロを作成し、実行してみましょう。
まずは、最も簡単な「マクロの記録」機能を使って、Excelの操作を自動化する方法を学びます。
マクロ記録機能の使い方
①「開発」タブから「マクロの記録」をクリック
②名前を入力し、「OK」をクリック
③簡単な操作(例:セルにデータを入力)を実行
「記録終了」をクリックで記録完了
記録したマクロを実行する方法
①「開発」タブの「マクロ」をクリック
②実行したいマクロを選択し、「実行」をクリック
記録したマクロの編集方法
①「Visual Basic」ボタンでVBEを開く
②モジュール内に記録されたコードが表示されるので、セル範囲などを修正可能
4.VBAの基本
● VBAコードの基本構文解説
基本は以下のような構造です
‘ 処理内容
End Sub
● セル操作の基本コード例
→ A1セルに”Hello”と入力するコード
● メッセージボックス(MsgBox)の使用例
→ ユーザーに処理完了を通知するポップアップを表示
5. 演習:簡単な自動化
自動化マクロ作成の課題
以下のようなシナリオでマクロを作成してみましょう。
特定のセル範囲(例:A1からA10)に連番のデータを入力する。
入力したセルの背景色を特定の色(例:薄い黄色)に変更する。
フォントの色を濃い青に変更する。
①VBEを起動します。
②左側の「プロジェクトエクスプローラー」で、マクロを作成したいブックのVBAProjectを右クリックし、「挿入」→「標準モジュール」を選択します。
新しいモジュール(例:Module1)が追加され、コードウィンドウが開きます。
③以下のVBAコードをコードウィンドウに貼り付けます。
Sub FormatAndEnterData()
' 指定されたセル範囲 (A1からA10) にデータを入力する
Dim i As Integer
For i = 1 To 10
Range("A" & i).Value = "データ_" & i
Next i
' セル範囲A1からA10の背景色を薄い黄色 (RGB値: 255, 255, 200) に変更する
Range("A1:A10").Interior.Color = RGB(255, 255, 200)
' セル範囲A1からA10のフォント色を濃い青 (RGB値: 0, 0, 150) に変更する
Range("A1:A10").Font.Color = RGB(0, 0, 150)
MsgBox "データの入力とフォーマットが完了しました。", vbInformation, "完了通知"
End Sub
Sub FormatAndEnterData() と End Sub: このマクロの名前はFormatAndEnterDataです。
Dim i As Integer: 変数iを整数型で宣言しています。
For i = 1 To 10 … Next i: 「For…Next」ループという構文で、iが1から10まで1ずつ増えながら、その間の処理を10回繰り返します。
Range(“A” & i).Value = “データ_” & i: ループごとに“A” & i(例:A1, A2, …, A10)のセルに”データ_1″, “データ_2″…と入力されます。
Range(“A1:A10”).Interior.Color = RGB(255, 255, 200): セルA1からA10の背景色をRGB値で指定しています。RGB(255, 255, 200)は薄い黄色です。
Range(“A1:A10”).Font.Color = RGB(0, 0, 150): セルA1からA10のフォント色をRGB値で指定しています。RGB(0, 0, 150)は濃い青です。
MsgBox “…”: 処理が完了したことをユーザーに知らせるメッセージボックスを表示します。
実際にコードを書いて、結果を確認する
上記のコードをVBEのモジュールに記述したら、Excelに戻ります。
「開発」タブをクリックし、「マクロ」ボタンをクリックします。
「マクロ」ダイアログボックスでFormatAndEnterDataを選択し、「実行」ボタンをクリックします。
セルA1からA10にデータが入力され、背景色とフォント色が自動的に変更されるはずです。
6.おわりに:Excelマクロ/VBAであなたの働き方を変える
Excelマクロ/VBAは、単なるツールの使い方を学ぶだけでなく、業務の本質を見抜き、効率化を設計する思考力を養うことにも繋がります。
「マクロの記録」でVBAコードの自動生成を体験し、簡単なコード修正からVBAの記述に慣れていくことで、Excelスキルは向上するでしょう。
繰り返し行っていた手作業が自動化されれば、より創造的で戦略的な業務に時間を充てることができます。
それは、残業時間の削減だけでなく、キャリアアップにも直結するはずです。