個人用マクロブック(PERSONAL.XLSB)で作る最強の共通ライブラリ化ガイド
生徒
「先生、毎日違うExcelファイルで同じ作業を繰り返しているのですが、どのファイルを開いても使える自分専用のボタンや機能って作れますか?」
先生
「素晴らしい視点ですね!実はExcelには『個人用マクロブック(PERSONAL.XLSB)』という、自分専用の秘伝のタレを保存しておくための特別な場所があるんですよ。」
生徒
「秘伝のタレ!そこにプログラムを書いておけば、新しいExcelを作ったときもすぐに呼び出せるんですか?」
先生
「その通りです。これを『共通ライブラリ化』と呼びます。今日はその作り方と、賢い管理方法を丁寧に解説しますね!」
1. 個人用マクロブック(PERSONAL.XLSB)とは?
Excel VBAの世界には、特定のファイルに依存しない「個人用マクロブック」という特別な保存先があります。通常、マクロを書いたファイルは「マクロ有効ブック(.xlsm)」として保存し、そのファイルを開いている間しかマクロは使えません。しかし、この個人用マクロブックにプログラムを保存しておくと、Excelアプリ自体が起動している間、常に裏側でそのプログラムが待機してくれるようになります。
これを料理に例えるなら、特定の料理にしか使えない調味料ではなく、どんな料理にもサッとかけられる「万能スパイス」を手元に常備しておくようなものです。一度設定してしまえば、新規作成したばかりの真っ白なExcelシートでも、昨日作った複雑な集計表でも、同じマクロを呼び出して実行できるようになります。この仕組みを利用して、便利な機能を一箇所に集めることを共通ライブラリ化と呼びます。
2. 初めての個人用マクロブックの作り方
個人用マクロブックは、最初はパソコンの中に存在しません。魔法をかけるように、特定の操作をして出現させる必要があります。最も簡単な方法は、Excelの機能である「マクロの記録」を使うことです。
まずは、Excelの下の方にある小さな四角いボタン(マクロの記録ボタン)を押してみてください。すると、保存先を聞かれます。ここで必ず「個人用マクロブック」を選択してOKを押してください。適当なセルをクリックして、すぐに記録終了ボタン(■)を押せば準備完了です。これで、あなたのパソコンに PERSONAL.XLSB という「秘密の箱」が誕生しました。一度作れば、次からはVBAの編集画面(VBE)の中に常に表示されるようになります。
3. 共通ライブラリとして「標準モジュール」を整理する
個人用マクロブックが作成できたら、次はそこを整理整頓しましょう。適当にプログラムを書き溜めると、後でどこに何があるか分からなくなります。本棚にラベルを貼るように、標準モジュールに名前を付けて役割を分けるのがプロジェクト構成のコツです。
例えば、以下のような名前のモジュールを作っておくと便利です。
- mod_Format: セルの色を変えたり、罫線を引いたりする見た目に関する機能
- mod_Calc: 複雑な計算や消費税の計算など、数値に関する共通の計算機
- mod_System: ファイルを保存したり、フォルダを開いたりするパソコン操作の機能
このように役割を分けておけば、数年後に機能を追加したくなったときも、迷わずに作業ができます。
4. 実践!どこでも使える「書式クリア」の共通マクロ
それでは、実際に個人用マクロブックに書いておくと便利な、シンプルなプログラムを紹介します。例えば、表の書式を全部消して、文字を特定のフォントに整えるマクロです。これを個人用マクロブックに書いておけば、どんなに汚い表でもボタン一つで綺麗にできます。
' PERSONAL.XLSBのmod_Formatモジュールに記述
Sub CleanMySheet()
' 現在選んでいるセルの範囲に対して処理をする
With Selection
.ClearFormats ' 書式をすべてクリア
.Font.Name = "Meiryo UI" ' フォントをメイリオに変更
.Font.Size = 11 ' サイズを11に
End With
MsgBox "シートをきれいに整えました!"
End Sub
この Selection という言葉は「今マウスで選んでいる場所」という意味です。特定のセルを指定しないことで、どのブックのどのシートでも使える汎用性が生まれます。
5. 関数を「共通部品」として活用する戦略
共通ライブラリ化の醍醐味は、自分で新しい「計算式」を作れることです。これを Function(ファンクション)と呼びます。一度 PERSONAL.XLSB に登録しておけば、複雑な計算を毎回書く必要がなくなります。
以下のコードは、指定された数値が「予算内(10万円未満)かどうか」を判定して文字で返す機能です。仕事で予算チェックが多い人には非常に便利な部品になります。
' 予算チェックを行う共通関数
Function CheckBudget(amount As Long) As String
If amount < 100000 Then
CheckBudget = "予算内OK"
Else
CheckBudget = "予算オーバー!要確認"
End If
End Function
' 実行結果を確認するためのテスト用
Sub TestMyLibrary()
Dim result As String
' 関数を呼び出して使う
result = CheckBudget(150000)
MsgBox result
End Sub
予算オーバー!要確認
6. クイックアクセスツールバーとの連携でさらに便利に
個人用マクロブックに素晴らしいプログラムを書いても、毎回VBAの画面を開いて実行するのは面倒ですよね。そこで、Excelの画面の一番上にある「クイックアクセスツールバー」に登録しましょう。
設定画面から「マクロ」を選択し、先ほど作った PERSONAL.XLSB!CleanMySheet などを追加します。すると、Excelの画面上にあなた専用のアイコンが登場します。これで、どんなファイルを開いていても、ワンクリックで自作のマクロが発動するようになります。これこそが、VBAによる「真の自分専用Excel」の完成形です。
7. 他のパソコンへ「秘伝のタレ」を引っ越しする方法
パソコンを買い替えたり、職場の他のパソコンでも同じ共通機能を使いたくなったりすることがあります。そんなときは、PERSONAL.XLSB というファイル本体を探してコピーしましょう。
このファイルは通常、パソコンの奥深くにある「Excelのスタートアップフォルダ」に隠されています。初心者の方には少し難しい場所ですが、「AppData」というフォルダの中の「Excel\XLSTART」という場所にあります。このファイルをUSBメモリなどで持ち運べば、他のパソコンでもあなたの共通ライブラリがそのまま再現されます。ただし、とても大切なファイルなので、コピーするときは中身を壊さないように慎重に行ってくださいね。
8. 共通ライブラリを運用する際の注意点
個人用マクロブックによる共通ライブラリ化は非常に強力ですが、いくつか気を付けるべきポイントがあります。一番の注意点は、「他人にファイルを渡しても、そのマクロは動かない」ということです。マクロはあなたのパソコンの「秘密の箱」に入っているだけなので、他の人のパソコンにはその箱がないからです。
もし、他の人にも使ってもらいたい機能を開発した場合は、そのブック自体にコードをコピーしてあげるか、第10章以降で学ぶ「アドイン化」という手法を検討しましょう。あくまで「自分自身の作業を爆速にするための基地」として運用するのが、個人用マクロブックの正しい使い道です。また、定期的にバックアップを取ることも忘れないでください。せっかく育てた秘伝のタレが消えてしまったら、立ち直れなくなりますからね。