Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


71062 / 76734 ←次へ | 前へ→

【10172】Re:ウインドウネームを取得できますか?
回答  Seraph  - 04/1/9(金) 14:48 -

引用なし
パスワード
   ▼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

'<<ここまで>>
1 hits

【10136】ウインドウネームを取得できますか? EMU 04/1/8(木) 16:57 質問
【10138】Re:ウインドウネームを取得できますか? Seraph 04/1/8(木) 17:27 回答
【10141】Re:ウインドウネームを取得できますか? EMU 04/1/8(木) 18:32 質問
【10143】Re:ウインドウネームを取得できますか? Seraph 04/1/8(木) 20:21 回答
【10153】Re:ウインドウネームを取得できますか? EMU 04/1/9(金) 9:55 質問
【10172】Re:ウインドウネームを取得できますか? Seraph 04/1/9(金) 14:48 回答
【10180】Re:ウインドウネームを取得できますか? EMU 04/1/9(金) 17:17 質問
【10185】Re:ウインドウネームを取得できますか? Kein 04/1/9(金) 19:24 回答
【10193】Re:ウインドウネームを取得できますか? EMU 04/1/10(土) 17:46 質問
【10195】Re:ウインドウネームを取得できますか? kein 04/1/10(土) 21:19 回答
【10222】Re:ウインドウネームを取得できますか? EMU 04/1/13(火) 12:22 質問
【10223】Re:ウインドウネームを取得できますか? kein 04/1/13(火) 12:34 回答
【10224】Re:ウインドウネームを取得できますか? EMU 04/1/13(火) 13:45 お礼
【10186】Re:ウインドウネームを取得できますか? Seraph 04/1/9(金) 20:02 回答
【10194】Re:ウインドウネームを取得できますか? EMU 04/1/10(土) 18:35 お礼

71062 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free