TExcelApplicationを使用した
エクセルの操作アプリケーションを作成しています。
Delphiのフォームの子ウィンドウとして
Excelウィンドウを表示し、表示や保存を行っています。
※以下のMr.Xrayさんのソースも参考にしながら、作成しています。
http://mrxray.on.coocan.jp/Delphi/plExcelEx/index.htm
Excelからの読み込みなど、概ね実装できたのですが、
1点、Excelのシート上で右クリックし、Excelのポップアップメニューを表示するタイミングで、
Excelのフォーカス(セルの選択状態)がぬけてしまう問題が発生いたしました。
調査したところ、
・Excel2013以上
・Delphiの子ウィンドウとしてExcelコントロールを表示
の条件で発生するようですが、解決方法がなく悩んでおります。。
そこで、右クリックのイベントをつかまえて
Delphi側でフォーカスをセットすることができないかと考えています。
■質問内容
そこで質問なのですが、Excel上で右クリックした際の
イベントを捕まえることはできるでしょうか?
以下のVBAのサイトを拝見しますと、BeforeRightClickという
イベントプロシージャが用意されており、実現できそうなのですが、
Delphiでもできないものかと。。
http://www.seiji-tsubosaki.net/ExcelTech/ExcelProfessionalEngineerTechnic/Contents_03.h
もしDelphiでもイベントプロシージャを実装する
方法があれば方法を教えていただけますでしょうか?
DelphiのバージョンはXE2です。
よろしくお願いいたします。
>Delphiでもできないものかと。。
エクセル関係のオブジェクトの生成方法や種類等によって異なります.
エクセルの VBA を使用する場合は,提示された
http://www.seiji-tsubosaki.net/ExcelTech/ExcelProfessionalEngineerTechnic/Contents_03.htm
と同じ方法となるでしょう.
「エクセル VBA イベント」等でググってみてください.
>TExcelApplicationを使用した
>エクセルの操作アプリケーションを作成しています。
失礼 !! TExcelApplication を使用しているんですね.
TExcelApplication 等のコンポーネント類には,イベントが実装されています.
ツイート | ![]() |