エクセルのVBAを使って、今立ち上がっている全てのアプリケーション(IE以外も)のタイトルを読み出したいのですが、いくら調べても方法がわかりません。参考になるページはありませんか?

回答の条件
  • 1人2回まで
  • 登録:2007/02/26 18:12:32
  • 終了:2007/02/26 20:38:48

ベストアンサー

id:Mook No.2

Mook回答回数1312ベストアンサー獲得回数3912007/02/26 19:36:50

ポイント100pt

Microsoft Office を使用した実際のスクリプト作成

が参考になるかと思います。


ほとんど、参考URL のコードそのままですが、1枚目のシートにリストを表示させるサンプルです。

'-------------------------------------------
' タスクマネージャのアプリケーション相当を表示
'-------------------------------------------
Sub listApllication()
'-------------------------------------------
    Set objWord = CreateObject("Word.Application")
    Set colTasks = objWord.Tasks
    
    Columns("A:B").ColumnWidth = Columns("C").ColumnWidth
    Columns("A:B").ClearContents
    i = 1
    For Each objTask In colTasks
        If objTask.Visible Then
            Cells(i, "A").Value = objTask.Name
            i = i + 1
        End If
    Next
    objWord.Quit
    Columns("A:B").AutoFit
End Sub

ご参考までに。

id:someji

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

早速やってみます。

2007/02/26 19:58:57

その他の回答(2件)

id:SALINGER No.1

SALINGER回答回数3454ベストアンサー獲得回数9692007/02/26 18:42:26

ポイント50pt

不可能です。

Win32APIを使って現在立ち上がっている全てのプロセスを取得することは可能かもしれませんが、アプリケーションごとのタイトルというのは、実行ファイルのファイル名がアプリケーションのタイトルとも限りませんし不可能です。

id:someji

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

現在、Winbatehというソフトで可能なので、何らかの方法はあると思うのですが、VBAでは不可能かもしれませんね。

2007/02/26 20:01:26
id:Mook No.2

Mook回答回数1312ベストアンサー獲得回数3912007/02/26 19:36:50ここでベストアンサー

ポイント100pt

Microsoft Office を使用した実際のスクリプト作成

が参考になるかと思います。


ほとんど、参考URL のコードそのままですが、1枚目のシートにリストを表示させるサンプルです。

'-------------------------------------------
' タスクマネージャのアプリケーション相当を表示
'-------------------------------------------
Sub listApllication()
'-------------------------------------------
    Set objWord = CreateObject("Word.Application")
    Set colTasks = objWord.Tasks
    
    Columns("A:B").ColumnWidth = Columns("C").ColumnWidth
    Columns("A:B").ClearContents
    i = 1
    For Each objTask In colTasks
        If objTask.Visible Then
            Cells(i, "A").Value = objTask.Name
            i = i + 1
        End If
    Next
    objWord.Quit
    Columns("A:B").AutoFit
End Sub

ご参考までに。

id:someji

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

早速やってみます。

2007/02/26 19:58:57
id:ardarim No.3

ardarim回答回数892ベストアンサー獲得回数1422007/02/26 19:59:37

ポイント50pt

Microsoft Office を使用した実際のスクリプト作成


ExcelにはTasksオブジェクトはないようですが、上記に説明されている通り、Word.application経由でExcel VBAからも実行可能です。


サンプル(動作確認済み)


Sub test()

    Set objWord = CreateObject("Word.Application")
    Set colTasks = objWord.Tasks
    
    For Each objtask In colTasks
        If objtask.Visible Then
            Debug.Print objtask.Name
        End If
    Next
    
    objWord.Quit

End Sub


id:someji

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

上記Mookさんの物も、ardarimさんの物もエクセルで動作しました。

2007/02/26 20:36:29

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません