2011-10-15 14 views
1

画像をExcelファイルに挿入するには、Shapes.AddPictureという関数を使用しています。Matlabを使用してExcelに画像を挿入する

leftPlacement=450; 
topPlacement=20; 
imgWidth=350; 
imgHeight=300; 

Shapes.AddPicture([pwd '\' img] ,0,1,leftPlacement,topPlacement,imgWidth,imgHeight); 

これは正常に動作します:

は、私はこのようなルーチン何かを呼び出しています。ただし、イメージはファイル内のデータをマスクします。位置を変更するには、leftPlacement, topPlacement, imgWidth imgHeightを手動で変更する必要があります。

空のセルに画像を透明に配置するより良い方法があれば、私は疑問に思っています。

+0

空の範囲はどこですか?はいの場合は、TopLeftCellプロパティを設定してイメージの位置を変更できます。 –

+0

ええ、私は範囲を見つけることができます、Matlabを介して特定の細胞に画像を置くことは可能ですか?私がC9に画像を入れて画像のサイズを言いたいのであれば、LIke。 – Kiran

+0

私はMatlabに慣れていないか、それがExcelとどのように相互作用しているのか分かりません。あなたが投稿したコードは、組み込みのExcelプロパティを使用しているように見えました。そのため、私はtopleftcellアプローチを提案しました。 Matlabを使用してExcelファイルからプロパティを読み取ることはできますか?範囲には、画像の配置に使用できるTopプロパティとLeftプロパティが必要です。 –

答えて

2

図形は、Excelワークシートの個々のセルには添付されません。図形はそれらの上に浮かび、独自の座標を持ちます。特定のセルの上に浮動小数点数を浮動させたい場合は、そのセルの座標を取得してそれらを使用できます。

だから、あなたは、セルC9の上に浮いXLはExcelアプリケーションへのあなたの参照を含む変数です

left = xl.ActiveSheet.Range('C9').Left; 
top = xl.ActiveSheet.Range('C9').Top; 
xl.ActiveSheet.Shapes.AddPicture('myPicPath',0,1,left,top,myPicHeight,myPicWidth) 

試してみたい場合。

その後、セルのサイズを変更したり、他の方法でセルを移動した場合、シェイプ/イメージの位置は変更されません。同じ方法で再配置する必要があります。

+0

ありがとう、私はExcelマクロを使用する専門家ではありません。しかし、これはまさに私が探していたものです。 – Kiran