VBA(Excel2003の)でステータスバーに表示されている情報(文字)を
APIで取得したいのですが、SendMessageでSB_GETTEXTを使って取得する
ことまではわかりましたが・・・
どうにわからず、最終的に↓のアドレスのソースを使ってみましたが、
空白しか取得できませんでした。
(パートの数はあっていそうなのですが、文字列がとれていません。)
http://homepage2.nifty.com/nonnon/SoftSample/Sam …
取得したい対象は、IEとかワードパッドとか秀丸とか、一般的な
アプリケーション全般のステータスバーの情報ですのでAPIを使いたいと
思っています。
ご教授いただければ幸いです。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
Excel.Application.StatusBarが Falseを返す場合は
SB_GETTEXTや WM_GETTEXTなどでは取得不能だと思われます …
redfox63様
ご回答ありがとうございます。
>Excel.Application.StatusBar
というのは、もしかすると、Excelのステータスバーの場合となるのではないか思います。
(私の理解不足で、勘違いしているようなら申し訳ありません)
ExcelのVBAを使用し、APIで別のアプリケーションのステータスバーの
内容を取得したいのが私の希望ですが、ご回答いただきありがとうございました。
No.1
- 回答日時:
以前どこかで似たような質問があった時の回答を保存していたものです。
私も完全には理解できていませんが、この様なことではないかと思い、
提示致します。
'使用する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 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
'定数:オーナーフォームチェック用
Public Const GW_OWNER = 4
'コールバック
Public Function GetProc(ByVal hWnd As Long, lParam As Long) As Boolean
Dim MyName As String * 128
Dim ret As Long
MyName = ""
ret = GetWindowText(hWnd, MyName, Len(MyName))
If IsWindowVisible(hWnd) Then
If GetWindow(hWnd, GW_OWNER) = 0 Then
If ret <> 0 Then
Debug.Print MyName & vbCrLf
End If
End If
End If
GetProc = True
End Function
Sub TEST()
Call EnumWindows(AddressOf GetProc, 0)
End Sub
ご参考になれば幸いです。
n-jun様
ご回答ありがとうございます。
恐らく、ご回答いただきました内容については、
タイトルの取得になるのではないかと思われますが、
参考になりました。
ありがとうございます^^
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.NETで DataRow()を利用して...
-
ListView 項目の選択/選択解除...
-
VBA:小数点以下の数字を取得で...
-
count(*)で取得した値をJAVAの...
-
VBAでActiveDirectoryのユーザ...
-
リストボックスの複数選択時の...
-
Spreadの選択行の取得について
-
利用者側のMACアドレスを取得し...
-
Struts2 <s:select>タグの値取...
-
コンボボックス表示文字列を取...
-
EXCELのリストボックスを選択し...
-
JavaScriptにおいてコンピュー...
-
UWSCでhtmlソースの文字列を取...
-
Flexgridで選択行の列の値を取...
-
getParameter と getAttribut...
-
エクセルVBAで範囲内での位置取...
-
「Excel VBA」 Webクエリ マク...
-
タイマーオブジェクトを利用し...
-
asp.netでtextboxの値を取得
-
VBでインストール済みアプリケ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NETで DataRow()を利用して...
-
count(*)で取得した値をJAVAの...
-
VBAでActiveDirectoryのユーザ...
-
VBA:小数点以下の数字を取得で...
-
ListView 項目の選択/選択解除...
-
データ数をカウントしたいのですが
-
Spreadの選択行の取得について
-
利用者側のMACアドレスを取得し...
-
JavaScriptにおいてコンピュー...
-
Flexgridで選択行の列の値を取...
-
VBA Shapesの座標からセル位置...
-
like演算子内に変数って使えな...
-
JavaScriptでWindowsログオンID...
-
IFRAME内のURLを取得したです。
-
ListViewで複数選択された項目...
-
Google Apps Script で、Web上...
-
URIでのページの移動について
-
NTPサーバから時刻を取得する
-
「Excel VBA」 Webクエリ マク...
-
VB .netにて現在時刻+1時間後...
おすすめ情報