Excelで何かが選択されると、Excel :: Application :: Selectionプロパティに選択したオブジェクトが含まれます。例えば、私はいくつかのセルを選択した場合、私は簡単に使用してExcel ::範囲にそれらをキャストすることができます:Excel Interop - Excelの種類の取得::アプリケーション::選択
いくつかの画像を選択したときにエクセル= Microsoft.Office.Interop.Excelがさて、私はキャストする必要があり
Excel.Range cells = Excel.Application.Selection as Excel.Range
Excel :: Picture、Excel :: Shapeにいくつかの形がありますが、Oval、Rectangleなどの各シェイプに異なるインタフェースがあるようです。ワークシートで選択されているものを削除する必要があります。そのセル場合は、内容が、画像をクリアされ、形状やOLEObject変数が削除されますが、問題は、私はそれぞれ、すべてのインターフェイスをチェックしたくないということです:ちょうどがある場合は、私が望む
if (null != ThisApplication.Selection as Excel.Shape)
(ThisApplication.Selection as Excel.Shape).Delete();
else if (null != ThisApplication.Selection as Excel.Picture)
(ThisApplication.Selection as Excel.Picture).Delete();
else if (null != ThisApplication.Selection as Excel.OLEObject)
(ThisApplication.Selection as Excel.OLEObject).Delete();
私はすべての図形/画像をキャストし、それらの呼び出しを削除することができます1つの基本的なインターフェイス。 ::それは、システムを表示COMObjectが、実際のタイプ
- アプリケーション内の実タイプ::選択:
を取得することが可能ですシェイプなどを作成し、基になるタイプの「削除」メソッドを呼び出す