すべてのExcelワークブックでVBAマクロを保存して使用するにはどうすればよいですか?
異なるExcelワークブックで、繰り返し計算の自動化、データ書式設定、数値を単語に変換するようなカスタム関数など、同じVBAマクロを繰り返し使用する必要がある状況は多いです。一般的な課題は、デフォルトではマクロが作成されたワークブック内にのみ保存されるため、新しいドキュメントで簡単にアクセスしたり再利用したりできないことです。しかし、ExcelにはVBAマクロをグローバルに利用可能にするための柔軟な方法がいくつか提供されています。これにより、新しいワークブックを作成するたびにコードを再コピーする必要がなくなります。このチュートリアルでは、さまざまなアプローチに関する包括的な手順を提供し、すべてのワークブックでVBAマクロを簡単にアクセスできるようにして、生産性とワークフローを向上させます。
すべてのワークブックでVBAコードを保存して使用する
個人用マクロブック方式
例えば、特定のカスタムVBAコードを使用して数値を英単語に変換する機能を常に利用可能にしたい場合、どのワークブックでもその機能を利用できるようにすることが可能です。適切な方法を用いれば、VBAモジュールを保存して、Excelで必要なときにいつでも再利用できるようにすることができます。これは特に、毎回複数のファイルにコードを複製せずに、カスタム関数や自動化を毎回利用したい場合に役立ちます。
これを行うには、VBAコードをカスタムExcelアドインとしてパッケージ化できます。このアドインはExcelで有効にでき、カスタム機能をグローバルに利用可能な関数として公開します。
次の手順に従ってください:
1. Excelで Alt + F11 を押して「Microsoft Visual Basic for Applications」ウィンドウを開きます。
2. VBAエディターで、挿入 > モジュールをクリックし、新しく作成されたモジュールウィンドウに以下のマクロを貼り付けます。
VBAコード: 数値を単語に変換
Function NumberstoWords(ByVal MyNumber)
'Update by ExtendofficeDim xStr As StringDim xFNum As IntegerDim xStrPointDim xStrNumberDim xPoint As StringDim xNumber As StringDim xP() As VariantDim xDPDim xCnt As IntegerDim xResult, xT As StringDim xLen As IntegerOn Error Resume NextxP = Array("", "Thousand ", "Million ", "Billion ", "Trillion ", " ", " ", " ", " ")
xNumber = Trim(Str(MyNumber))
xDP = InStr(xNumber, ".")
xPoint = ""
xStrNumber = ""
If xDP >0 ThenxPoint = " point "
xStr = Mid(xNumber, xDP +1)
xStrPoint = Left(xStr, Len(xNumber) - xDP)
For xFNum =1 To Len(xStrPoint)
xStr = Mid(xStrPoint, xFNum,1)
xPoint = xPoint & GetDigits(xStr) & " "
Next xFNumxNumber = Trim(Left(xNumber, xDP -1))
End IfxCnt =0xResult = ""
xT = ""
xLen =0xLen = Int(Len(Str(xNumber)) /3)
If (Len(Str(xNumber)) Mod3) =0 Then xLen = xLen -1Do While xNumber <> ""
If xLen = xCnt ThenxT = GetHundredsDigits(Right(xNumber,3), False)
ElseIf xCnt =0 ThenxT = GetHundredsDigits(Right(xNumber,3), True)
ElsexT = GetHundredsDigits(Right(xNumber,3), False)
End IfEnd IfIf xT <> "" ThenxResult = xT & xP(xCnt) & xResultEnd IfIf Len(xNumber) >3 ThenxNumber = Left(xNumber, Len(xNumber) -3)
ElsexNumber = ""
End IfxCnt = xCnt +1LoopxResult = xResult & xPointNumberstoWords = xResultEnd FunctionFunction GetHundredsDigits(xHDgt, xB As Boolean)
Dim xRStr As StringDim xStrNum As StringDim xStr As StringDim xI As IntegerDim xBB As BooleanxStrNum = xHDgtxRStr = ""
On Error Resume NextxBB = TrueIf Val(xStrNum) =0 Then Exit FunctionxStrNum = Right("000" & xStrNum,3)
xStr = Mid(xStrNum,1,1)
If xStr <> "0" ThenxRStr = GetDigits(Mid(xStrNum,1,1)) & "Hundred "
ElseIf xB ThenxRStr = "and "
xBB = FalseElsexRStr = " "
xBB = FalseEnd IfEnd IfIf Mid(xStrNum,2,2) <> "00" ThenxRStr = xRStr & GetTenDigits(Mid(xStrNum,2,2), xBB)
End IfGetHundredsDigits = xRStrEnd FunctionFunction GetTenDigits(xTDgt, xB As Boolean)
Dim xStr As StringDim xI As IntegerDim xArr_1() As VariantDim xArr_2() As VariantDim xT As BooleanxArr_1 = Array("Ten ", "Eleven ", "Twelve ", "Thirteen ", "Fourteen ", "Fifteen ", "Sixteen ", "Seventeen ", "Eighteen ", "Nineteen ")
xArr_2 = Array("", "", "Twenty ", "Thirty ", "Forty ", "Fifty ", "Sixty ", "Seventy ", "Eighty ", "Ninety ")
xStr = ""
xT = TrueOn Error Resume NextIf Val(Left(xTDgt,1)) =1 ThenxI = Val(Right(xTDgt,1))
If xB Then xStr = "and "
xStr = xStr & xArr_1(xI)
ElsexI = Val(Left(xTDgt,1))
If Val(Left(xTDgt,1)) >1 ThenIf xB Then xStr = "and "
xStr = xStr & xArr_2(Val(Left(xTDgt,1)))
xT = FalseEnd IfIf xStr = "" ThenIf xB ThenxStr = "and "
End IfEnd IfIf Right(xTDgt,1) <> "0" ThenxStr = xStr & GetDigits(Right(xTDgt,1))
End IfEnd IfGetTenDigits = xStrEnd FunctionFunction GetDigits(xDgt)
Dim xStr As StringDim xArr_1() As VariantxArr_1 = Array("Zero ", "One ", "Two ", "Three ", "Four ", "Five ", "Six ", "Seven ", "Eight ", "Nine ")
xStr = ""
On Error Resume NextxStr = xArr_1(Val(xDgt))
GetDigits = xStrEnd Function
3. 次に、ウィンドウの左上にある「保存」アイコンをクリックするか、または Ctrl + S を押して「名前を付けて保存」ダイアログを開きます。
4. 「名前を付けて保存」ウィンドウで、「ファイル名」フィールドに希望のファイル名を入力します。「保存形式」ドロップダウンでは、必ず Excelアドイン (*.xlam).
5. 「保存」ボタンをクリックして、ワークブックをExcelアドインファイルとして保存します。これにより、いつでもどのワークブックでも有効にできる再利用可能なアドインが作成されます。
6. 保存後、戻ってExcelに戻り、アドインに変換したワークブックを閉じます。
7. 新しいまたは既存のワークブックを開き、目的のセル(例:B2)にカスタム数式を入力します:
=NumberstoWords(A2)

8. 開発 タブに移動し、 Excelアドイン ボタンをアドイングループ内でクリックします。
9. 表示されるアドインダイアログで、 参照.
10. 先ほど保存したアドインファイルを見つけ選択し、次に OK.
11. あなたのカスタムアドイン(例:「数値を単語に変換するアドイン」)がアドインリストに表示されるはずです。それがチェックされていることを確認して OK をクリックして有効にします。
12. これで、カスタム関数を対象のセル(例:B2)に入力し直し、「Enter」キーを押します。正しく英単語に変換された数値が返されるはずです。
=NumberstoWords(A2)
13. 変換式を複数の数値に素早く適用するには、セルのオートフィルハンドルを下にドラッグして、他のセルに関数をコピーします。

ヒントと注意:
- マクロをアドインとして保存することで、すべてのワークブックで同じカスタム関数、コード、または自動化を利用でき、時間の節約と一貫性の向上につながります。
- Excelが閉じられたり、アドインが無効になった場合、アドインから再度ロードされるまで関数は一時的に「#NAME?」と表示される場合があります。混乱を避けるために、必要な場合は常にアドインマネージャーでアドインが有効になっていることを確認してください。
- 一部のユーザーはデフォルトで開発タブが表示されない場合があります。これを有効にするには、リボンを右クリックし、「リボンのユーザー設定」を選択して「開発」オプションをチェックします。
- アドインを永続的なフォルダに保存するのが良い習慣です。これにより、ファイルが移動または名前変更された場合に参照が失われるのを防げます。
必要に応じてコードを手動で実行することも可能で、デバッグ中や即席の使用時にこれが役立つ場合があります:
- クイックアクセスツールバーにマクロを割り当てると、任意の表示されているワークブックでワンクリック実行が可能です。これを行うには、クイックアクセスツールバーを右クリックして「クイックアクセスツールバーのユーザー設定」を選択し、マクロを追加します。
- また、Alt + F11を押してVBAエディターを開き、マクロを手動で選択してF5キーを押して必要なときにコードを実行することもできます。
利点: このソリューションにより、アドインが有効である限り、豊富で再利用可能なマクロ機能を作成し共有できます。
欠点: ユーザーはアドインを読み込む必要があり、また、ワークブックを共有する場合にはアドインファイルと関数の詳細も共有する必要があります。さらに、アドインはExcel Onlineでは使用できません。
お気に入りまたは最もよく使用するマクロがどのExcelセッションでも準備されているもう一つの非常に実用的な方法は、個人用マクロブック(PERSONAL.XLSB)を使用することです。これは、Excelが起動するたびに自動的にロードされる特別な隠しExcelファイルであり、内部に保存されたマクロはすべての開いているワークブックで利用できます。
適用シナリオ: 個人の自動化、日常的な書式設定スクリプト、正式なExcelアドインとして共有する必要がないユーティリティ関数に理想的です。PERSONAL.XLSB内のマクロは、どのファイルが開かれているかに関係なく、コンピュータ上で利用可能です。
利点: マクロは、ローカルのExcelプロファイルでグローバルに利用可能で、アドインや余分なファイルのインストールは不要です。
欠点: この方法で保存されたマクロは、PERSONAL.XLSBが存在するコンピュータとアカウントでのみ使用できます。他人と共有するには、モジュールを手動でエクスポートおよびインポートする必要があります。
- この方法を使用するには、まずマクロを記録または作成し、それを個人用マクロブックに保存されていることを確認する必要があります。
次の手順に従ってください:
- Excelを開きます。「表示」タブで「マクロ」をクリックし、「マクロの記録」を選択します。
- ダイアログで、「マクロの保存先」の下にある「個人用マクロブック」を選択します。記録を完了します(必要なければすぐに停止できます)。
- Alt + F11を押してVBAエディターに入ります。ここで、PERSONAL.XLSBのプロジェクトが表示されます。ここに新しいモジュールを挿入するか、目的のマクロコードを貼り付けます。
- 変更を保存します。Excelは自動的にスタートアップフォルダにPERSONAL.XLSBワークブックを作成し、維持します。
- PERSONAL.XLSB内のマクロダイアログ(Alt + F8)経由で実行したり、リボンやツールバーボタンに割り当てたり、VBAから呼び出したりできます。
トラブルシューティングとメンテナンス: PERSONAL.XLSB内のマクロが利用できない場合は、Excelがセーフモードで開いているか、マクロのセキュリティ設定が「すべてのマクロを無効にする」に設定されているか確認してください。また、PERSONAL.XLSBはデフォルトで非表示です。保存せずに閉じたり削除したりした場合、マクロを再記録して再生成する必要があります。
C:\Users\[YourUserName]\AppData\Roaming\Microsoft\Excel\XLSTART\PERSONAL.XLSB
Excelで全アドインをリストするためのVBAコード
Excelでは、より良いデータ処理のためにアドインを追加または挿入することがあります。オプションウィンドウにアクセスしてすべてのアドインを確認できますが、シートにすべてのアドインをリストすることは可能でしょうか?このチュートリアルでは、Excelで全アドインをリストするためのVBAコードを紹介します。
ワークブックを開くまたは閉じる際にVBAマクロを実行するにはどうすればよいですか?
この記事では、ワークブックを開くまたは閉じるたびにVBAコードを実行する方法について説明します。
ExcelでVBAコードを保護/ロックするにはどうすればよいですか?
ワークブックやワークシートをパスワードで保護できるように、Excelのマクロもパスワードを設定して保護できます。
ExcelでVBAマクロ実行後に遅延時間を設定するにはどうすればよいですか?
場合によっては、ExcelでVBAマクロをトリガーするためのタイマー遅延が必要になることがあります。例えば、指定されたマクロをクリックすると、10秒後に効果が発揮されます。この記事では、その方法を示します。
最高のオフィス業務効率化ツール
🤖 | Kutools AI Aide:データ分析を革新します。主な機能:Intelligent Execution|コード生成|カスタム数式の作成|データの分析とグラフの生成|Kutools Functionsの呼び出し…… |
人気の機能:重複の検索・ハイライト・重複をマーキング|空白行を削除|データを失わずに列またはセルを統合|丸める…… | |
スーパーLOOKUP:複数条件でのVLookup|複数値でのVLookup|複数シートの検索|ファジーマッチ…… | |
高度なドロップダウンリスト:ドロップダウンリストを素早く作成|連動ドロップダウンリスト|複数選択ドロップダウンリスト…… | |
列マネージャー:指定した数の列を追加 |列の移動 |非表示列の表示/非表示の切替| 範囲&列の比較…… | |
注目の機能:グリッドフォーカス|デザインビュー|強化された数式バー|ワークブック&ワークシートの管理|オートテキスト ライブラリ|日付ピッカー|データの統合 |セルの暗号化/復号化|リストで電子メールを送信|スーパーフィルター|特殊フィルタ(太字/斜体/取り消し線などをフィルター)…… | |
トップ15ツールセット:12 種類のテキストツール(テキストの追加、特定の文字を削除など)|50種類以上のグラフ(ガントチャートなど)|40種類以上の便利な数式(誕生日に基づいて年齢を計算するなど)|19 種類の挿入ツール(QRコードの挿入、パスから画像の挿入など)|12 種類の変換ツール(単語に変換する、通貨変換など)|7種の統合&分割ツール(高度な行のマージ、セルの分割など)|… その他多数 |
Kutools for ExcelでExcelスキルを強化し、これまでにない効率を体感しましょう。 Kutools for Excelは300以上の高度な機能で生産性向上と保存時間を実現します。最も必要な機能はこちらをクリック...
Office TabでOfficeにタブインターフェースを追加し、作業をもっと簡単に
- Word、Excel、PowerPointでタブによる編集・閲覧を実現。
- 新しいウィンドウを開かず、同じウィンドウの新しいタブで複数のドキュメントを開いたり作成できます。
- 生産性が50%向上し、毎日のマウスクリック数を何百回も削減!
全てのKutoolsアドインを一つのインストーラーで
Kutools for Officeスイートは、Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proをまとめて提供。Officeアプリを横断して働くチームに最適です。





- オールインワンスイート — Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proが含まれます
- 1つのインストーラー・1つのライセンス —— 数分でセットアップ完了(MSI対応)
- 一括管理でより効率的 —— Officeアプリ間で快適な生産性を発揮
- 30日間フル機能お試し —— 登録やクレジットカード不要
- コストパフォーマンス最適 —— 個別購入よりお得