[リストへもどる]
一括表示

投稿時間:2003/05/30(Fri) 16:06
投稿者名:初心者A
Eメール:
URL :
タイトル:
Excelグラフの表示
はじめまして。いつも拝見させていただいてます。
早速質問ですが、Excelで作成したグラフをVBのOLEコンテナへ埋め込んで表示させることは
可能でしょうか?悩んでいる点は、Excel側でグラフが変更された場合、コンテナ内のグラフ
にも反映させたいのですが、なかなかうまくいきません。
抽象的な質問ですみませんが、ご指導のほどよろしくお願いいたします。

環境:VB6.0(SP5)  xp

投稿時間:2003/05/30(Fri) 17:18
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: Excelグラフの表示
どこまでできて、どこがうまくできないのでしょうか?

投稿時間:2003/05/30(Fri) 17:44
投稿者名:初心者A
Eメール:
URL :
タイトル:
Re^2: Excelグラフの表示
> どこまでできて、どこがうまくできないのでしょうか?

説明不足ですみません。
コンテナ内に表示はできます。(対象のExcelファイルはSourceDocプロパティでリンクさせてます)
Excel側で、わざとグラフを変更させ(グラフ壁面色を変えたり)保存した後、
VBで動かしてみると、変更が反映されてません。
要は、コンテナ内へ最新のグラフを表示したいのが目的です。
なにせ初心者ですので、説明足らずでうまく伝わらないかもしれませんが
ヒントでもよろしいのでご指導ください。

投稿時間:2003/05/30(Fri) 19:06
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^3: Excelグラフの表示
SourceDocプロパティ でファイルを選択するときに リンク にチェックを入れていますか?

投稿時間:2003/05/30(Fri) 19:32
投稿者名:初心者A
Eメール:
URL :
タイトル:
Re^4: Excelグラフの表示
> SourceDocプロパティ でファイルを選択するときに リンク にチェックを入れていますか?

レスありがとうございます。
リンクにチェックをいれてます。

投稿時間:2003/05/30(Fri) 20:15
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^5: Excelグラフの表示(追記)
こんな感じでできないでしょうか?

Private Sub Form_Load()
    With OLE1
        .Class = "Excel.sheet"
        .OLETypeAllowed = vbOLEEither
        .SourceDoc = "C:\test1.xls"
        .SourceItem = "R2C1:R16C5"  'グラフを表示させている範囲
        .Action = 1
        .SizeMode = vbOLESizeAutoSize
    End With
End Sub

Excel の方を先に立ち上げて置く必要があるようです。

投稿時間:2003/05/30(Fri) 21:37
投稿者名:初心者A
Eメール:
URL :
タイトル:
Re^6: Excelグラフの表示(追記)
> Excel の方を先に立ち上げて置く必要があるようです。

レスありがとうございます。
早速トライしてみます。
今後ともよろしくお願いいたします。
後日、結果報告します。

投稿時間:2003/05/31(Sat) 13:38
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^6: Excelグラフの表示(追記)
> Excel の方を先に立ち上げて置く必要があるようです。


下記のようにVBから直接データを入力する方法もあります。

OLE1.object.Sheets("Sheet1").[B2].Value = "100"
OLE1.object.Sheets("Graph1").ChartType = -4100  '3D縦棒グラフ

投稿時間:2003/06/01(Sun) 13:59
投稿者名:初心者A
Eメール:
URL :
タイトル:
Re^6: 成功!
> こんな感じでできないでしょうか?
>
> Private Sub Form_Load()
>     With OLE1
>         .Class = "Excel.sheet"
>         .OLETypeAllowed = vbOLEEither
>         .SourceDoc = "C:\test1.xls"
>         .SourceItem = "R2C1:R16C5"  'グラフを表示させている範囲
>         .Action = 1
>         .SizeMode = vbOLESizeAutoSize
>     End With
> End Sub
>


成功しました。どうもありがとうございました。
現在、上記プログラムの意味を自分で調べて勉強してます。
今後ともよろしくお願いします。