dポイントプレゼントキャンペーン実施中!

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

A 回答 (7件)

「個人用マクロブック」に登録しておきます。



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

改めて起動したエクセルで、個人用マクロブック(Personal)に「汎用マクロ」を登録して利用する。

この回答への補足

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

補足日時:2013/04/28 13:49
    • good
    • 3

お話の状況からすると



>個別のファイルを直接開いた

この「開き方」が何かふつーじゃないやり方をしていると判断できます。
一般に「個別にブックを開く」とは、ふつーにエクセルブックをWクリックして開くとかそういう状況を言います。

あなたが「具体的にどうやってブックを開いている」ときに問題が発生するのか、その詳しい状況を添えて別途ご相談を投稿し直してみて下さい。


#一応ご参考に
現時点でのとても断片的な情報に基づくご相談に対する回答は
1.Personalが開いている状態で(=ふつーにエクセルを起動した状態で)「作業を開始する最初のマクロ」を起動する
2.workbooks.open filename:="C:保存先フォルダ\個別のブック.xls" のようにして個別のブックを開く
3.application.run "Personal.xls!macro1" のようにして個人用マクロブックのマクロを起動する
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/04/29 08:58

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ファイルからでも利用することができるようになっています。
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/04/29 09:02

アドインで保存すると全てのBOOKで利用できます。


参考URL。
http://excel-magic.com/blog-entry-37.html

概要
1.標準モジュールでマクロを記述
2.名前を付けて保存のファイル種類を"アドイン"で保存(保存先は既定値で保存)
3.アドインの有効化
  ・2007の場合は「Excelオプション」-「アドイン」を選択
  ・上記で保存したアドインファイルをアクティブでないアドインから選択し「設定」クリック
  ・アドインダイアログで「有効なアドインとしてチェック」

該当PCでは常にExcelを開くといつでも利用できる状態になります。
※セキュリティ保護していない場合、マクロ内容が見えてしまいます。
※他のExcelブックのマクロとアドインで登録するマクロの
 関数名がダブらいない様に注意が必要です。

この回答への補足

>>2007の場合は「Excelオプション」-「アドイン」を選択

当方2003を使っています。「Excelオプション」-「アドイン」というのがわかりません。2003では
「ツール」-「アドイン」でアドインダイアログが開き、「有効なアドイン」にチェックをつけるようになっています。チェックは付いているのですが、マクロ実行ボタンを押しても、(personal.xlsがアクティブでないと)当該マクロが表示されません。


>>上記で保存したアドインファイルをアクティブでないアドインから選択し「設定」クリック

この文章の意味がわかりません。具体的にどのような操作になるのでしょうか?

補足日時:2013/04/28 13:35
    • good
    • 0

No.1 です。

補足について

・セキュリティについて
=>http://support.microsoft.com/kb/881335/ja

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

この回答への補足

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

補足日時:2013/04/27 20:46
    • good
    • 0

クラスにしてしまっては如何ですか?


http://www.google.co.jp/search?num=100&safe=off& …

何か違う気するけど…
    • good
    • 0

OS(windows)によって異なりますが windows7の場合



・C:\Users\[ユーザー名]\AppData\Roaming\Microsoft\Excel\XLSTART

・マクロブックのファイル名はpersonal.xlsです。

この回答への補足

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

補足日時:2013/04/27 19:46
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!