1

会社のアドインのテストケースを自動化しています。

テストケースの 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だけを保存したくないのですが、サーバー上で破棄/保存の変更を呼び出す操作も...

4

1 に答える 1