Excel VBA質問箱 IV

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

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


20543 / 76732 ←次へ | 前へ→

【61604】Re:新しいウインドを開くのウインドウを閉じるときイベント
お礼  ON  - 09/5/21(木) 16:18 -

引用なし
パスワード
   皆様 レス頂ながら大変遅くなりました m(_ _)m


n さん こんにちは いつもありがとうございます

>常に2つのWindowを左右並べで整列させて、片方を閉じさせないという意味でしょうか?
です
>かん違いしていなければ、閉じた場合強制で復活させて整列し直す、という対応でも良い?
コードのご提示ありがとうございます

Application.OnTime 
色々教えて頂いていますがなかなか身についていないです
こういう利用のほうほうもあるのですか
勉強になります

動作的には
1ブック時でマクロ記載ブックは、必ず2ウインドウ開かせる
の制御はなんとなく理解できたつもりです

ただ、他ブックが開いて最大化しておいても
ウインドウ切り替えで、最大化が切り替えられ
当該ブックを選択すると2画面表示にはならなくなります

ちょっと状況がわかりにくいと思いますが・・・・

この辺、neptuneさん アドバイスのAPIあたりでウインドウズの制御が
必要な気もしてきました

一般方法で少しチャレンジしてみましたが
最大化とそうでない場合で取得に差があったりしていまいち??でした

? ActiveWindow.Application.Caption
? ActiveWindow.Caption
? activeworkbook.Name
? activeworkbook.Application.Caption

タイトルバーのCaptionを変えてしまっているので、この辺も影響してきそうな感じもしていますが・・


yoshi さん こんにちは ありがとうございます

>簡単で確実なのは、ブックの保護(ウィンドウをチェック)をすることでは。

ブックの保護(ウィンドウをチェック)で
ブックの最小・最大・終了×ボタンが非表示なるなんて知りませんでした
ちょっと驚きです

>必要により保護したり解除したりすればいいのでは…
そんな気がしますが使用したことがないので動作がよくわかりません
ただ、複数ブックを開いた場合は、n さん のときの状況と同じになってしまいました


説明しにくいのですが下記テストしてみました

Aブック:一般ブック1
Bブック:一般ブック2
Cブック:当初コード付ブック

テスト1
Aブックを開くと最大化で開きます
続けてBブックを開くと最大化で開きます

テスト2
Aブックを開くと最大化で開きます
Aブックを、右上 元のサイズに戻す と、少しちいさくなります
続けてBブックを開くと最大化でないウインドウサイズで開きます
この状態でBブックを閉じると、Aブックは最大化されます

・・・・
どういうテストをしたらいいのかよくわからないのですが
他に、ブックを開いたとき、最大化されているときと
元のサイズで開かれるときとあるような気がします

だいたい、元のブックのサイズとはいったい何なのかよくわかりません

ブックのウインドウサイズがなにによって影響を受けるのでしょうか
解説頂ければ助かります よろしくお願いいたします

実際の
行いたい動作は
Cブックは2画面表示
その他のブックが存在しているとき、タスクバーで選択されたときは最大化して表示
その後、Cブックを選択しても2画面表示
したいと思っています・・・・


最悪、1ブックでの限定使用も考えていますが・・・・
出来れば、
利用者の立場で考えて
複数ブック起動時でも、違和感なく使えるものにしたいと考えています
上記が違和感がないか自信はありませんが・・・・


neptune さん こんにちは ありがとうございます

APIでのアプローチ方法ありがとうございます

サンプルが見つかったので背伸びして少しチャレンジしてみました


Excelブックの最大化、最小化、×ボタン非表示
ht tp://blogs.yahoo.co.jp/chika_z/1095067.html

>ちなみにExcelアプリケーションの場合は、
>hwnd = FindWindow("XLMAIN", sAppCaption)
>だけで取れるけどね。

を参考に

Option Explicit


Private Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long


Public Function get_hwnd()

  uu = FindWindow("XLMAIN", ActiveWindow.Application.Caption)

End Function

? get_hwnd
6947744

は、複数ブック開いていても取得出来ました

なぜか、昨日は取得できなかったような・・・・

ちょっと気になっているのが
?activewindow.Application.Caption
での返り値は
ブックのウインドウが最大化されていないとき:Microsoft Excel
ブックのウインドウが最大化されているとき :Microsoft Excel - hoge.xls
でブック名がなくてもアプリケーションのhwndは取得できますが・・・
ブックウインドウのhwndは取得できていませんが・・・

リンク先記載の、XLMAIN/XLDESK/EXCEL7 の理解はまだ出来ていません


また
24.すべてのウインドウを列挙する
ht tp://homepage1.nifty.com/MADIA/vb/API/EnumWindows.htm
では、各ブックのhwndは取得できました
こちらも、理解するにはいたっていませんが・・・


取りあえずの途中報告でした
何かアドバイスありましたらよろしくお願いいたします


返信が遅くなってしまうような状況ですがよろしくお願いいたします
1 hits

【61498】新しいウインドを開くのウインドウを閉じるときイベント ON 09/5/13(水) 17:57 質問
【61504】Re:新しいウインドを開くのウインドウを閉... n 09/5/13(水) 22:40 発言
【61507】Re:新しいウインドを開くのウインドウを閉... yoshi 09/5/14(木) 2:26 お礼
【61515】Re:新しいウインドを開くのウインドウを閉... neptune 09/5/14(木) 10:19 発言
【61604】Re:新しいウインドを開くのウインドウを閉... ON 09/5/21(木) 16:18 お礼
【61615】Re:新しいウインドを開くのウインドウを閉... neptune 09/5/21(木) 22:31 回答
【61619】Re:新しいウインドを開くのウインドウを閉... n 09/5/22(金) 1:37 発言
【61624】Re:新しいウインドを開くのウインドウを閉... yoshi 09/5/22(金) 11:59 回答
【61690】Re:新しいウインドを開くのウインドウを閉... ON 09/5/27(水) 18:44 お礼
【61723】Re:新しいウインドを開くのウインドウを閉... ON 09/5/29(金) 21:15 お礼
【61737】Re:新しいウインドを開くのウインドウを閉... yoshi 09/5/30(土) 16:19 回答
【61804】Re:新しいウインドを開くのウインドウを閉... ON 09/6/5(金) 16:17 質問
【61808】Re:新しいウインドを開くのウインドウを閉... yoshi 09/6/5(金) 18:17 回答
【61809】Re:新しいウインドを開くのウインドウを閉... ON 09/6/5(金) 19:10 質問
【61817】Re:新しいウインドを開くのウインドウを閉... yoshi 09/6/6(土) 16:54 回答
【61930】Re:新しいウインドを開くのウインドウを閉... ON 09/6/12(金) 16:36 お礼
【61931】Re:新しいウインドを開くのウインドウを閉... ON 09/6/12(金) 16:37 発言
【61932】Re:新しいウインドを開くのウインドウを閉... ON 09/6/12(金) 16:39 発言

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