インストールレスプログラミング( ´ー`)

VBA , JavaScript , HTAなど 365アプリはインストール必要ですが、仕事に無いケースはほぼないから(・_・;)

自動暗号化/復合ファイルへの試行② 失敗

一度書き出すと,また気になりだしたので考え中。

自宅では,自動暗号化/復合の試行はできませんが,関連付けで開くこと,少し時間がかかることを除けば普通に使えるファイルです。
普通のファイルで試行を続けてみることにしました。

今やってみてだめだったのは,

①Wscript.ShellのRunで開く(関連付けで開けるならほかの手段でも)
②開くのを待つ
③ファイルに対して何かをする。ここではブック名を書き出すだけ
④開いたものを閉じる

Book1.xlsm 標準モジュール

Option Explicit
Declare Sub Sleep Lib "kernel32" (ByVal dwmiliseconds As Long)

Sub test()
    'ファイルをShellで開く
    Dim objShell As Object
    Set objShell = CreateObject("Wscript.shell")
    objShell.Run ThisWorkbook.Path & "\Book2.xlsx"
    objShell.Run ThisWorkbook.Path & "\Book3.xlsx"
    
    '開くのを待つ
    Do
        Sleep 1000
        'Application.Wait (Now + TimeValue("0:00:01"))
        DoEvents
        Debug.Print Workbooks.Count
    Loop Until Workbooks.Count = 3

    'ファイル名をシートに書き出す
    Dim i As Long
    For i = 1 To Workbooks.Count
        ThisWorkbook.Worksheets("Sheet1").Cells(i, 1) = Workbooks(i).Name
    Next

    '閉じる
    For i = Workbooks.Count To 2 Step -1
        Workbooks(i).Close
    Next
End Sub

開くのをいくら上のループで待っても,Book2,Book3は開かれてくれません。
イミディエイトウィンドウにもずっと1が出力されるだけで,増えてはくれませんから ctrl+pauseでマクロの強制終了で止めるしかない。

そして,止めると同時にbook2,book3が開かれます。
コード実行中に ファイルを開いて,その情報を読み取りたいのにそれができません。

ムズイ。