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

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

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

Re[2]: C#から、ExcelのChartをWordへコピー


(過去ログ 37 を表示中)

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

■19452 / inTopicNo.1)  C#から、ExcelのChartをWordへコピー
  
□投稿者/ カレー (1回)-(2008/05/23(Fri) 10:55:17)

分類:[C#] 

2008/05/23(Fri) 11:01:15 編集(投稿者)
2008/05/23(Fri) 10:59:52 編集(投稿者)

<pre><pre>はじめまして

C#(VS2005)から、ExcelのグラフデータをWordへコピーする方法で悩んでいます。

開発環境
Visual Studio 2005
Windows XP Pro
Office 2007(COMにてMicrosoft Word/Excel 12.0 Object Libraryを参照)


グラフを作成する箇所までは完成しています。
前提
グラフは既に作成されているものとし、
Excel.Chart xlChartにExcel.ChartObject.Chartオブジェクトが入っている事とします。
Word.Range wRangeには、Word.Document.Rangeが入っている事とします。

実際にWord文書内にコピーする手順は以下の通りに行っています。

xlChart.ChartArea.Copy();
wRange.PasteAndFormat(Word.WdRecoveryType.wdPasteDefault);

上記のコーディングで一応貼り付けは出来ていますが、
Excelのグラフデータが、メタファイルに変換されてしまいます。
よって、後からグラフの編集もできず、印刷時に文字もつぶれてしまいます。

そこで、下記の手順を試しました。

手順@
xlChart.ChartArea.Copy();
wRange.PasteAndFormat(Word.WdRecoveryType.wdChartLinked);
//このコマンドは使用できません。が発生

手順A
xlChart.ChartArea.Copy();
object oMissing = Missing.Value;
object oPlacement = Word.WdOLEPlacement.wdInLine;
object oDataType = Word.WdPasteDataType.wdPasteOLEObject;
wRange.PasteSpecial(ref oMissing, ref oMissing, ref oPlacement, ref oMissing, ref oDataType, ref oMissing, ref oMissing);
//指定した種類のデータは使用できません。が発生

しかし、上記はいずれもエラーとなりました。
C#上からWordへExcelのグラフをグラフオブジェクトのままコピーする方法は無いのでしょうか?
</pre></pre>
引用返信 編集キー/
■19459 / inTopicNo.2)  Re[1]: C#から、ExcelのChartをWordへコピー
□投稿者/ やじゅ (403回)-(2008/05/23(Fri) 12:50:23)
No19452 (カレー さん) に返信
>
> Excelのグラフデータが、メタファイルに変換されてしまいます。
> よって、後からグラフの編集もできず、印刷時に文字もつぶれてしまいます。
>
> wRange.PasteAndFormat(Word.WdRecoveryType.wdPasteDefault);


★wdChart: Excel のグラフが埋め込みの OLE オブジェクトとして貼り付けられます。
 wdChartLinked: Excel のグラフが貼り付けられ、元の Excel ワークシートとのリンクが設定されます。

wdChartLinkedではなく、wdChartではいかがでしょうか?
引用返信 編集キー/
■19460 / inTopicNo.3)  Re[2]: C#から、ExcelのChartをWordへコピー
□投稿者/ カレー (2回)-(2008/05/23(Fri) 13:10:59)
やじゅさん

レスありがとうございます
No19459 (やじゅ さん) に返信
> ★wdChart: Excel のグラフが埋め込みの OLE オブジェクトとして貼り付けられます。
>  wdChartLinked: Excel のグラフが貼り付けられ、元の Excel ワークシートとのリンクが設定されます。
>
> wdChartLinkedではなく、wdChartではいかがでしょうか?

wdChartで試してみましたが、『このコマンドは使用できません。』とエラーになってしまいます。

msdnのPasteAndFormat、PasteSpecialのリファレンスを参照して試行錯誤しているのですがうまくいきません。

また、マクロを記録状態にして、WordへExcelのグラフを張り付けたところ、
Selection.PasteAndFormat (wdChartLinked)
がWord上のVBAに記録されていました。
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -