個人用マクロブックとは
VBAで作成したマクロはブックに保存されます。そのため、そのマクロを動かしたい場合はそのブックを開いておく必要があります。これはどのようなマクロであっても同じです。
そして、どのブックからでも共通に使いたいマクロを登録するブックが「個人用マクロブック」になります。
個人用マクロブックの保存先
個人用マクロブックとは「C:\Users\[ユーザー名]\AppData\Roaming\Microsoft\Excel\XLSTART」フォルダに保存される「PERSONAL.XLSB」というファイルのことを指します。Excelをインストールした時点では存在しておらず、あとから作成する必要があります。(作成手順は後述しています。)
Excelは起動時に上記の「C:\Users\[ユーザー名]\AppData\Roaming\Microsoft\Excel\XLSTART」フォルダにあるブックを全て開きます。通常、このフォルダには個人用マクロブックであるPERSONAL.XLSBしか格納されませんので、結果的にExcel起動時に個人用マクロブックが開かれ、それ以降はどのブックからも個人用マクロブックに登録されているマクロが使える仕組みになっています。
なお、意図的にXLSTARTフォルダに別のブックを入れればExcel起動時にPERSONAL.XLSBと追加したブックの両方が起動します。
個人用マクロブック(PERSONAL.XLSB)の作成手順
個人用マクロブックこのファイルがないと話が進みませんので、まずは作りましょう。
マクロウイルス、なんて言葉がありますが、作成するだけではExcelやパソコンが壊れたりするようなことはないので安心して作成してください。
個人用マクロブック(PERSONAL.XLSB)があるか確認
結構あるのが、個人用マクロブックが既にあった、という状況です。作成済みであればもう作る必要はないので、あるかないかを確認しましょう。
- エクスプローラを開きます。
Windowsキー + Eキーを押してもエクスプローラを開けます。 - XLSTARTフォルダを表示します。
表示方法はエクスプローラのアドレスバーに「%APPDATA%\Microsoft\Excel\XLSTART」を入力してエンターキーを押します。やりたいことは「C:\Users\[ユーザー名]\AppData\Roaming\Microsoft\Excel\XLSTART」の表示です。%APPDATA%はログインユーザのAppData\Roamingフォルダを示す環境変数です。
- PERSONAL.XLSBがあるか確認します。あれば作成不要です。「個人用マクロブックにマクロを追加する」へ進んでください。
個人用マクロブック(PERSONAL.XLSB)の作成
個人用マクロブック(PERSONAL.XLSB)の作成手順を説明します。
- Excelを終了します。現時点でExcelブックを開いていたら全て閉じます。
- Excelを開きます。スタートメニューから「Excel」を開きます。新規で空白のブックでも既存のブックでもなんでもいいので開きます。
- マクロを操作するための開発タブを追加します。「ファイル」メニュー→「オプション」→「リボンのユーザー設定」→「開発」タブにチェックを付けます。これで開発タブが表示され、マクロの操作を行えるようになります。まだこの時点では個人用マクロブックは作成されていません。
- マクロの記録を行います。先ほど追加した「開発」タブ→「コード」→「マクロの記録」で、マクロの保存先から「個人用マクロブック」を選択し、他(マクロ名、ショートカットキー、説明)は変更せずそのままでOKボタンを押します。
- 先ほど押した「マクロの記録」ボタンのラベルが「記録終了」になっているため、それを押します。
- Excelを終了します。その際に個人用マクロブックの保存確認ダイアログが表示されるので保存します。
これで個人用マクロブックのPERSONAL.XLSBが作成されました。
個人用マクロブックにマクロを追加する
実際に個人用マクロブックにマクロを追加して、他のブックから使えるか確認します。
- 既存ブックをダブルクリックするか、スタートメニューからExcelを起動します。
- 起動したら「開発」タブの「Visual Basic」をクリックします。VBAの画面が表示されます。Excelブックを表示中にAtlキー + F11キーでも開きます。
- PERSONAL.XLSBに標準モジュールを追加します。
- 追加した標準モジュールが表示されますので、以下のコードをコピペします。メッセージボックスに今日の日付を出すコードです。
123Sub MsgBoxTest()MsgBox DateEnd Sub
このコードはPERSONAL.XLSBの標準モジュールに書かれるため、個人用マクロブックのマクロとして扱われます。 - Excelに戻り、新規の空白ブックを開きます。ExcelでCtrl + Nキーでも同様の動きになります。
- 開発タブ→マクロ→マクロの保存先からPERSONAL.XLSBを選択→作成したMsgBoxTest(PERSONAL.XLSB!MsgBoxTest)を選択して実行ボタンを押します。
- メッセージボックスに今日の日付が表示されます。
- 終わりです。
ここまでできれば、あとは個人用マクロブックにコードを追加して、他のブックから呼び出して利用できるようになります。