私はCSVファイルに対してグリッドデータ検証を実行し、2つのワークシートを含むExcelファイルに結果を保存するスクリプトをHP UFT 12で作成しています。
これは、セルの書式設定が可能で、データの比較などが簡単であるため、ユーザーにとってははるかに明確であるため、Excel用にExcelを使用しています。ブックを保存し、TITUS(またはその他のドキュメント分類アドイン)ポップアップを処理する方法は?
私のコードは自分のマシンで動作しますが、クライアントにはTITUSドキュメント分類アドインがインストールされているので、スクリプトを実行するたびにTITUSポップアップメッセージが表示されるため、保存時にドキュメントを分類する。おそらくobjExcel.DisplayAlerts = False
のためにメッセージはユーザーに表示されませんが、スクリプトは進んでいません。
以下は、問題に関連する私のコードの部分です(私は機密性の理由からほとんどのコードを省いています)。
Dim objExcel : Set objExcel = CreateObject("Excel.Application")
Dim objWorkbook : Set objWorkbook = objExcel.Workbooks.Add
objExcel.Visible = False
Dim wsGrid : Set wsGrid = objWorkbook.Worksheets(1)
wsGrid.Name = "Grid Data"
Dim wsExported : Set wsExported = objWorkbook.Worksheets.Add
wsExported.Name = "Exported Data"
' Internal code to perform validation and fill worksheets ...
objExcel.DisplayAlerts = False
objWorkbook.SaveAs "C:\my_folder_path\my_file_name.xls" ' This is where it hangs in machines where the add-in is installed
objWorkbook.Close
objWorkbook.Quit
Set objWorkbook = Nothing
Set objExcel = Nothing
私はオンラインで検索しましたが、これまでのところこれまで何も見つかりませんでした。私はthisとthisを見つけましたが、Outlook用のTITUSに関連しており、いずれも問題は適切に解決されていません。
誰でもこれを解決する方法を知っていますか、またはこの問題を解決するための研究資料を指し示すことができますか?
ありがとうございます。
objExcel.DisplayAlerts = False
objExcel.EnableEvents = False ' this is the problem solver for the matter!
objWorkbook.SaveAs "C:\my_folder_path\my_file_name.xls"
objExcel.EnableEvents = True ' Not sure if this statement is necessary, though
objWorkbook.Close
objWorkbook.Quit
Set objWorkbook = Nothing
Set objExcel = Nothing
これがUFTで実行されている場合、関連するポップアップをオブジェクトリポジトリに追加してそのように処理できませんか? – Dave
@Dave、それは私が試していないことの一つです。私はマシンにアドインをインストールしていません。また、オブジェクトは実行時に表示されません。コンボボックスやボタンオブジェクトは表示されなくても処理できますか?表示されないボタンで 'objButton.Click'のようなことをすることができますか? –
アドインとしてExcelを実行している場合、Excel自体からダイアログにアクセスできるようにする必要があります。プログラムでポップアップを処理するために実装できるVBAメソッドがありますか?たぶんあなたはそれを処理するための最良の方法を見つけるためにあなたのdevマシンにインストールされているアドインを得ることができますか?他のすべてが失敗した場合は、常に 'SendKeys'呼び出しを使用してExcelアプリケーションに' Enter'をエコーして、うまくいけばポップアップをクリアできますか? – Dave