| 
    
     |  | ▼EMU さん こんにちは 
 >名前を取りたいのは、ウィンドウズ上のツールバーに表示されている
 >フォルダー名やアプリケーション名に付随している名前です。
 >(たとえば、「新しいフォルダ」や「Book1」や「AAAA.TXT」といったものです)
 
 なるほど!
 と、言う事は、「Excel VBA質問箱 IV - Microsoft Internet Explorer」も
 取得したいと言う事ですね?
 
 それなら以下のコードを試してみてください。
 
 '<<ここから>>
 '**************************************************************************
 ' API宣言
 '**************************************************************************
 Public Declare Function EnumWindows Lib "user32" _
 (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
 Public Declare Function IsWindowVisible Lib "user32" _
 (ByVal hWnd As Long) As Long
 Public Declare Function GetClassName Lib "user32" _
 Alias "GetClassNameA" (ByVal hWnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
 'Public Declare Function GetWindowPlacement Lib "user32" _
 '  (ByVal hWnd As Long, lpwndpl As WINDOWPLACEMENT) As Long
 Public Declare Function GetWindowText Lib "user32" _
 Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
 Public Declare Function GetWindow Lib "user32" _
 (ByVal hWnd As Long, ByVal wCmd As Long) As Long
 
 '**************************************************************************
 ' 定数宣言
 '**************************************************************************
 'GetWindowで使用
 Public Const GW_OWNER = 4&
 
 '**************************************************************************
 ' ローカル変数宣言
 '**************************************************************************
 Private gintRow%    'セルの行
 Private gintCol%    'セルの列
 
 '**************************************************************************
 ' マクロ
 '**************************************************************************
 Sub ボタン1_Click()
 gintRow% = 0: gintCol% = 1
 Call EnumWindows(AddressOf EnumWindowsCallBack, 0&)
 End Sub
 
 '==========================================================================
 ' Function : EnumWindows()のコールバック関数
 ' Calling  : Boolean = EnumWindowsCallBack( ByVal Long1, ByRef Long2 )
 ' Parameters: Long1 = ウィンドウへのハンドル
 '      : Long2 = パラメータ
 ' Return  : True
 ' Note   :
 '==========================================================================
 Public Function EnumWindowsCallBack( _
 ByVal phWnd As Long, _
 ByRef plngParameter As Long _
 ) As Boolean
 Dim strWindowName  As String * 128   'ウィンドウ名
 Dim strClassName  As String * 128   'クラス名
 Dim lngResult    As Long       'GetWindowText()の戻り値
 
 '戻り値、変数初期化
 EnumWindowsCallBack = False
 strWindowName = ""
 strClassName = ""
 lngResult = 0&
 
 'ウィンドウ名取得
 lngResult = GetWindowText(phWnd, strWindowName, Len(strWindowName))
 
 'クラス名取得
 Call GetClassName(phWnd, strClassName, Len(strClassName))
 
 '見えているウィンドウだけ選ぶ
 If (IsWindowVisible(phWnd)) _
 And (GetWindow(phWnd, GW_OWNER) = 0) _
 And (lngResult <> 0) _
 And (Left(strClassName, 7) <> "Progman") Then
 '行のインクリメント
 gintRow% = gintRow% + 1
 
 'セルにウィンドウ名をセット
 '↓ここのところを好きなように直して使ってください
 Sheets("Sheet1").Cells(gintRow%, gintCol%) = strWindowName
 
 End If
 
 '戻り値に True をセット
 EnumWindowsCallBack = True
 
 End Function
 
 '<<ここまで>>
 
 |  |