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

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

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

Re[5]: 異なるEXCELブック間で、イラストをコピーしたい


(過去ログ 136 を表示中)

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

■79972 / inTopicNo.1)  異なるEXCELブック間で、イラストをコピーしたい
  
□投稿者/ S.Kos (4回)-(2016/06/02(Thu) 12:21:02)

分類:[C#] 

こんにちは、みなさま。

ブック"ImageCollection.xlsx" のシート"Image_A"に、いくつかのイラストが張り付けてあります。
これらイラストの名前を ホーム→検索と選択→オブジェクトの選択と表示 から(手作業で)変更し、例えば imageNo1 としました。

異なるブック"data.xlsx" のシート"daSheet"上Range("C3")に、上記imageNo1をコピーしたい、と考えています。
(イラストのサイズは問いません。左上隅が一致すれば十分です。)

これをC#の制御で実現しようとしていますが、なかなか・・・

具体的な手法をご教示いただければ幸いです。

なお、環境は Win10+EXCEL2013+VSEXPRESS2012 です。

引用返信 編集キー/
■79973 / inTopicNo.2)  Re[1]: 異なるEXCELブック間で、イラストをコピーしたい
□投稿者/ shu (875回)-(2016/06/02(Thu) 13:34:06)
No79972 (S.Kos さん) に返信

(1)Excel上でマクロの記録を開始します。
(2)一連の動作を実際に行ってみます。
(3)マクロ記録を終了します。
(4)記録されたマクロを参考にC#上で処理を記述します。
引用返信 編集キー/
■79986 / inTopicNo.3)  Re[2]: 異なるEXCELブック間で、イラストをコピーしたい
□投稿者/ S.Kos (5回)-(2016/06/02(Thu) 20:53:28)
shuさん、ご教示感謝です。

回答者様に予見を持って欲しくなかったので、先のような問としました。
実際には・・

// Excelファイルをオープンする(第一パラメタ以外は省略可)
Excel.Workbook oExcelWBookImage = (Excel.Workbook)(oExcelApp.Workbooks.Open(
fileName, // フルパス付きの"ImageCollection.xlsx"
Type.Missing, // UpdateLinks
Type.Missing, // ReadOnly
・・・
・・・
));
Excel.Shape tmpShape = oExcelWBookImage.Worksheets["Image_A"].Shapes.Item(imageNo1);

ここまでてtmpShapeは採れているようで、同じブック同じシート内だと、
Excel.Range tagRng = oExcelWBookImage.Worksheets["daSheet"].Range["C3"];
tmpShape.Left = (float)(tagRng.left);
tmpShape.Top = (float)(tagRng.Top);
でコピーできました。

次に、異なるブックを開いて
Excel.Workbook oExcelWBook = (Excel.Workbook)(oExcelApp.Workbooks.Open(
fileName, // フルパス付きの"data.xlsx"
Type.Missing, // UpdateLinks
Type.Missing, // ReadOnly
・・・
・・・
));
としたところで迷路に嵌まりました。

oExcelWBookImage上のtmpShapeを、oExcelWBook上に持ってくるには?

クリップボート経由しかありませんか?

引用返信 編集キー/
■80011 / inTopicNo.4)  Re[3]: 異なるEXCELブック間で、イラストをコピーしたい
□投稿者/ shu (878回)-(2016/06/03(Fri) 17:29:18)
No79986 (S.Kos さん) に返信

Excel UIで出来ない事もありますが、
この操作はExcel UIで他の手順がないかぎり無理ではないかなと思います。
引用返信 編集キー/
■80028 / inTopicNo.5)  Re[4]: 異なるEXCELブック間で、イラストをコピーしたい
□投稿者/ S.Kos (6回)-(2016/06/05(Sun) 08:44:14)

shuさん、重ねてのご教示、感謝です。
>この操作はExcel UIで他の手順がないかぎり無理ではないかなと思います。
>
と言うことは・・現状、先のコードに続いて、

EXCEL.WorhSheet tagSheet = oExcelWBook.Worksheets["daSheet"]

tmpShape.Copy(); // クリップボートにコピー
tagSheet.Paste(); // ターゲットシートに貼り付け

Excel.Range tagRng = tagSheet.Range["C3"];
Excel.Shape tagShape = tagWSheet.Shapes.Item(spName);
tagShape.Left = (float)(tagRng.left);
tagShape.Top = (float)(tagRng.Top);

としていますが、これしか他に無い、ということですね?


引用返信 編集キー/
■80042 / inTopicNo.6)  Re[5]: 異なるEXCELブック間で、イラストをコピーしたい
□投稿者/ S.Kos (7回)-(2016/06/06(Mon) 12:40:48)
閉じます
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -