• ベストアンサー

エクセルVBAについてです。

mitarashiの回答

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

代替案です。 マクロが組み込まれているワークブックBのThisworkbookモジュールに下記コードを記述します。 'Aのところで、Activateされたブック名、シート名が取得できますので、Aブックだったらどんな操作をするという記述をすれば、良いと存じますが、いかがでしょうか。 Private WithEvents myExcel As Application 'A Private Sub myExcel_SheetActivate(ByVal Sh As Object) MsgBox "[" & Sh.Parent.Name & "]" & Sh.Name End Sub Private Sub Workbook_Open() Set myExcel = Application End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) Set myExcel = Nothing End Sub

machine_angel
質問者

お礼

エクセル自体にイベントを持たせる。 とても良い方法ですね。 実際に、BookB.xlsmに上記のコードを記述し、 何もマクロをくみこんでないBookA.xlsxを用意して 2つのブックを開いて試してみました。 しかし、myExcel_SheetActivateがうまく拾えていませんでした。 どこか悪いところあるのでしょうか? それともExcel2007が問題なのでしょうか?

関連するQ&A

  • EXCEL VBAで

    VBA初心者です 簡単過ぎる質問で申し訳ありませんが 調べてみても分からなかったので質問さしてもらいます VBEの標準モジュール1で簡単なプログラムを作成しました デバッグツールバーから実行をすると プログラム通り、動作はしましたが・・・ VBE画面を閉じてからの、プログラムを実行する方法が分かりません 右上の×を押しの、プログラム実行です 作ったプログラムを動作しようと思って 開発→マクロを押しても、作ったマクロ名が表示されないです どのようにしたら、標準モジュールで作ったマクロが、表示されるようになりますか?

  • エクセルVBAでVBAの修正は出来るのでしょうか?

    エクセルVBAでVBAの修正は出来るのでしょうか? あるエクセルファイルにマクロを組み込んでいます(ユーザーフォームも使用)。 このエクセルファイルを複数個フォルダ内にコピーしています。 このコピーした全てのファイルのマクロの修正をVBAで出来ないかと考えています。 修正箇所はモジュール内のコード修正、モジュールの追加、既存のユーザーフォームにボタン等の追加等です。 エクセルは2003を使用しています。 どなたか教えてください。

  • Excel VBA 標準モジュール内でイベント

    ワークブックのイベントWorkbook_Openを標準モジュールのAuto_Openで代用できるように ワークシートのイベントWorksheet_Changeを標準モジュールで実行できるようにすることは できなものでしょうか。 その他のイベントに関しても情報があれば教えてください。

  • Excel95のイベントについて

    またまた、Excel95についてなのですが、 ワークブックをアクティブにしたときに発生するイベントは あるのでしょうか? 97以降のものなら Workbook_Activate でできたのですが、 95のやり方がわからなくて…。 それに代わるイベント・方法でも構いませんので、 ご教授願います。

  • VBAでのマクロの削除方法について教えてください。

    ACCESS2000のVBAから、excelのThisWorkbookに書かれたVBAマクロ「Sub Workbook_BeforeSave」を削除したいのですが、うまくいきません。どなたか方法を教えてください。よろしくお願いいたします。

  • EXCEL97のVBAのトラブル

    EXCEL97のVBAで誤ったプログラミングをしたため、 大切なファイルが開けなくなってしまいました。 "Private Sub Workbook_Open()"のところです。 Sheetが開ければ、他はすべて消えても構わないのですが、 なにか開く方法はないでしょうか? 強制終了になってしまいます。詳細には "EXCEL のページ違反です。 モジュール : EXCEL.EXE、アドレス : 0137:3009a7fd・・・"と出ます。

  • エクセル2000VBAでファイルを操作したい

    いつもお世話になっています。 エクセルVBAで別のワークブックを参照したいので workbooks.open Filename:="C:my documents\***.xls" とすると、そのオープンするワークブックのTisWorkbookのWorkbook_Open()で実行している(.show)メニュー(ユーザーフォーム)が開いてしまいます。 このとき、Workbook_Open()を実行させないでワークブックを開く方法って、 なにかありますか? Shiftを押しながらファイルを開くとき、実行されませんよね?それをVBAでできるのですか? よろしくお願いします。

  • Excel 2003のVBAマクロデータをExcel 2007で見たい

    Excel 2003のVBAマクロデータをExcel 2007で見たい。 Excel 2003でVBAマクロを登録したExcelファイルがありますが、今回、Excel 2007をインストールして、該当ファイルを開いたところ、「マクロデータを削除しました。」とメッセージが出て、VBEを起動してもマクロが見えなくなりました。OSはWindowsXP SP3です。Excel 2003で登録したVBAマクロをExcel 2007で削除されないで、次の2点について、可能にするにはどうすればよいか、ご教示願います。 (1)マクロデータを残す方法。 (2)マクロ起動する方法。

  • Excel VBAでブックを閉じる時、複数のブックが開いていると・・・。

    WinXP+Excel2002なのですが、 ExcelのVBAでつくったアプリの中に、 Application.Quit ThisWorkbook.Close False と記述し、終了させる部分があります。 複数のブックが開いているときにこのプログラムを実行すると、 他のブックまで閉じようとするのですが、 これは何ともならないのでしょうか。 複数のブックを開いた状態でVBEを開くと、 どのブックをアクティブにしておいても、他のブックの モジュールが出てきますよね。これに関係あるのでしょうか。 VBAはそのブックだけに記述することができる・・・のでしょうか? 調べてみたのですがよくわかりませんでした。 基本的なことで恐縮ですが、こんな私にわかるよう 教えてくださる方いらしたらお願いいたします。

  • Excel VBA

    Excel VBAを勉強中の者です。 複数のワークブックを開いているため、ワークブックから指定していってセルを選択したいと思い下記のようなコードにしてみたのですができませんでした。 Workbooks(“C:\フォルダ\ワークブック.xls”).Worksheets(“C”).Range(“A1”).Select このようなコードは有り得ないのでしょうか? または、ワークブックを開いて、ワークシートをアクティブにして、セルを選択するというように、ひとつひとつ選択していくのではなく、一文でワークブックからセルまで指定する他の方法はありますでしょうか? 教えてください。よろしくお願いします。