電帳法索引簿などで使える?_VBA(64bitのみ)・指定したファイルが開くまで待ってAppActivateしたのち、ウィンドウサイズをAPIでリサイズするコード。結局Sleep関数で待つことが必要だったけど、2秒も3秒も待たなくてよくなったので(0.5秒でOKになったので)、暫定的にこれを使う。(本当はもっとちゃんとしたコードがあるはず。でもなかなか検索にヒットしないのでひとまずこれで。)
  

目次
★ 64bit「専用」の1つめのモジュール
★ 64bit「専用」、ウィンドウサイズのリサイズ用のAPIモジュール
★ 32bit用 Only の2つのモジュール
★ 64bit/32bit「兼用」の2つのモジュール

  

https://liclog.net/getwindowtext-function-vba-api/
を参考に少し書き変えただけのものです。

Web検索すると、『「開くファイル」に対してではなく、「空白の状態で起動するソフト」大して=起動するソフトのフルパスのみに対して、だけのAPIでの待機」でしかなくて、
そればっかりでした。

「拡張子に紐付いたソフトで起動されたファイル」を「開くのを待機するAPI」が
なかなか検索にヒットしません。(自分では見つけられませんでした。)

なので、とりあえず、これで代用です。

結局Sleep関数で待ち時間を入れていますが、ただ、他のWebのサンプルのように
2秒も3秒も待たなくていいのでひとまず使えそうです。

ただし、最低限0.5~0.8秒くらいは待たないといけないかもしれません。
HDDの遅いパソコンだと1秒以上、待たないといけないかも?です。
(※そもそも起動が遅いソフトの、その起動秒数は含まれません。)

なお、今回のサンプルでは、以降の2つのモジュールが必要です。
最初のモジュールだけだと動きません。
(ウィンドウリサイズができないので。2つめのモジュールがウィンドウリサイズ用です。)

※もし動きが安定しなかったらりファイルが壊れやすくなったら、
 xlsmじゃなくて、xlsでやると安定するっぽいです。
  

●指定したファイルを、拡張子に関連づいたソフトで起動して、そのウィンドウサイズをリサイズするモジュール(64bit用のAPI含む。32bitでも行けるかも?)

「FileBoot01」プロシージャにて、で、呼び出します。
つまり、「Call FileBoot01(”ファイルフルパス”)」と書いて呼び出します。
すると、そのファイルのウィンドウが「app_window_risize01」関数により、
指定したサイズにリサイズされます。

開くのが遅いソフトでも、おおむね大丈夫っぽいです。

app_window_risize01関数は、2つめのモジュールに書かれているので
2つめのモジュールもVBEにコピペします。標準モジュールでOKです。

◆◆◆◆注意!!!!◆◆◆◆
32bit用(64bit兼用の中の32bit用も含む)のほうで、ウィンドウタイトルの取得のところで、
・実際のウィンドウタイトルのファイル名部分に『 [ ] 』があったりなかったり
・変数内も『 [ ] 』があったりなかったり、
といった現象が起こり、エラーになることがありました。
特にOSがWindows2000などの古いものの場合。
その場合は、それを回避するコードが必要か、あきらめるか、になると思います。
OSがWin10などの、32bitExcelなら多分大丈夫かと思うのですが・・・。

※原因は、ファイルのオープン(起動)を『 CreateObject("Shell.Application") 』でやってるから?かもしれません。未確認です。
『 CreateObject("Shell.Application") 』を使ったのは、「拡張子に紐付いたアプリケーションでちゃんと開く」ということをしたかったためです。
他の方法だと、マシンによっては、なぜか、「アクロバットに紐付いているいのにブラウザでPDFが開いてしまう」というマシンがあったりと「開くソフトがバラバラ」だったので。

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

★ 64bit「専用」の1つめのモジュール

  
  
  

★ 64bit「専用」、ウィンドウサイズのリサイズ用のAPIモジュール

app_window_risize01関数はここから呼び出します。
32bitには対応していませんので、対応させたいならその分の追記が必要です。

  

  

#####################################################################################

  

  

★ 32bit用 Only の2つのモジュール

  

  

  

#####################################################################################

  

  

★ 64bit/32bit「兼用」の2つのモジュール