私の雇用主は、Office 2003 形式のファイルから Office 2007 形式への変換/修復を自動化するサードパーティ製ツール、Conveter Technology から OfficeConverter を購入しました。このツールは、Office 2003 と 2007 のフォーマット間での変換/マクロ/VBA コード要件の変更も高度に自動化します。
私の問題は、この変換中に、ツールが対象の Office 製品 (Excel など) を開いてから、対象のユーザー ファイル (Report.xls) を開いて、VBA / マクロ コードの変更要件を調べていることです。問題は、Excel ファイル コードが .OCX ファイルなどの外部ツールに依存している場合、このアクションを実行している PC にそのツールが存在しない場合、Excel はオブジェクトが持っているというメッセージをポップアップ表示することです。見つからず、誰かが現れて適切なボタンを手動でクリックしてダイアログ ボックスを閉じるまで、変換プロセス全体 (行にある何千ものファイル) を停止します。
私は、VB6 で小さな監視アプリケーションを作成すると (私は年を取り、スキルも同様です)、同じ PC に座ってこれらのダイアログ ボックスを監視し、特定のメッセージに応じて、SendMessage を介して適切なボタンをクリックできると考えました。 API 呼び出し。
問題は、SendMessage で実際にボタンを押すことができなかったことです。Return キーの値 (vbKeyReturn) または Space キー (vbKeySpace) を送信しようとしましたが、アクションがダイアログにつながることはありません。ボックスが閉じます。ダイアログボックスのどのボタンが有効になっているかに関係なく、タブにフォーカスを当てることができますが、それだけです。
私は SendKeys を使用しようとしましたが、信頼性がはるかに低く、私が見つけた現在のドキュメントでは強く推奨されていません。
助言がありますか?:)