• ベストアンサー

エクセルの汎用マクロ

すべてのBOOKで使いたい汎用マクロがあるのですが、どこに保存したらいいのかわかりません。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.5

「個人用マクロブック」に登録しておきます。 手順: ご利用のエクセルのバージョンが書かれていませんが、バージョンに応じた方法で「新しいマクロの記録」を開始 その際にマクロの保存先を「個人用マクロブック」に選択 てきとーに操作して記録を終了 エクセルを再起動し、その際に「個人用マクロブック」の保存を聞かれたらはいと答える 改めて起動したエクセルで、個人用マクロブック(Personal)に「汎用マクロ」を登録して利用する。

snorioo
質問者

補足

personal.xlsには「汎用マクロ」が作成されています。 新規のBOOKを開いた時にはpersonal.xlsがアクティブになってマクロが使えるのですが、個別のファイルを直接開いた時にはpersonal.xlsがアクティブにならずうまくいきません。 VBAから直接開いてそのままマクロを使う方法を探しているのですが、結局VBAからpersonal.xlsも開くことで対処しました。

その他の回答 (6)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.7

お話の状況からすると >個別のファイルを直接開いた この「開き方」が何かふつーじゃないやり方をしていると判断できます。 一般に「個別にブックを開く」とは、ふつーにエクセルブックをWクリックして開くとかそういう状況を言います。 あなたが「具体的にどうやってブックを開いている」ときに問題が発生するのか、その詳しい状況を添えて別途ご相談を投稿し直してみて下さい。 #一応ご参考に 現時点でのとても断片的な情報に基づくご相談に対する回答は 1.Personalが開いている状態で(=ふつーにエクセルを起動した状態で)「作業を開始する最初のマクロ」を起動する 2.workbooks.open filename:="C:保存先フォルダ\個別のブック.xls" のようにして個別のブックを開く 3.application.run "Personal.xls!macro1" のようにして個人用マクロブックのマクロを起動する

snorioo
質問者

お礼

解りにくい説明で失礼しました。 「個別のブックを直接開く」というのは、エクセルを起動しないで、たとえばマイドキュメントフォルダのsample.xlsをダブルクリックするという意味です。その場合にはpersonal.xlsがアクティブにならないようです。 AccessからVBAでエクセルにデータをエキスポートしてそのファイルをエクセルで開いて汎用マクロで編集したい、ということでした。エキスポートしたファイルを開く前にpersonal.xlsをVBAで開くことで目的は達せられました。 ご協力ありがとうございました。

  • x0000x
  • ベストアンサー率52% (67/127)
回答No.6

No4です。 Excel2003なら「ツール」-「アドイン」を選択し、 「アドイン」ダイアログで保存したブック名をチェックONして、「OK」で登録完了。 たとえば 新規BOOKを開く。(ブック名は"BOOK1.xls") 標準モジュールでマクロを記述する Public Function MAdd( _ ByVal a As Variant _ , ByVal b As Variant _ ) As Variant MAdd = Empty If IsEmpty(a) Or IsEmpty(b) Then Exit Function End If MAdd = a + b End Function Excelの名前を付けて保存で ファイルの種類="Microsoft Excel アドイン(*.xla)"を選択 ファイル名="BOOK1.xla" 保存先は既定値でOK(c:\Document and Settings\ログインユーザ名\Application Data\Microsoft\Addins\に保存) 「ツール」「アドイン」を選択 アドインダイアログで"Book1"をチェックOKして「OK」ボタンをクリック Book1.xlsは任意のフォルダーに保存しても、破棄してもOK 新たなBOOKを開く(もしくは、既存BOOKを開く) A1セルに10,B1セルに20、C1セルの計算式"=MADD(A1,B1)"を入力する C1セルは30で計算結果が表示される(マクロが有効になっている) Alt+F11押下、VBEのプロジェクトエクスプローラには"VBAProject(Book1.xla)"が表示されているので標準モジュールを開くとアドインで保存したマクロが表示されます。 お試しを!! ちなみにPERSONAL.XLSは利用した事がないのですが、 以下の説明から同じ様に利用出来そうです。 PERSONAL.XLSファイルが存在している場合、Excelが起動する際に非表示状態でPERSONAL.XLSも一緒に開かれているので、個人用マクロブックに保存したマクロは、どのExcelファイルからでも利用することができるようになっています。

snorioo
質問者

お礼

詳細な説明をありがとうございました。問題はほかの方法で解決しましたが、教えられた方法も試してみたいと思います。

  • x0000x
  • ベストアンサー率52% (67/127)
回答No.4

アドインで保存すると全てのBOOKで利用できます。 参考URL。 http://excel-magic.com/blog-entry-37.html 概要 1.標準モジュールでマクロを記述 2.名前を付けて保存のファイル種類を"アドイン"で保存(保存先は既定値で保存) 3.アドインの有効化   ・2007の場合は「Excelオプション」-「アドイン」を選択   ・上記で保存したアドインファイルをアクティブでないアドインから選択し「設定」クリック   ・アドインダイアログで「有効なアドインとしてチェック」 該当PCでは常にExcelを開くといつでも利用できる状態になります。 ※セキュリティ保護していない場合、マクロ内容が見えてしまいます。 ※他のExcelブックのマクロとアドインで登録するマクロの  関数名がダブらいない様に注意が必要です。

snorioo
質問者

補足

>>2007の場合は「Excelオプション」-「アドイン」を選択 当方2003を使っています。「Excelオプション」-「アドイン」というのがわかりません。2003では 「ツール」-「アドイン」でアドインダイアログが開き、「有効なアドイン」にチェックをつけるようになっています。チェックは付いているのですが、マクロ実行ボタンを押しても、(personal.xlsがアクティブでないと)当該マクロが表示されません。 >>上記で保存したアドインファイルをアクティブでないアドインから選択し「設定」クリック この文章の意味がわかりません。具体的にどのような操作になるのでしょうか?

回答No.3

No.1 です。補足について ・セキュリティについて =>http://support.microsoft.com/kb/881335/ja ・[起動時にすべてのファイルを開くフォルダ] ボックスに指定されているフォルダ の確認([ツール] メニューの [オプション] [全般] タブ) =>http://support.microsoft.com/kb/822107/ja

snorioo
質問者

補足

ありがとうございました。まだうまくいってませんが、なんとかなると思います。

回答No.1

OS(windows)によって異なりますが windows7の場合 ・C:\Users\[ユーザー名]\AppData\Roaming\Microsoft\Excel\XLSTART ・マクロブックのファイル名はpersonal.xlsです。

snorioo
質問者

補足

OSはwindowsXPです。 C:\Documents and Settings\administrator\ApplicationData\microsoft\Excel\XLSTART というフォルダにpersonal.xlsという名前で保存しました。 新規BOOKを開いてマクロ実行ボタンを押したのですが、マクロダイアログに保存したマクロが表示されません。どこが間違っているのかわかるでしょうか?

関連するQ&A

専門家に質問してみよう