C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: Excel 描画オブジェクトをPicturBox1に貼り付け


(過去ログ 108 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■64519 / inTopicNo.1)  Excel 描画オブジェクトをPicturBox1に貼り付け
  
□投稿者/ Mark (1回)-(2012/12/05(Wed) 17:14:07)

分類:[C#] 

2012/12/05(Wed) 17:20:33 編集(投稿者)
2012/12/05(Wed) 17:16:41 編集(投稿者)
2012/12/05(Wed) 17:16:32 編集(投稿者)

<pre><pre>開発環境:Visual Studio 2010 C#
Excel:Microsoft Excel 2010

Excelファイルのセル"A1"に描画オブジェクト(数式)”TextBox 1"が貼り付けてあり、
それを C#側でExcelファイルを読み取り、PicturBox1に貼り付ける処理で困っております。

 ⇒Excel.Shape oShape = (Excel.Shape)oSheet.Shapes.Item("TextBox 1");

 oShape.Copy();
 if (Clipboard.ContainsImage())
{
//クリップボードにあるデータの取得
Image img = Clipboard.GetImage();
if (img != null)
{
//データが取得できたときは表示する
pictureBox1.Image = img;
} 
  }
 ・・・

上記、⇒では、貼り付けたい描画オブジェクトが”TextBox 1”と分かっている場合は
問題ないのですが、セル"A1"にあるオブジェクトを読みとって、pictureBox1に
貼り付ける方法がわかりません。宜しくお願いいたします。
又、何かもっと簡単に行う方法がありましたら、ご教授ください。</pre></pre>
引用返信 編集キー/
■64521 / inTopicNo.2)  Re[1]: Excel 描画オブジェクトをPicturBox1に貼り付け
□投稿者/ 魔界の仮面弁士 (104回)-(2012/12/05(Wed) 17:30:07)
No64519 (Mark さん) に返信
>  ⇒Excel.Shape oShape = (Excel.Shape)oSheet.Shapes.Item("TextBox 1");
ReleaseComObject の妨げになるので、Shapes コレクションも変数に受けましょう。


> 上記、⇒では、貼り付けたい描画オブジェクトが”TextBox 1”と分かっている場合は
> 問題ないのですが、セル"A1"にあるオブジェクトを読みとって、
Shapes コレクションを列挙して、TopLeftCell の Address を調べてみるとか。
引用返信 編集キー/
■64524 / inTopicNo.3)  Re[2]: Excel 描画オブジェクトをPicturBox1に貼り付け
□投稿者/ Mark (2回)-(2012/12/05(Wed) 18:11:28)
No64521 (魔界の仮面弁士 さん) に返信

早速の返信ありがとうございます。

> Shapes コレクションを列挙して、TopLeftCell の Address を調べてみるとか。

 初心者なもので、具体的な例をご教授できませんでしょうか?

引用返信 編集キー/
■64525 / inTopicNo.4)  Re[3]: Excel 描画オブジェクトをPicturBox1に貼り付け
□投稿者/ 変態仮面 (1回)-(2012/12/05(Wed) 18:36:13)
No64524 (Mark さん) に返信
> ■No64521 (魔界の仮面弁士 さん) に返信
>
> 早速の返信ありがとうございます。
>
>>Shapes コレクションを列挙して、TopLeftCell の Address を調べてみるとか。
>
>  初心者なもので、具体的な例をご教授できませんでしょうか?
>

http://www.tt.rim.or.jp/~rudyard/torii009.html
引用返信 編集キー/
■64531 / inTopicNo.5)  Re[3]: Excel 描画オブジェクトをPicturBox1に貼り付け
□投稿者/ 魔界の仮面弁士 (105回)-(2012/12/05(Wed) 20:46:50)
2012/12/05(Wed) 20:47:41 編集(投稿者)

No64524 (Mark さん) に返信
>>Shapes コレクションを列挙して、TopLeftCell の Address を調べてみるとか。
>  初心者なもので、具体的な例をご教授できませんでしょうか?

イメージコードでいうと…。

 oShape = null;
 oShapes = oSheet.Shapes;
 for(var i = oShapes.Count ; i >= 1; i--) {
  wShape = oShapes.Item(i);
  oRange = wShape.TopLeftCell;
  string cellPos = oRange.get_Address(false,false);
  Marshal.ReleaseComObject(oRange);
  if(cellPos == "A1") {
   oShape = wShape;
   break;
  } else {
   Marshal.ReleaseComObject(wShape);
  }
 }

 if(oShape != null) {
  oShape.Copy();
  if (Clipboard.ContainsImage()) {
   // :
   // :
  }
  Marshal.ReleaseComObject(oShape);
 }
 Marshal.ReleaseComObject(oShapes);
引用返信 編集キー/
■64535 / inTopicNo.6)  Re[4]: Excel 描画オブジェクトをPicturBox1に貼り付け
□投稿者/ Mark (3回)-(2012/12/05(Wed) 22:15:34)
No64531 (魔界の仮面弁士 さん) に返信

 コードを参考させていただき
 希望通りの処理を行うことができました。
 ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -