Excel VBA質問箱 IV

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

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


10607 / 13646 ツリー ←次へ | 前へ→

【20848】他のアプリケーションウィンドウの最大化 マツおじ 04/12/22(水) 15:11 質問[未読]
【20849】Re:他のアプリケーションウィンドウの最... IROC 04/12/22(水) 15:33 回答[未読]
【20910】Re:他のアプリケーションウィンドウの最... マツおじ 04/12/24(金) 15:17 質問[未読]
【20912】Re:他のアプリケーションウィンドウの最... IROC 04/12/24(金) 16:16 回答[未読]
【20914】Re:他のアプリケーションウィンドウの最... IROC 04/12/24(金) 16:20 回答[未読]
【20916】Re:他のアプリケーションウィンドウの最... マツおじ 04/12/24(金) 19:14 お礼[未読]

【20848】他のアプリケーションウィンドウの最大化
質問  マツおじ  - 04/12/22(水) 15:11 -

引用なし
パスワード
   こんにちわ。
VBA初心者です。

下記のように、WaveLoggerという別のアプリケーションを起動して、
そいつを最大化表示するにはどうすれば良いですか?


Public Function GetWaveLogger() As Object
  If WaveLogger Is Nothing Then
    ' WAVELOGGER未生成の場合は生成する
    Set WaveLogger = CreateObject("WaveLogger.Application")
  End If
  
  WaveLogger.Initialize
  WaveLogger.Visible = True
  
  Set GetWaveLogger = WaveLogger
End Function

【20849】Re:他のアプリケーションウィンドウの最...
回答  IROC  - 04/12/22(水) 15:33 -

引用なし
パスワード
   API関数を用いて、対象アプリケーションのウィンドウハンドルを取得し、
ウィンドウサイズを変更することが出来ます。

APIの参考になりそうなサイトを掲載しておきます。

http://homepage1.nifty.com/MADIA/vb/VBKANREN.htm

http://www.vbvbvb.com/cgi-bin/namazu.cgi?query=%83E%83B%83%93%83h%83E&whence=0&max=20&result=normal&sort=score&idxname=gtips_nocode

【20910】Re:他のアプリケーションウィンドウの最...
質問  マツおじ  - 04/12/24(金) 15:17 -

引用なし
パスワード
   早速の返答ありがとうございました。

せっかくご紹介いただいたサイトなのですが、
そこで書かれている内容が理解できないのです...

すみませんがプログラミングのド素人にもわかるよう、
もう少し具体的にご教示いただけると有難いです。


▼IROC さん:
>API関数を用いて、対象アプリケーションのウィンドウハンドルを取得し、
>ウィンドウサイズを変更することが出来ます。
>
>APIの参考になりそうなサイトを掲載しておきます。
>
>http://homepage1.nifty.com/MADIA/vb/VBKANREN.htm
>
>http://www.vbvbvb.com/cgi-bin/namazu.cgi?query=%83E%83B%83%93%83h%83E&whence=0&max=20&result=normal&sort=score&idxname=gtips_nocode

【20912】Re:他のアプリケーションウィンドウの最...
回答  IROC  - 04/12/24(金) 16:16 -

引用なし
パスワード
   ウィンドウというのは、ウィンドウハンドルというものを持っています。
ウィンドウを識別する番号なのですが、
この番号を指定することにより、ウィンドウを制御できます。

このウィンドウハンドルの取得する方法はいろいろありますが、
タイトルバーの名前からウィンドウハンドルを取得する方法を用いては如何でしょうか?

Declare Function FindWindow Lib "user32.dll" _
Alias "FindWindowA" _
(ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Dim ret As Long
  
Sub Sample()
 'タイトル名で取得
  ret = FindWindow(vbNullString, "Microsoft Excel - Book1")

  'ウィンドウハンドル
  If ret <> 0 Then
    MsgBox Hex(ret)
  End If
End Sub

【20914】Re:他のアプリケーションウィンドウの最...
回答  IROC  - 04/12/24(金) 16:20 -

引用なし
パスワード
   最大化の分です。

'API 宣言分
Declare Function ShowWindow Lib "user32.dll" _
(ByVal hWnd As Long, _
ByVal nCmdShow As Long) As Long

Public Const SW_SHOWMAXIMIZED = 3


==============

 ShowWindow ret, SW_SHOWMAXIMIZED '最大化 

【20916】Re:他のアプリケーションウィンドウの最...
お礼  マツおじ  - 04/12/24(金) 19:14 -

引用なし
パスワード
   IROCさんの非常にわかりやすい説明とサンプルコードの
おかげで、無事問題解決できました。
ありがとうございました。

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