• 締切済み

Excelマクロで、稼働中のマクロを確認する方法

Excelマクロで、稼働中のマクロを確認する方法 ちょっと質問なのですが、 VBAで、 いま動いているマクロが何なのかを確認する方法はあるのでしょうか? よろしくお願いします。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

OnTime の場合は、話がぜんぜん方法が違います。 こういうものは、直接、教わったほうが早いです。以下は、サンプルコードです。 基本的には、OnTime は、ストックする時間(myTime)はひとつだけです。 リセットする時は、OnTime_Reset を使用します。 10秒ごとに、シートに時間を書き込むマクロです。 '// Dim myTime As Date 'モジュールレベル変数 Dim flg As Boolean Sub Ontime_Set()  'トグルになっている  If flg = False Then   flg = True   myTime = Now + TimeSerial(0, 0, 10)  ElseIf flg = True Then   flg = False  Else   Exit Sub  End If  If Range("A1").Value = "" Then   Range("A1").Value = Format(Now, "hh:mm:ss")  End If Application.OnTime EarliestTime:=myTime, _   Procedure:="my_Procedure", Schedule:=flg  If flg = False Then   myTime = 0  End If End Sub Sub my_Procedure() '実行   With Range("A65536").End(xlUp).Offset(1)     .Value = Format(Now, "hh:mm:ss")     flg = False     myTime = 0   End With   Call Ontime_Set End Sub Sub Ontime_Reset() 'タイマーリセット On Error Resume Next Application.OnTime EarliestTime:=myTime, _   Procedure:="my_Procedure", Schedule:=False If Err.Number > 0 Then  MsgBox "OnTime設定はされていません。", 64  Err.Clear  flg = False Else  MsgBox myTime & "の設定は解除されました。", 64  flg = False  myTime = Empty End If End Sub

mickey428
質問者

お礼

ありがとうございます! これからは、あらかじめOnTimeを解除するマクロを入れていきます。 Error処理のコードも参考になりました。

全文を見る
すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

「いま動いているマクロが何なのかを確認する方法はあるのでしょうか?」 自分で組んだマクロが分からないということは基本的にはありえません。どういうことか、もう少し詳しい説明が必要だと思います。 すべてのサブプロシージャやPrivate ステートメントに、ブレークポイントをつけて、確認する法はありますが、あまり賢い方法ではないと思います。メインプロシージャ自体は、自分が命令するから分かります。 なお、無限ループなどが発生しているような場合に、捕まえる方法としては、Ctrl+Pause で、Pause ボタンを何度か押せば、ハングしていなければ、止まります。そこで、VBEがロックされていなければ、エディタ・ペインの窓を見れば、どのマクロが走っているか分かります。しかし、よほど大きなマクロでない限りは、今走っているマクロを途中で調べることは無理だと思います。

mickey428
質問者

お礼

説明が必要、、、確かにそうですね。申し訳ありませんでした。 もともとは稚拙なコードを書いてしまって、 Ontimeで繰り返すマクロが複数起動&終了管理が出来ていない状態が発生してしまったことから、 質問文にあるような便利機能がないかと思ったのでした。 心当たりのマクロにNo1さんのコードを付けて、 あとは終了管理を付けていくことで、当面対応していきたいと思います。 Ctrl+Pause は初耳でした、ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
  • mar00
  • ベストアンサー率36% (158/430)
回答No.2

ステップインを使って確認しては? http://members.jcom.home.ne.jp/rex-uchida/vba110.htm

mickey428
質問者

お礼

これは便利な機能ですね。 ありがとうございます。 活用していきます。

全文を見る
すると、全ての回答が全文表示されます。
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

Sub Sample01()   Application.StatusBar = "呼び出すマクロの名前" 'StatusBarに表示   Call マクロ 'マクロ呼び出し   Application.StatusBar = "" 'StatusBarの表示削除 End Sub とでもして、ステータスバーに表示させたらどうでしょう?

mickey428
質問者

お礼

さっそくの回答ありがとうございます。 この方法は簡単で便利ですね。 疑わしいマクロに入れて、どれが更新されているか調べることができます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 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マクロについて

    Excelマクロ(VBA)で複数のExcelファイルを一括で処理するプログラムを作っているのですが、処理対象のExcelファイルにはマクロが記述されていて、Excelを開く毎に記述のマクロが動いてしまいます。 対象のExcelファイルをオープンする時に、マクロを無効にして開くすることは可能でしょうか? 今現在、Excelファイル開く時に使ってる命令は、 Workbooks.Open Filenameです。

  • VBAエクセル2003でのマクロの実行について

    VBAで2003を使っています。 マクロの実行をショートカットキーで操作したいのですが ツール→マクロ→オプションでショートカットキーの作成が可能ですが 会社(エクセル2003)のでやろうとすると オプションの表示がありません。 (もしかしたら2003ではないのかもしれませんが、確認した範囲では 2003かと思われます。2010とかいいのではないのは確かです。) ショートカットキーを作る方法でどのような方法が 他にありますか?教えてください。 お願いいたします。

  • Excel マクロ無効化

    Micorsoft Excelで、VBAで以下のように指定のExcelファイルのマクロを無効化したいのですが、やりかたを調べてもよくわかりません。できないのでしょうか?アドバイスいただけると幸いです。 具体的にやりたいこと (1)マクロ有効にしたExcelファイルのVBAから他のExcelファイルをマクロ無効で開く (2)マクロ有効にしたExcelファイルのVBAで、開いているExcelファイルのマクロを無効に設定する。(有効だったものを無効にする)

  • マクロ確認

     エクセルなどのファイルでマクロを使っている場合確認のアラートがでてくると思います。  これを特定のファイルだけでないようにする方法ってないのでしょうか?

  • wordのマクロからexcelの起動

    wordのマクロからexcelの起動方法が分かりません。 wordファイルのマクロからexcelファイル"abc.xls"を呼び出すには、vbaで具体的にどう記載すれば良いか教えて下さい。 vba初心者につき、宜しくお願いします。

  • エクセルでマクロを確認できないファイルがあるのはなぜ?

    エクセルでファイルを開くときにマクロのセキュリティ確認が出ます。 そのファイルはマクロを使っているはずなのですが、ツール-マクロ-マクロと表示させてもマクロが1つも表示されません。 マクロはどこに隠されているのでしょうか?

  • エクセルのマクロとVBAについて

    まだあまり多用していないのですが、エクセルでは使っていくアイコンを指定することで(それを利用することで)、マクロを組みそれがエクセルのVBAで記述されるということですが、その逆エクセルのVBAで記述したプログラムを動作に対応したアイコン等の流れで示すことは出来るのでしょうか?もしあったらどのような方法でしょう?

  • エクセルのマクロ、VBAって?

    お世話様です。 エクセルは関数(fx)で計算等は出来るのですが マクロ、VBAとなるとさっぱり判りません? マクロ、VBAとは何ですか? どのような時にマクロ、VBAを使用するのでしょうか? 参考URLがあれば教えてください。 以上、お願いします。

  • Excelマクロ

    50枚くらいの別々のExcelスプレッドシート(別ブック)に入っている様々な文字列を変更したいと思っています。 (例えば、rose→daisy, pink→red, apple→orangeなど) この場合、この一連の「置換」を使った操作をマクロに記録させ、そのマクロを別のブックに入っているスプレッドシートにも適用することはできますか? 聞いたところでは、「マクロの記録」で記録されたマクロは、VBAで編集できるとのことなのですが、 そのVBAは、エクセルのどこから取得することができるのでしょう? そのVBAを別のスプレッドシートに都度コピーペーストすることにより、あるスプレッドシートに記録されたマクロを他のスプレッドシートに記録することはできますか? また、この方法がワークしない場合、別のやり方で目的を達成することはできますでしょうか? どなたかどうぞお知恵をお授け下さい。宜しくお願いいたします。

専門家に質問してみよう