自動暗号化/復合ファイルへの試行② 失敗
一度書き出すと,また気になりだしたので考え中。
自宅では,自動暗号化/復合の試行はできませんが,関連付けで開くこと,少し時間がかかることを除けば普通に使えるファイルです。
普通のファイルで試行を続けてみることにしました。
今やってみてだめだったのは,
①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が開かれます。
コード実行中に ファイルを開いて,その情報を読み取りたいのにそれができません。
ムズイ。