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

投稿時間:2003/04/21(Mon) 13:03
投稿者名:miya
Eメール:
URL :
タイトル:
エクセルのグラフをVBで表示
エクセルのグラフをGIF形式でエクスポートし、
そのGIFファイルをVBのピクチャーボックスに出力します。
その際、エクスポート時にエクセルでプログレスバーを出力して
しまうのですが、それを表示しない方法を教えてください。

Dim xlApp  As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
  
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open(パス&ファイル名)
Set xlSheet = xlBook.Worksheets(シート名)
filePath = App.path & "test1.gif"
excelSeet.ChartObjects(グラフ名).Chart.Export filePath, "GIF", True
Picture1.Picture = LoadPicture(filePath)

投稿時間:2003/04/22(Tue) 00:04
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: エクセルのグラフをVBで表示
> その際、エクスポート時にエクセルでプログレスバーを出力して
> しまうのですが、それを表示しない方法を教えてください。

表示しない方法は解りませんが、見えないようにはできます。

SetWindowPos API等で Form を前面に表示すればプログレスバーが隠れて
しまって見えません。
フォームのサイズを小さくして表示したいと言われると困りますが、参考までに。

# コードをせっかく投稿して頂くなら事象が再現できるコードを投稿して頂くと
  もう少し皆さんから回答が得られるかも知れませんが今回投稿して頂いたコードでは
 質問との関連もあまりないし、再現しょうにも中途半端だし、当初、私も試して見る気に
 なれなかったのですが。

投稿時間:2003/04/22(Tue) 09:59
投稿者名:miya
Eメール:
URL :
タイトル:
Re^2: エクセルのグラフをVBで表示
> # コードをせっかく投稿して頂くなら事象が再現できるコードを投稿して頂くと
>   もう少し皆さんから回答が得られるかも知れません

すいません。勝手がわからなくて・・・。
再現コード書きますね。


1.新規フォームに、コマンドボタンを2つ、ピクチャーボックスを1つ貼り付ける。
2.下記コードを書く。

Option Explicit

Dim xlApp   As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
    
Private Sub Command1_Click()

Dim filePath As String

    Set xlApp = CreateObject("Excel.Application")
    Set xlBook = xlApp.Workbooks.Open(App.Path & "\test1.xls")
    Set xlSheet = xlBook.Worksheets("sheet1")
    filePath = App.Path & "testgif.gif"
    xlSheet.ChartObjects("グラフ 1").Chart.Export filePath, "GIF", True
    Picture1.Picture = LoadPicture(filePath)
    
End Sub

Private Sub Command2_Click()
    
    xlBook.Close SaveChanges:=False
    Set xlSheet = Nothing
    Set xlBook = Nothing
    Set xlApp = Nothing
    Unload Me

End Sub

3.新規エクセルシート test1.xls を作成し、グラフウィザードで
グラフを貼り付ける。

4.エクセルシートのセルにデータを入力する(例:A1=1、B1=2、C1=3、D1=4、E1=5)

5.グラフを右クリックし、"元のデータ" を選択し、
"データ範囲" に =Sheet1!$A$1:$E$1 を入力し、保存。

6.VBを実行し、ボタン1でエクセルのグラフを取得し
(このときのプログレスバーを見えなくしたい)、
ボタン2で終了します。

投稿時間:2003/04/22(Tue) 11:19
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^3: エクセルのグラフをVBで表示
Excel2002 だったら表示されないかと思います。

WindowsXP Excel2002 VB6.0(SP5) では表示しません。

多分、簡単な事では非表示にできないと思うので前回の私の案では
だめなのでしょうか?

又は、クリップボード経由でピクチャボックスに貼り付ける

投稿時間:2003/04/22(Tue) 14:28
投稿者名:miya
Eメール:
URL :
タイトル:
Re^4: エクセルのグラフをVBで表示
>
> 又は、クリップボード経由でピクチャボックスに貼り付ける

クリップボードは以前にためしましたが、グラフ中の点線と実線が重なる場合、
画像がうまくコピーできませんでした。

> 多分、簡単な事では非表示にできないと思うので前回の私の案では
> だめなのでしょうか?

実処理では、呼び出し側(form1)から、グラフ表示画面(form2)を呼び出したとき、
form2のLoadイベント中にグラフのエクスポート処理を書いていました。
form1は画面が小さく、中央表示しているので、form1の裏側にプログレスバーを隠すのは無理でした。
ので、”処理中を表示するフォーム”をつくって、form2が表示されるまで右上に表示することにしました。
そこに、以前おしえてもらった「前面表示」を入れました。

ありがとうございました。

投稿時間:2003/04/22(Tue) 16:13
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^5: エクセルのグラフをVBで表示
> クリップボードは以前にためしましたが、グラフ中の点線と実線が重なる場合、
> 画像がうまくコピーできませんでした。

私が試した限りでは問題ないようでした。(見た目どうりに表示される)

 http://www.bcap.co.jp/hanafusa/VBHLP/graph01.htm

投稿時間:2003/04/23(Wed) 09:56
投稿者名:miya
Eメール:
URL :
タイトル:
Re^6: エクセルのグラフをVBで表示
> > クリップボードは以前にためしましたが、グラフ中の点線と実線が重なる場合、
> > 画像がうまくコピーできませんでした。
>
> 私が試した限りでは問題ないようでした。(見た目どうりに表示される)

下記の方法でテストすると、やはりクリップボードコピーがうまくいきません。
1.以前作成したtest1.xlsのグラフを右クリックの”グラフの種類”で”散布図”にする。
2.テストデータを追加する。(A2=4、B2=5、C2=3、D2=4、E2=6)
3.グラフを右クリックし、"元のデータ" を選択し、
"データ範囲" に =Sheet1!$A$1:$E$2 を入力。
4.グラフの点の上で右クリックし、”データ系列の書式設定”の”線指定”で系列1を実線、
系列2を破線で指定し、保存。
5.グラフ上では、青い実線とピンクの破線が一部交わるグラフになると思います。

これをクリップボードにコピーする方法でピクチャーボックスに表示すると
破線がピンクと白の破線に変わってしまい、線が重なる部分は青い線が消えています。

また、同じグラフで"折れ線グラフ”を指定すると破線が荒くなってしまいます。

前回の花ちゃんさんのサンプルを改造して同じ現象を出せるとよかったのですが、
グラフの線指定の方法がわからなかったのでできませんでした。
わかりにくいかもしれませんが、すみません。

投稿時間:2003/04/23(Wed) 10:56
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^7: エクセルのグラフをVBで表示
> これをクリップボードにコピーする方法でピクチャーボックスに表示すると
> 破線がピンクと白の破線に変わってしまい、線が重なる部分は青い線が消えています。
>
> また、同じグラフで"折れ線グラフ”を指定すると破線が荒くなってしまいます。

この辺が確認できるコードを投稿して頂けませんか。
(クリップボードにコピーする方法でピクチャーボックスに表示)この辺のコードも含め
又、貴方の環境も教えて下さい。

投稿時間:2003/04/23(Wed) 11:43
投稿者名:miya
Eメール:
URL :
タイトル:
Re^8: エクセルのグラフをVBで表示
> この辺が確認できるコードを投稿して頂けませんか。
> (クリップボードにコピーする方法でピクチャーボックスに表示)この辺のコードも含め

下記のようなコードでテストしました。
クリップボードにコピーの部分はサンプルの流用です。

Option Explicit

Dim xlApp   As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
    
Private Sub Command1_Click()

Dim filePath As String

    Set xlApp = CreateObject("Excel.Application")
    Set xlBook = xlApp.Workbooks.Open(App.Path & "\test1.xls")
    Set xlSheet = xlBook.Worksheets("sheet1")
    
    'クリップボードを初期化
    Clipboard.Clear
    'クリップボードにコピー
    xlSheet.ChartObjects("グラフ 1").Copy

'---------- クリップボード経由でPictureに貼り付け ------------------
    'クリップボードにメタファイルが入っているかチェック
    If Clipboard.GetFormat(vbCFMetafile) Then
        'メタファイルならピクチャーコントロールに貼り付け
        Picture1.Picture = Clipboard.GetData()
    End If

End Sub

Private Sub Command2_Click()
    
    xlBook.Close SaveChanges:=False
    Set xlSheet = Nothing
    Set xlBook = Nothing
    Set xlApp = Nothing
    Unload Me

End Sub


> 又、貴方の環境も教えて下さい。

・Windows2000
・Excel2000
・VB6.0(SP5)

です。

投稿時間:2003/04/23(Wed) 14:45
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: エクセルのグラフ(表示比較)
No.3688 の方法で試して見ましたが、同じです。

Windows98 SE  VB6.0(SP5.0)  Excel2000
WindowsXP     VB6.0(SP5.0)  Excel2002

結果は下記の通りどちらも同じに表示されます。

  http://www.bcap.co.jp/hanafusa/test1.htm

投稿時間:2003/04/23(Wed) 16:07
投稿者名:miya
Eメール:
URL :
タイトル:
Re^2: エクセルのグラフ(表示比較)
>  結果は下記の通りどちらも同じに表示されます。
>

花ちゃんさんの結果は、excelで開いたときより、2つともピンクの破線が荒くなっているように
みえますが、こちらとの環境のちがいなのでしょうか?
こちらでは、gif形式でエクスポートしたグラフをLoadPictureするときれいに出力
(プログレスバーがでますが)して、クリップボード経由でPictureに貼り付けすると画像が
乱れました。

「破線がピンクと白の破線に変わってしまい、線が重なる部分の青い線が消える」というのは
こちらだけの現象みたいですね。

わからなくなってきちゃいました。

投稿時間:2003/04/23(Wed) 22:56
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^3: エクセルのグラフ(表示比較)
> 花ちゃんさんの結果は、excelで開いたときより、2つともピンクの破線が荒くなっているように
> みえますが、こちらとの環境のちがいなのでしょうか?
Win95 や Win98 等でも試しましたが皆同様でした。

> こちらでは、gif形式でエクスポートしたグラフをLoadPictureするときれいに出力
> (プログレスバーがでますが)して、クリップボード経由でPictureに貼り付けすると画像が
> 乱れました。

両方共同じExcelファイルを使っておられるのでしょうか?
作成したグラフのサイズとVBで表示したときのサイズは同じでしょうか?特にペーストした場合
はメタファイルなのでピクチャーのサイズに拡大・縮小されて表示しますが。
サイズが極端に違うと変るようですが。
画面の解像度等はどうなのでしょうか?
色々試した見ましたが同様の現象が発生しません。点線が綺麗に表示される事も確認できません。
Office のサービスパック等はあてておられるのでしょうか?
(SP3 を当ててみましたが状況は変わりませんでした 4/24)
これ以上は、申訳ありませんが私には解りません。<m(__)m>

投稿時間:2003/04/25(Fri) 10:01
投稿者名:miya
Eメール:
URL :
タイトル:
Re^4: エクセルのグラフ(表示比較)
> Win95 や Win98 等でも試しましたが皆同様でした。
そうですか・・・。
ほんと、お手数かけてすいません。

>
> 両方共同じExcelファイルを使っておられるのでしょうか?
同じです。


> 作成したグラフのサイズとVBで表示したときのサイズは同じでしょうか?特にペーストした場合
> はメタファイルなのでピクチャーのサイズに拡大・縮小されて表示しますが。
サイズを変えても、極端に換えなければ、結果の現象は変わりませんでした。

> Office のサービスパック等はあてておられるのでしょうか?
あてていません。

> これ以上は、申訳ありませんが私には解りません。
いえいえ、こちらこそ、いろいろみてもらってありがとうございました。
ひとまずは、こちらで結果のよい出方をした、エクスポートのやり方の方で進めようと思います。
もし何かわかったらまたご連絡いたします。

ほんとに、ありがとうございました。<m(__)m>