残業を減らす!Officeテクニック

Excelマクロをどのファイルでも使えるようにする方法 ~XLSMファイル不要!

どのファイルでも使える自分専用の「マクロ」を作成してみよう

 マクロを記録したファイルを保存する場合、ファイルの種類として「マクロ有効ブック(.xlsm)」を指定しなければならないと思い込んでいる人は多いのではないでしょうか。確かに、今開いているファイルにマクロを記録するなら、その通りです。

 そのため、よく使う処理を記録しておきたくても、諦めてしまうこともあるでしょう。特に共有ファイルでは、運用ルールとしてマクロの利用が制限されているケースも少なくありません。

 そんな時は「個人用マクロブック(PERSONAL.XLSB)」を利用してみてください。どのブックからでも利用できるマクロを保存できるファイルです。

個人用マクロブック(PERSONAL.XLSB)は「C:¥Users¥(ユーザー名)¥AppData¥Roaming¥Microsoft¥Excel¥XLSTART」に保存される

 個人用マクロブックにマクロを記録することで、いつものExcelファイル(.xlsx)を開いてもマクロを実行できるようになります。ファイルを「.xlsm」に保存し直す必要もありません。

 マクロを記述することに抵抗がある人でも大丈夫。自動記録したマクロを利用して、Copilotに整えてもらえば、いつもの操作を簡略化できるようになりますよ。

マクロを記録する

 ここでは簡単な例として、セルの文字を太字かつ赤字にするマクロを「相対参照」で記録します。マクロの名前は任意で構いませんが、わかりやすいものに設定しておくといいでしょう。また、ショートカットキーとして[Shift]+[Ctrl]+[B]を設定します。

 ポイントは3つあります。まず、任意のセルで利用できるように必ず「相対参照」で記録すること、[Ctrl]+[C]のような、既存のショートカットキーと重ならないキーを指定すること、マクロの保存先を[個人用マクロブック]とすることです。

 なお、[開発]タブは[Excelのオプション]から[開発]にチェックを付けることで表示できます。

新規のファイルを作成しておく。操作の結果がわかるようにセルA1には「aaa」と入力してある。[開発]タブの[相対参照で記録]をクリックする
[相対参照で記録]がONになっていることを確認して、[マクロの記録]をクリックする
マクロ名(ここでは「SetRedBold」)を入力する。ショートカットキーの入力欄をクリックして、[Shift]キーを押しながら[B]を押すと、[Shift]+[Ctrl]+[B]というショートカットキーを設定できる。マクロの保存先は[個人用マクロブック]を選択する。[OK]をクリックすると、マクロの記録が始まる
[ホーム]タブに切り替えて、[太字]とフォントの色(赤色)を設定する
[開発]タブに切り替えて、[記録終了]をクリックする
マクロの記録が停止すると、ボタンが「マクロの記録」に戻る

個人用マクロブックにマクロを保存する

 上記の手順で「個人用マクロブック」にマクロが記録されました。しかし、個人用マクロブック(PERSONAL.XLSB)はまだ保存されていません。マクロの内容を確認して上書き保存しておきましょう。

[開発]タブの[Visual Basic]をクリックする
[VBAProject(PERSONAL.XLSB)]の[標準モジュール]-[Module1]を選択すると、記録したマクロの内容が表示される。指定したマクロ名(SetRedBold)で処理が記述されている
[上書き保存]をクリックする。この画面は閉じておく
Excelの画面を閉じる
作業用のExcelファイルは保存する必要がないので、[保存しない]をクリックする

 マクロとして記録されるコードは環境によって異なります。今回記録されたコードを簡単に説明すると、「Selection.Font.Bold = True」で太字を設定し、「.Color = -16776961」で赤字を設定します。「.TintAndShade = 0」は色の明るさを設定するコードです。今回の目的では不要なので、削除しても問題ありません。

Sub SetRedBold()
'
' SetRedBold Macro
'
' Keyboard Shortcut: Ctrl+Shift+B
'
Selection.Font.Bold = True
With Selection.Font
.Color = -16776961
.TintAndShade = 0
End With
End Sub

作成済みのマクロをCopilotで書き換える

 他のファイルを開いて、個人用マクロブックに登録したマクロが動作するかどうかを確認してみましょう。[Shift]+[Ctrl]+[B]のショートカットキーを使ってみます。

任意のセルを選択して、設定したショートカットキー([Shift]+[Ctrl]+[B])を押す
太字と赤字の書式を設定できた
他のセルでショートカットキーを押しても同じ書式を設定できる

 ここで、設定した書式を元に戻したい場合はどうすればよいでしょうか。もう一度、ショートカットキーを押しても書式は元に戻せません。Copilotにコードを整えてもらうのが簡単です。

 修正してほしい内容を伝えることも大切ですが、マクロ名を勝手に変更しないように明記しておくことがポイントです。

 ここでは、以下のようなプロンプトを入力しました。作成済みのコードをコピーしたうえで、区切りが明確になるように「---」を挿入しています。コードの部分は実際に作成された内容に差し替えて利用してください。

以下は自動記録したマクロです。

赤字と太字が設定されている場合は、標準の文字色に戻して太字を解除するようにコードを書き換えてください。

マクロ名は変更しないでください。

---

Sub SetRedBold()

'

' SetRedBold Macro

'

' Keyboard Shortcut: Ctrl+Shift+B

'

Selection.Font.Bold = True

With Selection.Font

.Color = -16776961

.TintAndShade = 0

End With

End Sub

---

強調する必要のないセルの書式を解除したい。[開発]タブの[Visual Basic]をクリックする
[VBAProject(PERSONAL.XLSB)]の[標準モジュール]-[Module1]を選択して、作成済みのマクロの内容をコピーしておく
Excelの画面に戻り、Copilotに上記のプロンプトを入力すると、修正後のコードが表示される。コードの部分を選択してコピーする
コピーしたコードを貼り付けて、[上書き保存]をクリックする。この画面は閉じておく

 以下は、今回Copilotが書き換えたコードの一例です。赤色を表す数値(255)を定数として定義し、条件分岐(If文)で赤字と太字が設定されている場合は解除し、それ以外の場合は設定するように改善されています。ショートカットキーを繰り返し押すだけで書式を切り替えられます。

Sub SetRedBold()
'
' SetRedBold Macro
' 赤字&太字 ⇔ 黒字&標準 のトグル
'
' Keyboard Shortcut: Ctrl+Shift+B
'
    Const RED_COLOR As Long = 255

    With Selection.Font
        If .Bold = True And .Color = RED_COLOR Then
            ' 赤字&太字の場合 → 黒字にして太字を解除
            .Bold = False
            .Color = 0  ' 黒色
            .TintAndShade = 0
        Else
            ' それ以外 → 赤字&太字を設定
            .Bold = True
            .Color = RED_COLOR
            .TintAndShade = 0
        End If
    End With
End Sub

 「コードを洗練させたい」「コメントを詳しく」「なるべく簡潔に」といった指示を追加すると、生成されるコードは変わってきます。なお、ExcelのCopilotの画面が狭い場合は、Web版のCopilotを利用してもいいでしょう。

 更新したマクロの内容を確認しておきます。ショートカットキーが設定されていない場合は、[開発]タブにある[マクロ]をクリックして、マクロのオプションから再設定してください。

マクロで設定した書式を解除したいセルを選択して、ショートカットキー([Shift]+[Ctrl]+[B])を押す
書式が解除された

 Copilotへコードの修正や機能追加を依頼することで、プログラミングの知識がなくても、用途に合わせてマクロを改善できます。

 個人用マクロブックへ登録したマクロは、現在開いているブックだけでなく、新しく作成したブックや既存の「.xlsx」ファイルからでも利用できます。繰り返し行う操作を登録しておけば、自分専用の機能として長く活用できるでしょう。