dポイントプレゼントキャンペーン実施中!

vb.netにて。。。
excelのグラフをピクチャーボックスにて
表示するプログラムを組んでおります。

使用するexcelは、excel2007(.xlsx形式)とexcel2002(.xls形式)です。
パソコンによって、入っているexcelが違うので、
どちの形式でも実行できるようにしたいです。

(問題)
2007では、正規のものがちゃんと表示されますが、
2002では、グラフの1/4程度の部分しか表示されません。

     'クリップボードを初期化

Clipboard.Clear()

      'クリップボードにコピー

Dim ChartSheet As Object
Dim ChartSheets As Object = objWorkBook.Sheets
Dim Chartobj As Object
'Dim ChartGraph As Object

ChartSheet = objWorkBook.Sheets((exlsht))
Chartobj = ChartSheet.ChartObjects((exlgra))

Chartobj.CopyPicture(Appearance:=1, Format:=2)

System.Threading.Thread.Sleep(2000)
Application.DoEvents()

'---------- クリップボード経由でPictureに貼り付け ------------------

If Clipboard.ContainsImage() Then
'クリップボードにあるデータの取得
Dim img As Image = Clipboard.GetImage()
If img IsNot Nothing Then
System.Threading.Thread.Sleep(2000)
'データが取得できたときは表示する
Form_PictureBox.PictureBox1.AutoSize = True
Form_PictureBox.PictureBox1.Image = img

System.Threading.Thread.Sleep(2000)

End If
End

exlshtは.xlsx形式か.xls型式かを選択したものが
exlgraは”グラフ1”を指定します。


クリップブックを使用してみてみると、
その段階で1/4程度のものをコピーしています。

Chartobj.CopyPicture

ではだめなのでしょうか?

ちなみに、エクセルの参照をすると、
2002ではえらーになるので、
Object型式で呼び出しています。


非常に困っております。
よろしくご教授願います。

A 回答 (1件)

>2007では、正規のものがちゃんと表示されますが、


>Chartobj.CopyPicture(Appearance:=1, Format:=2)

Excel 2007 の CopyPicture では、ビットマップ形式でクリップボードにコピーはできなかった
はずですが?

実行環境と、グラフの作成環境をごっちゃにして質問していませんか?
(質問内容には、5W1H を含めて質問しないと相手に伝わりません。)

又、下記のような事をしていると回答を得られません。
http://moug.net/faq/viewtopic.php?t=55295&sid=b1 …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!