Trace Id is missing

Excel マクロは難しくない! VBA からマクロ ボタンまで業務効率化の方法を解説

2022 年 1 月 19 日

Microsoft Excel での業務で、マクロという単語を聞いたことがある方は多いと思います。マクロを利用すると、日々定型的に行っている Excel での作業を自動化したり、作業負荷を軽減したりすることが可能です。
そこで今回は、実例を交えたマクロの使い方や注意点から、マクロボタンの作成方法までを解説します。

1. マクロとは

まずは、マクロの役割や基本的な使い方について見ていきましょう。

1-1. マクロとは

マクロとは、行いたい処理を設定することで操作を自動化できる機能のことです。高度なプログラミング知識は不要で、作業の簡略化や操作ミスの削減に役立ちます。

Excel におけるマクロ機能は、操作内容の記録と実行の 2 種類の操作で成り立っており、定期的なレポート作成など、同じ操作を複数回実行する業務に適しているといえるでしょう。

1-2. マクロの利用シーン

マクロは反復作業が必要な場面で有効です。たとえば、以下のようなケースでの活用が考えられます。

  • 社員の稼働時間情報と給与テーブルから全員の給与算出を行う
  • 各部署から届いた売上を毎月合算する
  • 分析ツールからダウンロードした CSV を月次レポートの形に整える
  • 取引先ごとに入金額と明細の突き合わせを行う
  • 出庫管理システムのインポート機能に合う CSV ファイルを作成する
  • 出社状況をサマリーし、部門ごと在宅比率のグラフを作成する
  • 伝票や請求書を印刷する

このような業務を手作業で行われている方は、ぜひマクロの活用を検討してみてください。

2. マクロを使うときにおすすめの設定

マクロの使い方は簡単です。表示タブに「マクロ」の選択肢があるので、マクロの記録をクリックし名称を設定、記録したい操作を行い、記録を終了しマクロ有効ブックとして保存すれば、操作が保存されます。

表示タブの「マクロの記録」

保存されたマクロは「マクロの表示」からいつでも呼び出すことができ、実行したり編集したりできます。

しかし、より快適にマクロを活用したい場合、いくつか設定を工夫することをおすすめします。
マクロを使い始めるにあたり、まずコンテンツの有効化とマクロを存分に活用するための開発タブの設定方法について解説します。

2-1. マクロ有効ブックを開いたときはまずコンテンツの有効化が必要

マクロ機能を利用するためには、ファイルを保存する際のファイルの種類を、通常の Excel ブック (*.xlsx) 形式ではなく、Excel マクロ有効ブック (*.xlsm) 形式で保存する必要があります。

しかし、このマクロ有効ブック形式のファイルを開いても、セキュリティの警告が表示されマクロが動作しません。

Excel のセキュリティの警告表示

これは悪意あるマクロ ファイルによって、PC が危険な状況とならないようにするためです。マクロを動作させるためには、マクロが入った Excel ファイルが信頼性の高いものであることを明示する必要があります。

信頼済みドキュメントとして設定するためには、「コンテンツの有効化」ボタンをクリックし、セキュリティの警告ダイアログで「はい」ボタンをクリックします。

セキュリティの警告ダイアログ

2-2. 開発リボンの表示

マクロの操作をより簡単に行うために、Excel には開発リボンが用意されています。初期状態では表示されないため、表示設定をしておくことをお薦めします。

開発リボンの表示設定

1. ファイル タブをクリックする

Excel のファイル タブ

2. オプションをクリックする (オプションが表示されない場合は、その他からオプションをクリックする)

Excel のファイル画面

3. リボンのユーザー設定をクリックし、メイン タブ欄の開発をクリック、「OK」ボタンをクリックする

Excel のオプションのリボンのユーザー設定

4. 開発タブが追加され、開発リボンが表示される

Excel の画面に追加された開発タブ

Excel 作業を高速化するテクニックを厳選!

無料ガイドブック
Excel ショートカット 30 選
Microsoft 公式 超時短仕事術 Excel ショートカット 30 選

3. マクロの基本的な使い方

それでは、マクロの基本的な使い方として、マクロ記録機能を使う方法と、実際の業務での活用例を紹介します。

3-1. マクロの記録法

まずは基本的なマクロ記録機能の操作について説明します。

マクロの記録

1. Excel を開き、ファイルを新規作成する

Excel のファイル新規作成

2. 開発タブのマクロの記録をクリックする

開発タブの「マクロの記録」

3. マクロの記録ウィンドウが表示されるので、マクロ名 (例では日付) を入力し、「OK」ボタンをクリックする (これ以降の操作は記録され、自動化できるようになる)

マクロの記録ウィンドウ

4. 文字を入力する (例では 1 日~ 10 日を入力)

Excel での文字入力

5. 記録終了をクリックする

開発タブの「記録終了」ボタン

6. 「ファイル」をクリックし、「名前を付けて保存する」をクリック、ファイルの種類で「Excel マクロ有効ブック (*.xlsm)」を選択し、保存する

ファイルタブの名前をつけて保存

これで日付というマクロを 1 つ作ることができました。

作成したマクロを利用して状況を再現させるため、新しいシートを作成してマクロを実行してみましょう。

マクロの実行

1. 「新しいシート」ボタンをクリックする

Excel の「新しいシート」ボタン

2. マクロをクリックする

開発タブのマクロボタン

3. マクロ ウィンドウで作成したマクロが選択されているのを確認し、「実行」ボタンをクリックする

マクロ ウィンドウ

4. マクロが実行され、マクロの記録の際に入力した文字が入力される

マクロ実行後

初期設定ではマクロを実行すると同じ場所に再現される「絶対参照」で記録されます。
同じシート内でセルを移動しながら繰り返したい操作の場合は「相対参照で記録」をクリックして、マクロの記録を設定するとよいでしょう。

開発タブの相対参照で記録ボタン

下の例は「相対参照で記録」を用いて 1 日から 10 日のマクロの記録を行い、C1 、D2 のセルでマクロを実行した結果です。

マクロ実行後

マクロ設定した操作を別の場所に実行できました。

3-2. マクロの記録の実践

ここでは活用事例として、社員の勤務表と給与テーブルから給与一覧を作成する業務をマクロ化してみましょう。

勤務表の Excel ファイル、給与テーブルの Excel ファイルを開き、給与一覧のマクロ有効ブックの Excel ファイルを作成します。

A さん、B さん、C さんの勤務表をそれぞれ勤務表 A、勤務表 B、勤務表 C とし、残業時間を算出します。
勤務表の合計時間のように 24 時間以上の時間を加算する項目には、セルの書式設定で分類からユーザー定義を選択し、種類に「[h]:mm」と入力します。

セルの書式設定

また、時間に金額を掛けて計算するために、転記用の項目を設け、時刻表示を数値表示に変換します。

30 分を 0.5 時間として計算するために、算出した時間に 24 を掛け算し、数値の書式を標準に変更します。

転記用の項目で数値の書式を標準に変更

<勤務表 A>

勤務表 A

<勤務表 B>

勤務表 B

<勤務表 C>

勤務表 C

また、給与テーブルの Excel ファイルも開いて用意しておきます。

給与テーブルの Excel ファイル

そして、給与一覧のファイルを作成し、マクロ有効ブックとして保存します。編集しない項目はあらかじめ入力しておくとよいでしょう。

給与一覧の Excel ファイル

あとは、マクロの記録を行い、勤務表からの勤務時間や残業時間のコピー & ペーストや総支給額の計算を行います。

マクロの記録

1. 給与一覧を開き、開発タブのマクロの記録をクリックする

給与一覧でマクロの記録

2. マクロの記録ウィンドウが表示されるので、マクロ名 (例では給与計算) を入力し、「OK」ボタンをクリックする (これ以降の操作は記録され、自動化できるようになる)

マクロの記録ウィンドウ

3. 勤務表 A から転記用の労働時間と残業時間をコピーする

勤務表 A から転記用の労働時間と残業時間をコピー

4. 給与一覧にペーストする

給与一覧にペースト

5. 給与テーブルを用いて社員 A の総支給額の数式を入力し、総支給額を算出する (ここでは SUM 関数を用いて、基本給と残業時間と残業代を掛けた金額を足し算している)

給与一覧で社員 A の総支給額の数式を入力

6. 3 ~ 5 の手順を繰り返し、給与一覧の社員 B と社員 C の項目も埋めていく

給与一覧の社員 B と社員 C の項目を埋める

7. 記録終了をクリックする

給与一覧でマクロの記録終了

これで給与計算のマクロが完成しました。

給与一覧のファイルを開き、勤務時間を変更してマクロを実行すると、セルの転記や計算が自動で実行されます。

マクロの実行

1. 勤務表と給与テーブルを開き、必要な場合は数値を変更する (マクロを記録したときと同じ条件であること、たとえば 、各ファイル名やコピー & ペーストするセルの位置の変更がないことなどを確認する)

勤務表 A

2. 給与一覧の「新しいシート」ボタンをクリックする

新しいシートボタン

3. 前のシートから給与一覧の表をコピー & ペーストし、時間と総支給額の値を削除する

新しいシートに給与一覧の表をペースト

4. マクロから給与計算を選択し、実行する

マクロウィンドウ

5. マクロが実行され、セルの転記や計算が自動で実行される

マクロ実行後

給与一覧の計算がマクロの記録で自動化されました。

4. より実用的なマクロを記述する VBA コードの使い方

マクロの記録では記録時と実行時のファイル、シート、セルなどの状態を同じにしておく必要があり、実際に利用する場面でうまくいかない場合もあります。
そのような場合は、マクロの記録をカスタマイズし、より実用的な内容を記述できる VBA コードを活用しましょう。

ここでは VBA コードについて、使い方や実際の業務での活用例を紹介します。

4-1. 作成したマクロを微調整する際に有用なVBAコードとは

先ほどの実践で示したマクロを本格的に運用するには、毎月の勤務表の Excel ファイルを入れ替える必要があります。しかし、実際の業務においては、毎月行う作業用のファイルには年月をファイル名に付与し、履歴が残るように管理することが多いでしょう。マクロでファイルを選択できればさらに作業を効率化できます。

そこで登場するのが VBA です。VBA は「Visual Basic for Applications」の略で、マクロをコンピューター言語で表現したものです。VBA を用いることで、マクロの記録で作成した内容を微調整することができます

4-2. VBA コードの記述法

マクロの記録を用いて作成したマクロも、実際には私たちが行った操作に沿って VBA が記述されています。マクロをクリックし、「編集」ボタンをクリックすると VBA の内容を見ることができます。

マクロウィンドウ

VBA の編集画面が表示されます。

VBA の編集画面

「Sub 給与計算()」から、一番下の行の「End Sub」までが給与計算というマクロであることを示しています。
また、「Sub 給与計算()」の下の「’給与計算 Macro」は行頭に「’」 (カンマ) が挿入されており、緑色の文字で表示されプログラムのコードではなくコメントであることを示しています。
この「Sub 給与計算()」と「End Sub」の間に処理内容を記述していくことで、マクロを編集することが可能です。

例では、マクロの記録で設定した、勤務表の選択されているセルをコピーし、給与一覧にペーストしたり、給与テーブルの値を用いて、計算したりするといった内容が記述されています。
ここに、マクロを起動するとフォルダー選択ダイアログが表示され、ファイルを選択したら計算が行われるように追加の処理を記述します。

ブックやシート、セルなど VBA で操作可能な対象をオブジェクト、オブジェクトに与える命令をメソッドといいます。
たとえば、Windows(“勤務表A.xlsx”).Activate は、勤務表 A というオブジェクトを Activate という選択状態にするためのメソッドを「.」でつなぎ、勤務表 A を選択状態にするというコードとなっています。

今回は、Application.GetOpenFilename と Workbooks.Open いう 2 つのメソッド、つまりオブジェクトを操作する命令を使います。

  • Application.GetOpenFilename:[ファイルを開く] ダイアログ ボックスを表示し、ファイル名を取得する
  • Workbooks.Open:選択したファイルを開く

Application.GetOpenFilename は取得したファイル名を「変数」という名前付きの場所に格納します。そのため以下の記述を行い、ファイル名を取得する「メソッド」の結果を「変数」に格納します。
「変数」=「オブジェクト」.「メソッド」

一方、Workbooks.Open は開きたいファイルを指定する必要があるため、以下の記述で何を開くのか教える必要があります。
「オブジェクト」.「メソッド」 「開きたいファイルの場所」

今回ユーザーが指定したファイルを開きたいので、「開きたいファイルの場所」には Application.GetOpenFilename の結果となる「変数」を指定していきます。

4-3. VBA コード記述の実践

それでは給与一覧で作成したマクロを編集し、フォルダー選択の処理を追加してみましょう。

VBA コードの記述

1. マクロ画面から給与計算を選択し、「編集」ボタンをクリックする

マクロウィンドウ

2. [ファイルを開く] ダイアログ ボックスを表示し、ダイアログ ボックスで選択したファイルを開くために、給与計算 Macro の下に以下の記述を追加

    勤務表 = Application.GetOpenFilename()
    Workbooks.Open 勤務表

VBA の編集画面

※勤務表という変数に Application.GetOpenFilename() で取得したファイル名を入れ、そのファイルを Workbooks.Open で開いている

3. Windows("勤務表A.xlsx").Activate の行の行頭に「’」 (カンマ) を挿入し、コメントにする

Windows("勤務表A.xlsx").Activate の行の行頭に「’」 (カンマ) を挿入し、コメントにする

※マクロの記録を行った際には勤務表 A、勤務表 B、勤務表 C をそれぞれ開いて選択状態にしていたが、今回は開いたファイルが選択状態になるため

4. 2 ~ 3 の手順を勤務表 B、勤務表 C の記述の部分でも繰り返す

VBA の編集画面 2 ~ 3 の手順を勤務表 B、勤務表 C の記述の部分でも繰り返す

5. 保存ボタンをクリックする

VBA 編集画面の保存ボタン

マクロの実行

1. マクロを実行する

マクロウィンドウ

2. マクロを実行すると、ファイル選択のダイアログが表示される

ファイル選択のダイアログ

3. 2021 年 12 月_勤務表 Aを選択し「開く」ボタンをクリックすると、給与一覧に A の行にファイルの値が追加され、またファイル選択ダイアログが表示される

給与一覧のAの行に値が入力される

4. 2 ~ 3 の手順を勤務表 B、勤務表 C と繰り返す

給与一覧の更新が完了

勤務表の Excel ファイルを入れ替えなくても、ファイルを選択する記述を追加したことで給与一覧の更新ができました。

5. マクロの実行を簡略化するマクロ ボタンとは

マクロを呼び出すために、都度「マクロ」を選択してマクロ ウィンドウを開き、一覧から該当のマクロを選択して実行するのは少し手間がかかります。また、マクロを作成した人ではなくマクロを使ったことのない人が操作するには不便です。

そこで、マクロにショートカット キーとして Ctrl+□ (キーを指定) を割り当て、呼び出しを簡単に行う方法があります。

ショートカット キーの設定

1. マクロ ボタンをクリックして、ショートカット キーを割り当てるマクロを選択し、オプション ボタンをクリックする

マクロウィンドウ

2. ショートカット キーに割り当てる文字を入力し、「OK」ボタンをクリックする

マクロ オプションのウィンドウ

※ショートカット キーを解除したいときは割り当てた文字を削除し、「OK」ボタンをクリックする

ただし、この方法ではどのボタンにどのような動作を割り当てたか覚えておく必要があるので、注意が必要です。
そこで、ショートカットをボタン化し、わかりやすい名称で表示することもできます。

ボタンの設定

1. 開発タブから挿入、左上のボタン (フォーム コントロール) を選択する

開発タブの挿入、フォーム コントロール

2. ボタンを配置したい位置にドラッグ & ドロップする

ボタンを配置したい場所にドラッグ & ドロップ

3. マクロの登録画面が表示されるので、ボタンに設定するマクロを選択し、「OK」ボタンをクリックする

マクロの登録 ウィンドウ

4. ボタンが作成されるので、ボタン内をクリックし、表示名を変更する

ボタンの表示名を変更

5. ボタンをクリックすると、マクロが実行される

配置されたマクロ実行ボタン

6. マクロを使うときのセキュリティ設定

最後に、セキュリティの設定のうち、信頼できる場所の追加について解説します。

マクロ有効ファイルを開くとセキュリティの警告が表示され、マクロが動作しない状態となるため、「コンテンツの有効化」ボタンをクリックする必要があるということは前述しました。この方法では 1 つ 1 つのファイルに対して、コンテンツを有効にする必要があります。

一方、多くのマクロ有効ブックを利用する場合は、信頼できる場所としてフォルダーを設定することも可能です。

マクロ有効ファイルが信頼性の高いものであることを示すために、特定のフォルダーを信頼性の高い場所として設定します。
自分で作成したマクロを置くフォルダーを信頼できる場所として登録しておくと、セキュリティの警告を毎回受けなくてもファイルを開くことができます。

信頼できる場所の追加

1. 開発タブのマクロのセキュリティをクリックする

開発タブのマクロのセキュリティ

2. 信頼できる場所をクリックする

トラスト センター ウィンドウ

3. 新しい場所の追加をクリックする

トラスト センター ウィンドウの「信頼できる場所」

4. 「参照」ボタンからパスを指定し、説明を入力して、「OK」ボタンをクリックする

Microsoft Office の信頼できる場所ダイアログ

5. 信頼できる場所が追加されたのを確認し、「OK」ボタンをクリックする

トラスト センター ウィンドウの「信頼できる場所」

7. まとめ

マクロは、作成方法を覚えれば 1 時間程度で作れるようになります。また、一度作ってしまえば数秒の操作で利用できるようになるため、業務効率の向上につながるでしょう。さまざまな業務に応用的に活用することも可能で、作業を自動化することもできるので、それまで定型業務に費やしていた時間や労力を他に充てられるようになります。
日々の業務を正確に効率よく遂行するためにも、積極的にマクロを活用するよう心掛けましょう。

リモートワーク・ハイブリッドワークに適した環境設置のために

リモートワーク・テレワーク・在宅勤務環境を安全・快適に実現するためには、「セキュリティの確保」「Web 会議のためのデバイス選択」「グループワークのためのアプリケーション」など検討する課題も多く、またこれらを潤沢な資金で準備するのではなくコスト削減につなげることが大切です。

これらの達成のための Microsoft 365、Excel の使い方や、リモートワーク・ハイブリッドワーク環境を充実させるために以下の記事が参考になります。

他にも Excel 作業を高速化するテクニックを厳選! 無料ガイドブック

Microsoft 公式 超時短仕事術 Excel ショートカット 30 選

Excel ショートカット 30 選

Microsoft 公式の超時短仕事術 Excel ショートカット 30 選です。マウスなしで快適に Excel を使いこなしたい、より効率に作業したいという方必見!

ご購入検討の問い合わせ先

電話アイコン

お電話で購入相談

受付時間: 9:00 - 17:30 (土日祝日、弊社指定休業日を除く)

封筒アイコン

Web フォームで購入相談

本情報の内容 (添付文書、リンク先などを含む) は、作成日時点でのものであり、予告なく変更される場合があります。