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

VB2005で既存のExcelのグラフのデータ範囲を設定したいのですが
どなたか教えてください。
VB6.0では下記のコードで実現できましたが
VB2005ではいろいろ調べたり変更してみたりしたのですが実現できませんでした
OSはWindows2000でExcelも2000です

Dim ExAp As Excel.Application
Dim ExBook As Excel.Workbook
Dim ExSheet As Excel.Worksheet

On Error GoTo er

Set ExAp = CreateObject("Excel.Application")
Set ExBook = ExAp.Workbooks.Open("C:\ファイル名.xls")
Set ExSheet = ExBook.Worksheets("シート名")

ExAp.Visible = True
ExSheet.Activate

ExSheet.ChartObjects("グラフ 1").Activate

With ActiveChart
.SeriesCollection(1).XValues = ExSheet.Range("B21:B24")
.SeriesCollection(1).Values = ExSheet.Range("C21:C24")
End With

Exit Sub

er:

Set ExSheet = Nothing
Set ExBook = Nothing
Set ExAp = Nothing
MsgBox Err.Description

A 回答 (1件)

VB2008にチャレンジしてみました。


下記のようにすればデータ範囲の変更が可能です。
2005でも大丈夫そうな気がします。
(VB6のあと10年間ほどはVB経験が皆無にちかいので
VBそのものがまだよくわかっていません。)
時々VBにも触れてみたいと思います。

Dim ExAp As Object 'Excel.Application
Dim ExBook As Object ' Excel.Workbook
Dim ExSheet As Object ' Excel.Worksheet

ExAp = CreateObject("Excel.Application")
ExBook = ExAp.Workbooks.Open("C:\test\book11.xlsm")
ExSheet = ExBook.Worksheets("sheet1")

ExAp.Visible = True
ExSheet.Activate()

With ExSheet.ChartObjects("グラフ 1").Chart
.SetSourceData(Source:=ExSheet.Range("B1:C10"))
' .SeriesCollection(1).XValues = ExSheet.Range("B1:B14").value
' .SeriesCollection(1).Values = ExSheet.Range("C1:C14").value
End With

ExSheet = Nothing
ExBook = Nothing
ExAp = Nothing
    • good
    • 0
この回答へのお礼

ご回答いただきありがとうございます。
私の質問に不足があり申し訳ありません
With ExSheet.ChartObjects("グラフ 1").Chart
.SetSourceData(Source:=ExSheet.Range("B1:C10"))
End With(1).Values = ExSheet.Range("C1:C14").value
で値の範囲の設定はできるのですが
項目軸ラベルに使用の範囲設定ができません

.SeriesCollection(1).XValues = ExSheet.Range("B1:B14").value←項目軸ラベルに使用の範囲設定
.SeriesCollection(1).Values = ExSheet.Range("C1:C14").value←値の範囲設定
VB6.0で上記の事が出来る様にVB2005で
項目軸ラベルに使用の範囲設定をする方法はないでしょうか?

項目軸ラベルに使用の範囲設定の確認方法は グラフを右クリックして
元のデータ をクリックして
系列タブで確認ができます。(Excel2000の場合)

お礼日時:2009/05/11 08:14

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