残業を減らす!Officeテクニック
【Excel】Copilotで作ったマクロをボタン化! よく使う処理をすぐ実行する方法
2026年8月17日 08:45
Excelで同じ操作を何度も繰り返しているなら、マクロを作成しておくことで作業を効率化できます。ただ、よく使う処理は、特定のブックに保存しておくだけでなく、自分専用の機能としてExcelに組み込んでおきたいところです。
以前に個人用マクロブック(PERSONAL.XLSB)に登録して、よく使うマクロを複数のブックから利用できる方法を紹介しましたが、今回は別の方法として、マクロを独立した「.xlam」ファイルにまとめて、Excelアドインとして扱う方法を紹介します。
個人用マクロブックは、自分が使う複数のマクロを1つにまとめておく用途には便利です。一方、用途ごとにマクロを切り分けて管理したり、ほかのメンバーへ受け渡したりしたい場合は、独立したファイルのほうが扱いやすいでしょう。Excelアドインとして処理を独立させておけば、自作した機能を用途ごとに管理できます。
さらに、アドインに登録したマクロをリボンのボタンから呼び出せるようにしておけば、普段使っているExcelの機能と同じ感覚で実行できます。
マクロはCopilotに作成してもらう
今回は、選択したセル範囲の背景色を1行おきに設定し、行の高さを揃えるマクロをCopilotに作ってもらいます。あわせて、設定した書式を標準状態へ戻すマクロも用意します。
VBAのコードは、Copilotに書いてもらいましょう。「処理の対象にするセル範囲」と「求める結果」を具体的に指示します。今回は、以下のようなプロンプトを入力しました。
Excelで使用するVBAマクロを作成してください。現在選択しているセル範囲を対象として、以下の処理を行ってください。
- 選択範囲の1行目は見出し行として扱い、背景色は変更しない
- 2行目は背景色の塗りつぶしをなしにする
- 3行目は背景色をグレーにする
- 以降は、背景色の塗りつぶしなしとグレーを1行おきに繰り返す
- 選択範囲に含まれるすべての行の高さを30に統一する
- 選択範囲以外のセルには変更を加えない
- 処理内容が分かるように、VBAコード内にコメントを付ける
- 書式設定を実行するマクロとは別に、選択範囲を標準状態に戻すマクロも作成する
標準状態に戻すマクロでは、以下の処理を行ってください。
- 背景色の塗りつぶしを解除する
- 行の高さをシートの標準行高(ActiveSheet.StandardHeight)に戻す
- 選択範囲のみを対象とする
Copilotから回答されたコードに「書式を設定するマクロ」と「標準状態へ戻すマクロ」の2つが含まれていることを確認します。ここでは、以下のような回答になりました。
書式設定を行うマクロ(交互色+行高30)
Sub FormatSelectedRange() Dim rng As Range Dim r As Long Dim i As Long ' 選択範囲を取得 Set rng = Selection ' 選択範囲が複数行ある場合のみ処理 If rng.Rows.Count < 2 Then Exit Sub ' 行ごとに処理 For i = 1 To rng.Rows.Count r = rng.Rows(i).Row Select Case i Case 1 ' 1行目は見出し行として背景色を変更しない ' 何もしない Case 2 ' 2行目は背景色なし rng.Rows(i).Interior.ColorIndex = xlNone Case 3 ' 3行目はグレー rng.Rows(i).Interior.Color = RGB(217, 217, 217) Case Else ' 4行目以降は背景色なしとグレーを交互に If (i Mod 2) = 0 Then ' 偶数行 → 背景色なし rng.Rows(i).Interior.ColorIndex = xlNone Else ' 奇数行 → グレー rng.Rows(i).Interior.Color = RGB(217, 217, 217) End If End Select ' 行の高さを30に統一 rng.Rows(i).RowHeight = 30 Next i End Sub処理(マクロ)の名前は「FormatSelectedRange」となっています。任意の名前に変更して構いませんが、動作確認やボタンとして登録する際の目安にするので、覚えておいてください。
選択範囲が2行以上の場合にFor文で処理を実行し、Select Caseで1、2、3行目と、4行目以降の処理を切り替えています。セルの背景色はInterior.Colorプロパティで設定しており、「RGB(217, 217, 217)」の数値を変更すれば、別の色に変更可能です。行の高さは、RowHeightプロパティで「30」としています。
変数[r]と、「r = rng.Rows(i).Row」は使われていないので、削除しても構いませんが、特に問題はないのでそのままにしておきます。
設定した書式を元に戻す処理(マクロ)の名前は「ResetSelectedRange」です。こちらも覚えておきましょう。For文を利用して、選択範囲の背景色を「塗りつぶしなし」(xlNone)にして、行の高さを標準状態(StandardHeight)に戻しています。
標準状態に戻すマクロ(背景色解除+標準行高)
Sub ResetSelectedRange() Dim rng As Range Dim i As Long ' 選択範囲を取得 Set rng = Selection ' 選択範囲の各行を標準状態に戻す For i = 1 To rng.Rows.Count ' 背景色の塗りつぶしを解除 rng.Rows(i).Interior.ColorIndex = xlNone ' 行の高さをシートの標準行高に戻す rng.Rows(i).RowHeight = ActiveSheet.StandardHeight Next i End SubCopilotの回答は毎回同じになるとは限りません。目的の処理を実現できるかどうかを確認しておきましょう。今回のコードの内容に大きな問題はなさそうなので、新規のExcelファイルを作成してVBAエディタに上記のコードを貼り付けて動作を確認します。
標準モジュールを追加して、コードを貼り付ける手順は、以前の記事を参考にしてください。
もし、意図通りの動作にならない場合は、不具合の内容と本来の動作をCopilotに指示して、コードを再生成してもらい、貼り付け直したうえで動作を確認しましょう。
「.xlam」形式で保存する
処理の動作を確認できたら、コードを貼り付けたファイルを「Excelアドイン(.xlam)」形式として保存します。「.xlam」は、VBAのコードを保持できるExcelアドイン用のファイル形式です。通常の「.xlsx」ファイルとは異なり、Excelに追加する機能をまとめておく用途に利用できます。
ファイルの種類として[Excel アドイン (*.xlam)]を選択すると、Excelアドインの保存先となるフォルダーに自動的に切り替わります。ファイル名は、アドインの有効・無効を切り替える際に表示されるため、「RowStyleTools.xlam」のように、用途がわかる名前を指定します。
以上の操作で、マクロを入力したExcelアドインファイルが保存されました。ここまで操作していた新規ブックを、別途通常のExcelファイルとして保存する必要はありません。
アドインのマクロをボタンから実行できるようにする
別のファイルを開いて、作成したアドインを利用してみましょう。ここでは、オリジナルのボタンを[ホーム]タブに追加しますが、専用のタブを用意してもいいでしょう。
[ホーム]タブに切り替え、追加したボタンを利用して書式を設定してみます。
「.xlam」にしておけば、普段編集するブックとは別に、特定の用途を持つ機能を1つのアドインとして切り分けて管理できます。自作する機能が増えてきた時に、用途ごとに整理したい場合にも使える方法です。







































![1冊ですべて身につくHTML & CSSとWebデザイン入門講座[第2版] 製品画像:4位](https://m.media-amazon.com/images/I/51skMJ-OVcL._SL160_.jpg)





