VBEコードの実行中に表示されるタスクの名前を取得する方法

このQ&Aのポイント
  • VBEコードの実行中に表示されるタスクの名前を取得する方法について説明します。
  • VBEコードを実行すると、WordのTasksコレクションを調べることができます。
  • タスクが実行中で可視状態の場合、そのタスクの名前を取得することができます。
回答を見る
  • ベストアンサー

これは実行中のVBEコードのイミディエイトウイント

Sub Sample() Dim WD, task, n As Long Set WD = CreateObject("Word.Application") 'Wordを起動します For Each task In WD.Tasks 'Word VBAのTasks'コレクションを調べます If task.Visible = True Then ' タスク(プロセス)が実行中だったら Debug.Print task.Name ' タスクの名前を書き出します End If Next WD.Quit Set WD = Nothing End Sub これを実行すると 結果に イミディエイト も含まれるのですが、 これは実行中のVBEコードのイミディエイトウインドウのことを言っているのでしょうか?

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

  • ベストアンサー
  • Prome_Lin
  • ベストアンサー率42% (201/470)
回答No.1

「Word VBAのTasks'コレクションを調べます」という表現が誤解を生んでいますね。 「Tasks」は、今、このマクロを実行している、Windowsパソコンのすべての「タスク」を意味していて、「ワード」だけではありません。 すなわち、Windowsの「タスクマネージャー」(画面一番下の「タスクバー」のアイコンなどが何もないところで右クリックして現れるメニューの中にある「タスクマネージャー」)を内容を表示しているので、「イミディエイトウィンドウ」もマクロを実行している以上、当然、実行されているわけですから、表示されます。 他のソフトを立ち上げていれば、それも表示されるはずです。

WEWANVLHDAWB
質問者

お礼

ご回答ありがとうございました。

関連するQ&A

  • VBEが閉じてしまいます。

    Sub Sample() Dim mdlName As String mdlName = "test" Debug.Print AllProcName(mdlName) End Sub Function AllProcName(ByVal strModuleName As String) As String Dim mdl As Module Dim lngDecCnt As Long '宣言セクションの行数 Dim strName As String 'プロシージャ名比較用 Dim strProcName As String '全プロシージャ名 Dim lngR As Long 'プロシージャの種類 Dim i As Long DoCmd.OpenModule strModuleName Application.VBE.MainWindow.Visible = False Set mdl = Modules(strModuleName) '宣言セクションの行数格納 lngDecCnt = mdl.CountOfDeclarationLines '最初のプロシージャ名格納 strName = mdl.ProcOfLine(lngDecCnt + 1, lngR) strProcName = strName & vbNewLine '宣言セクションの次行から最終行までループ For i = lngDecCnt + 1 To mdl.CountOfLines '新規プロシージャ名取得 If strName <> mdl.ProcOfLine(i, lngR) Then strName = mdl.ProcOfLine(i, lngR) 'プロシージャ名追加 strProcName = strProcName & strName & vbCrLf End If Next i Set mdl = Nothing AllProcName = strProcName End Function と言うコードをVBE画面でF5で実行すると、VBEが閉じてしまいます。 しかしF8でゆっくりやっていくとVBE画面は閉じません。 なぜ一気にやると閉じてしまうのでしょうか? Application.VBE.MainWindow.Visible = False をコメントアウトすると VBE画面は閉じませんが該当のモジュールが実行後にアクティブになります。 環境はwin8.1、アクセス2010です。

  • VBE画面を閉じるコード

    alt+F11で、VBE画面を開いていますが、 Private Sub Worksheet_SelectionChange(ByVal Target As Range) End Sub で、どこかのセルをクリックしたら、VBE画面を閉じたいのですが、コードを教えてください。 エクセルのアプリケーションのみ表示させたいです。 添付画像は、 エクセル(上) VBE(下) が開いてますが、VBEをVBAコードを実行して閉じたいです。

  • excel  VBA ワード文書テンプレートに転送

    下記のコードを作成したのですがうまくいきません指導願います Sub () Dim wd As Word.Application Dim WDoc As Word.Document res = MsgBox("?", vbYesNo) If res = vbYes Then nissi = "C:\Documents and Settings\○○ \デスクトップ\文書1.doc" Else nissi = "C:\Documents and Settings\○○ \デスクトップ\文書2.doc" End If Set wd = CreateObject("Word.Application.11") wd.Visible = True Set WDoc = wd.Documents. _ Open(nissi) With WDoc.Tables(1) Set crange = Sheets("aq").Cells(1, 1) WDoc.Tables(1).Cell(1, 2).Range.Text = crange If Sheets("aq").Range("d2") = "D" Then 中略 end With wd.Quit Set wd = Nothing Set WDoc = Nothing End Sub

  • エクセルVBEについて

    VBE初心者です。以下のプログラムを実行すると「testが見つかりません」とエラーが出てしまいます。application.ontimeの使い方がよく分かりません。どこが違うんでしょうか?よろしくお願いします。 Sub test() Range("D10").Value = Second(Time) If Range("D10").Value >= 55 Then Exit Sub End If Application.OnTime Now + TimeValue("00:00:01"), "test" End Sub

  • なぜ立ち上げた時はアクティブになら何でしょうか?

    VBAで Sub Sample() Dim wdObj As Word.Application Set wdObj = New Word.Application wdObj.Visible = True Set wdObj = Nothing End Sub でワードを立ち上げる事は出来るのですが アクティブになりません。 AppActivate wdObj を入れる事でアクティブになるのですが なぜ立ち上げた時はアクティブになら何でしょうか? VBEが面からF5を押して実行しているから VBE画面がアクティブになってしまっているのでしょうか?

  • エクセルVBAでワード文書印刷(2)

    先日、こちらで、VBAを記述したエクセルのブックと同一フォルダーにおいておいたABC.DOCをプリントし、ABC.DOCを閉じる方法を教えていただき、Excel2003でためしたら、下記でうまくいきました。(その際、回答者のchie65536さん、手が滑ってポイントをつけず締め切ってしまいました、申し訳ございません。) ところが今、会社のExcel2000でやったところ、「印刷中です。Wordを終了すると印刷待ちのすべてのジョブがキャンセルされます。」と出てしまいます。 ABC.DOCをプリントしおわったら、ABC.DOCを閉じ、ワードを終了するようにしたいのです。 ためしに、wd.Quitの代わりに、wd.ActiveDocument.Close とすれば印刷はされましたが、ワードが終了しません。 wd.ActiveDocument.Close のあとに wd.Quitを入れると、「印刷中です。Wordを終了すると・・・・」が出てしまいます。 どうなおせばよいのでしょうか? Sub Word_Print() Dim wd As Object Set wd = CreateObject("Word.application") wd.Visible = True wd.documents.Open Filename:=ThisWorkbook.Path & "\ABC.doc" wd.ActiveDocument.PrintOut wd.Quit Set wd = Nothing End Sub よろしくお願いいたします。

  • AccessVBAからWordのマクロを実行するには

    [環境]Access2000,Word2000 AccessVBAでWordのオブジェクトをつくりファイルを開くところまでは たどり着いたのですが、開いたWordファイルにあるマクロを実行させる ことが出来ずに困っています。 WordオブジェクトのApplicationとDocumentsオブジェクトの関係も把握 しきれていないため、おかしなソースになっているかも知れません。 よろしくお願いします。 sub DoMacro() Dim oWrd as Word.Application Dim oDoc as Word.Document Set oWrd = New Word.Application With oWrd Set oDoc = oWrd.Documents.Open("c:\test.doc") .Visible = True .Application.Run ("Macro1") oDoc.SaveAs "c:\newTest.doc" .Quit End With End Sub

  • VBE上の任意の行のVBAコードを実行する

    こんにちは。 現在、Word2007およびExcel2007で、VBAの勉強をしています。 VBE上にSubプロシージャの定義を記述し、それのどこかにカーソルがある状態でF8キーを押すと、 Subプロシージャの先頭行から順に、VBAコードが実行されます。 では、カーソルがある行のVBAコードを、いきなり実行する事ってできないのでしょうか? 以上の件について何かご存知の方がいらっしゃれば、是非教えて頂きたいと思います。 では、よろしくお願い致します。

  • vbaでIEを閉じるだけの処理

    オフィス2003を使用しています。 「IEを開いて閉じる」は Sub TEST() Set ObjIE = CreateObject("InternetExplorer.application") ObjIE.Visible = True '見えるようにする '文字列で指定したURLに飛ぶ ObjIE.navigate "http://www.yahoo.co.jp/index.html" '表示終了まで待つ Do While ObjIE.Busy = True DoEvents Loop ObjIE.Quit End Sub と言うことがわかったのですが 開くのは他の作業をしたときに行うので 「閉じる」だけをvbaで行いたいのですがどうすればいいのかわかりません。 Sub TEST2() Set ObjIE = CreateObject("InternetExplorer.application") ObjIE.Visible = True '見えるようにする ObjIE.Quit End Sub だと また新たなIEが起動してしまい「現在起動しているIEを閉じる」と言うことができません。 アドバイスをお願い致します。

  • ExcelVBA コードの実行について

    VBA勉強中の者です。早速ですが質問させて頂きます。 sheet1のA2セルをアクティブにした時、メッセージボックスに「ここはA2です」と表示させたく、 sheet1に以下のコードを記述しました。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address = Range("A2").Address Then MsgBox "ここはA2です" End If End Sub VBEを開いた状態でsheet1のA2を選択したところ上手く動作したのですが、 この状態で▲マークの再生ボタン(sub/ユーザーフォームの実行)を押しても マクロ呼び出し画面が出てしまうだけで実行できません。 何故なのでしょうか? 目的の動作は「ブックを開いた」時からずっと有効にさせていたいのです。 どなたかご助力お願いいたします。

専門家に質問してみよう