• ベストアンサー

ExcelVBAをどのブックでも使う

お世話になっています。 今回、いろんなブックで使っているシートを最新のデータに入れ替えるVBAを作りました。 これをどのExcelのファイルを開いたときにも動くようにしたいのです。 (入れ替えたいシートの検索なども入っている) 今は特定のブックの標準モジュールになっていて、ユーザ設定でコマンドボタンにしてありますが、他のブックでそのボタンを実行しても、当然特定のブックを開いて実行してしまいます。 これはどのように保存?したら他のブックでも使えるのでしょうか? 他のブックに標準モジュールを作って、すべてに入れていくしかないのでしょうか? ご存知の方がいらっしゃったら、ご教授ください。

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

  • ベストアンサー
  • 100Gold
  • ベストアンサー率27% (284/1018)
回答No.1

マクロにPersonal.xlsという名前をつけてエクセルのスタートアップフォルダに入れておけばOKです。括弧良く見せるためにシートが表示されないように設定しておきましょう。 もしくはアドインとして保存してアドインを登録してもできます。アドインとして保存する方法は保存のファイル形式でアドインを選ぶだけです。 personal.xlsやアドインで検索すれば細かくわかると思います。

cat_tomato
質問者

お礼

ありがとうございます。 Personal.xlsとして使うことにしました。 ・・・が、知識のない人には最初に入れてあげないとダメみたいですね。 自動で配布できればいいのに・・・。 ありがとうございました。

その他の回答 (1)

  • ki-aaa
  • ベストアンサー率49% (105/213)
回答No.2

まず、新しいマクロの記録をおこないます。 そのとき、マクロの保存先を[個人用マクロブック]にセットします。 そうすると、#1の回答されているのと同じ物が、自動的にできます。 そして、新しく記録されたマクロを共通して使いたいマクロと入れ替えます。

cat_tomato
質問者

お礼

ありがとうございます。 この方法で他人のExcelに組み込むことにします。 自動で配布できたらいいのにな~と思ったりもしますが・・・。 ありがとうございました。

関連するQ&A

  • ExcelVBA2010 マクロが動作しない

    Excel2010のVBAについて質問します。 ブックAとブックBがあり、ブックAにはVBAのモジュールの記述がります。 そのブックAの中にあるシート1にコマンドボタンを作成し、このボタンにモジュールが登録されています。 ブックAを起動すると、ブックAの中にあるシート1をブックBにコピーします。 ブックBにコピーされたシート1のコマンドボタンに登録されているボタンをクリックすると、ブックAのVBAのモジュールが起動され動作されるはずですが、なぜかブックB内のシート1のコマンドボタンのモジュール先がブックAでは無くブックB内のリンク先に変更されてしまい、VBAが動作しません。 パソコンAでは動作し、パソコンBでは上記のエラーになってしまいます。 Excel本体の設定等を見比べましたが、一向にわかりません。 どうかご教授をお願いいたします。

  • VBAで他のBOOKのマクロの実行

    VBAの初心者です。 ExcelのVBAで他のBOOKに記載された標準モジュールのプロシージャを実行するにはどのようにコーディングすればよいのでしょうか?

  • 【ExcelVBA】commandButtonをクラスモジュールで制御するには

    お世話になります。 エクセルVBAで、ワークシートに置いたコマンドボタンの制御を、クラスモジュールから 行いたいと考えています。 制御といっているのはボタンの使用可不可、イベントの実行などです。 いろいろ調べてみたのですが、フォームからのイベントをクラスモジュールで行っているのは 見つけたのですが、ワークシート上に直接配置したボタンなどの制御は見つけることが出来ませんでした。 使用しているEXCELにバージョンは2003です。 よろしくお願いいたします。

  • VBAで別のExcelブックのボタンのマクロ登録

    Excelブック1とExcelブック2があります。 Excelブック1はVBAで 1)Excelブック2を開いて 2)Excelブック1のワークシート(Sheet1)と  モジュールシート(Module1)を  Excelブック2にコピーします。 3)ワークシート(Sheet1)にはコントロール(ボタン)が貼り付けてあって  このボタンをクリックするとモジュールシート(Module1)の中の  Excute_Button()というプロシージャ(マクロ)を呼び出すため  Excelブック1のVBAで  wb.Worksheets("Sheet1").Shapes.Range(Array("Button 1")).Select  Selection.OnAction = "Excute_Button"  と記述してボタンのマクロの登録をします。   (wbはExcelブック2を指しています) 4)Excelブック2を保存して閉じる。 という処理をしています。 この後、Excelブック1を閉じて、 Excelブック2を開いてワークシート(Sheet1)のボタンをクリックすると Excelブック1が開いてしまいます。 Excelブック2のボタンのマクロの登録のマクロ名を見てみると Excelブック1のファイル名!Excute_Button となっています。 Excelブック1のVBAで、ここを単にExcute_Buttonだけにするには どのようにすればよいでしょうか。

  • エクセルのVBAで新しくブックを開いた上でさらに…

    エクセルのVBAで新しくブックを開いた上でそのブックにVBAを埋め込む事はできますか? 分かりにくいと思うので具体的にかきます。 今、ブック1にコマンドボタンAがあり、このボタンAを押す事により 以下の2つを実現したいです。 (1)あたらしくブック2を開きます。 (2)更にこのブック2のシートにはコマンドボタンBができており (3)このボタンBの機能としてこのボタンBを押すと  ブック2のセルA1に数字1が入ります ブック2が開いた後で自分で、コマンドボタンBのマクロをブック2のモジュール内に書くのは簡単ですが、ブック1のコマンドボタンAを押したときに自動的にブック2のマクロを書き込みたいのです。 今、ボタンAを押すことで(1)と(2)まではできるのですが (3)のやり方がわかりません。 そもそもこういった事はできないのでしょうか? ご存知の人がいたら教えてください。よろしくお願いします。

  • EXCELのVBAについて

    エクセルのVBAでユーザーフォームに作ったテキストボックスに入力した値を、コマンドボタンによる「実行」とともに別に作った標準モジュールの変数として代入するにはどうすれば良いでしょうか? 具体的な流れは、 マクロ実行  ↓ ユーザーフォーム出現  ↓ テキストボックスに数字を代入→「実行」  ↓ 変数を代入された標準モジュールによる処理完了 というものです。 ご教授お待ちしております。

  • ExcelVBAで

    EXCEL VBAの開発をしております。 標準モジュールから、シート内のコンボボックスやテキストボックスに値を書き込みたいときは、 プログラム上、どのように書けばよいのでしょうか? シート内のモジュールなら、ダイレクトにオブジェクト名を書けますが。 すみません、初心者なもので・・・。

  • excel2010でボタンが反応しなくなった?

    EXCEL2010でシート上に作成したボタンがある時期から反応しなくなりました。 原因がわかりません。 VBAエディタで開いて、実行(f5)すると実行できます。 どうしたら元に戻るか、どなたかわかる方、お願いします。  ・元に戻る…「Excelのシート上からボタンをクリックするだけで実行できるようになる」 1.処理自体は単純でシート上に作成したコマンドボタンをクリックすると   標準モジュールに記述したマクロを実行します。   Sheet1のコード (CommandButton1_Click)      Call [標準モジュールSubの名称]ItiranGet   ※1 VBAのコードを開いた状態で、上記のCall文、標準モジュールで      実行(F5)すると、実行できます。 2.マクロのセキュリティは、下記に設定しています。   すべてのマクロを有効にする よろしくお願いいたします。

  • エクセルファイルの自動起動と内容更新

    エクセルファイルを自動で起動させ、標準モジュールで書かれたマクロ(新しいブックを作成し、そのブック内シートに値を代入)を実行させマクロ実行時に作成されたファイルを上書き保存させる方法ってありますか? コマンドボタンを配置して、上記を実行させることはできますが、自動起動はタスクを使用すればいいのかな~くらいしかわかりません。 どこかに詳しいページご存知ありませんか?

  • 「開いているすべてのブック」に保存したマクロの削除

    パソコンド素人です。マクロが含まれたほかのエクセルブックを多数開いたまま、エクセルマクロ初心者講座(http://kabu-macro.com/kouza/macro/macro_jikkou.html)を見ながら、A1のセルのデータを消去するマクロを作って実行したところ、実行時の保存先が「開いてるすべてのブック」になっていたからなのか、他のエクセルのブックでも新しくシートを作っても、Ctrl+Z (ショートカットを作っていました)でA1のデータが削除されるようになってしまいました。(実行前には標準モジュールのModule2にこのVBAが入ってたのを確認したのですが、実行後にはModule2がなくなっていました) このままでも問題はないのですが、わからないのは悔しいので、どなたかこのマクロの削除方法を教えてください!  個人用マクロブックとやらにあるらしいことはわかったのですが、そのファイルが検索しても出てきません。OSはVistaでエクセル2000と2007を使用してます。ちなみにエクセル2000でこのマクロを作ったのに2007でもCtrl+ZでA1のデータが削除されます。 よろしくお願いします。

専門家に質問してみよう