名前 題名 ▼ Mr.XRAYさん > > > > ExcelObj := CreateOleObject('Excel.Application'); > > ExcelObj.DisplayAlerts := False; > > > > これでダイアログは表示されなくなりますが, > > ブックのファイルは読み込まれます. > > 前に書いた > http://mrxray.on.coocan.jp/Delphi/zip/Excel_DialogHook_Test.zip > > は,ダイアログを表示しないようにして, > かつ,ブックのファイルを読み込まない方法の 1 つです. > > グローバルフックを使用しています. > このグローバルフックは,DLL 内にないと機能しません. > そこで,DLL を作成しています. > コードは以下のサンプルのものを使用しています. > > [03_ユーザ定義メッセージ WM_APP を使用する ] > http://mrxray.on.coocan.jp/Delphi/plSamples/280_HookCBTActivate.htm#03 > > ただし,TListView への表示は必要ないので,そのコードは削除しています. > また,メッセージの値も,自由に変更可能なように,以下のコードで定義しています. > > const > CBT_DLL_MESSAGE = WM_APP+222; > > > ダイアログは以下のように,検出しています. > エクセルのバージョンや拡張子名は使用していません. > > (1) アプリが起動したら,クラス名が #32770 のウィンドウを探す > (2) 見つかったら,タイトル(キャプション) が Microsoft Excel か確認する > (3) そのウィンドウの中にクラス名が Static というウィンドウがあるかを探す > (4) 見つかったら,そのウィンドウのテキストを取得する > > そのテキストの中に「互換パック」と「ダウンロード」という文字列が存在したら, > 問題のダイアログと決定します. > そのダイアログのウィンドウに文字,N 押下のコードを実行します. > すると,[いいえ] をクリックしたのと同じになります. > > このままだと,ブックが読み込まれてしまいます. > そこで,例外処理で捉えます. > > というわけです. > > 自分が未熟だと思ったら,いろいろなことをやってみることです. > ≪コンポーネントがいいのか,OCX がいいのか≫ > と悩む前に実際にやってみることです.ハイ. GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link