会社のアドインのテストケースを自動化しています。
テストケースの 1 つで、ワークブックをローカル マシンに保存した後、ワークブックを閉じようとすると、[はい] をクリックする必要があります - 編集したデータをデータベースに保存します。[いいえ] - 編集を破棄するか、[キャンセル] をクリックします。単にメッセージ ボックスを閉じます。
sendKeys を使用してみましたが、うまくいきませんでした。
例: VBA コードで [いいえ] をクリックするために、次のようにタブを送信してキーを入力しようとしました。
Application.Wait (Now() + TimeValue("00:00:10"))
Call SendKeys("{TAB}", True)
Call SendKeys("{ENTER}", True)
さまざまな時間値を試してみましたが、まだ成功しませんでした。誰かがこれを手伝ってくれたらうれしいです。
前もって感謝します!:)
更新:今のところ、私はこれをやっています:
'Some tasks...
ActiveWorkbook.Save
Call Application.Run("workbook.xlsm!Discard")
Application.DisplayAlerts = False
ActiveWorkbook.Close SaveChanges:=False
Application.DisplayAlerts = True
しかし、メッセージ ボックスのウィンドウ オブジェクト参照を取得する方法はありますか? またはとにかくワークフローに固執するには: ワークブックを編集 -> 保存 -> 閉じてみる -> データベースへの変更を破棄/コミットすることを選択しますか?
注:データベースへの変更を破棄/コミットするということは、データが更新されるサーバーを意味します。Excel は、ユーザーのための単なるインターフェイスです。Excelだけを保存したくないのですが、サーバー上で破棄/保存の変更を呼び出す操作も...