
はじめまして。
数日ほど色々な文献を調べたのですが、どうしても解決法が見つからなかったので質問させてください。
利用環境:Windows XP SP2
使用ソフト:Excel 2003 SP3
【問題】
マクロで自動的にデータを取り込み、複数のグラフを作成すると
2ワークシートごとに不明な系列データが追加されてしまう。
【具体的な症状】
Excelファイル(.xls)は1つのみです。
そこに1つのワークシートがあります。
例:RH001
そして、そのワークシートには以下の範囲に12個のデータが載っています。
AB12:AB112、AC:12:AC112、AD:12:AD112、AE12:AE112(28~31列)
AJ12:AJ112、AK:12:AK112、AL:12:AL112、AM12:AM112(36~39列)
AR12:AR112、AS:12:AS112、AT:12:AT112、AU12:AU112(44~47列)
X軸は何も使用していません。
このデータをマクロを利用してグラフ化する際に
ループで3つのワークシートを作り、4つのデータ系列を追加しています。
しかし、ワークシートの偶数番目(今回はワークシート2番)になると
なぜか、ループとは関係の無いデータ系列が存在しています。
今回は、通常4つのところを9つのデータ系列にになってしまいます。
どうも調べてみると、余分なデータ系列は
「通常のデータ系列の数+1」だけ追加されるようです。
自分なりにデータをいじったり、ネットの文献を色々と調べてみたのですが、
数日経った今も全く解決出来ておりません。
どなたか解決方法をご教授ください。
よろしくお願いします。
----------------------------------------------------------------
Sub test()
'ループで参照するワークシートを設定
strNameWorkSheet = "RH001"
'AB~AE、AJ~AM/AR~AUのデータをワークシートに分けるためのループ
For q = 1 To 3
'グラフの作成
Charts.Add
ActiveChart.ChartType = xlLineMarkers
'AB/AC/AD/AE、AJ/AK/AL/AM、AR/AS/AT/AUごとに新しいデータ系列を作るためのループ
For m = 1 To 4
'新しい系列を追加
ActiveChart.SeriesCollection.NewSeries
'ループ時に列を横にずらしていく。qで8列ずらし、mで1列ずらす
ActiveChart.SeriesCollection(m).Values = _
Sheets(strNameWorkSheet).Range(Sheets(strNameWorkSheet).Cells(12, 8 * q + 19 + m), _
Sheets(strNameWorkSheet).Cells(112, 8 * q + 19 + m))
Next m
'グラフのワークシート名を設定
strGraphName = strNameWorkSheet & q
ActiveChart.Location Where:=xlLocationAsNewSheet, Name:=strGraphName
With ActiveChart
.HasTitle = True
.ChartTitle.Text = strGraphName
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "スラスト方向変位(mm)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "各方向磁気力(N)"
End With
Next q
End Sub
No.1ベストアンサー
- 回答日時:
以下の部分を変更してみてください。
Charts.Add
ActiveChart.ChartType = xlLineMarkers
↓
ActiveWorkbook.Charts.Add Before:=Worksheets(Worksheets.Count)
ActiveChart.ChartType = xlLineMarkers
>pkh4989さん
ありがとうございます。
無事うまく作動しました(^-^)
膨大な数のグラフを作る必要があり、急ぎで必要だったので
大変助かりました。
本当にありがとうございましたm(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) コード名シートA列と集計シートA列のコードが一致したら、コード名シートA5からk12の範囲をコピーし 1 2022/08/29 23:46
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Excel(エクセル) VBAのoffsetの動き方について教えてください 3 2022/11/25 23:36
- Visual Basic(VBA) 集計シートA列のコードと一致する右に並んだシート名(コード)の3行目から10行目をコピーして貼り付け 4 2022/08/18 15:24
- Visual Basic(VBA) VBAで、シート間の転記するコードをFOR~NEXTで教えてください。 9 2023/04/30 20:04
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) VBA横データを縦にしたいです 2 2023/08/08 19:38
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) 最終行の指定について教えてください。 複数シートを1シートへまとめる下記マクロでは各シートの6行目を 1 2022/10/04 18:37
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
グラフマクロで系列を変数にする方法を教えてください
Visual Basic(VBA)
-
VBA グラフの存在の判定について
Visual Basic(VBA)
-
-
4
横軸ラベルの追加に関するエラー(VBA)
Visual Basic(VBA)
-
5
エクセルの散布図のX軸に文字を表示したいのですが、どうしたらよいのでしょうか?
Excel(エクセル)
-
6
Excel VBAで、散布図のデータ範囲が正しく指定されない
Visual Basic(VBA)
-
7
【ExcelVBA】SeriesCollectionのXValuesについて
Visual Basic(VBA)
-
8
Excel VBAでグラフをクリックした時走るイベントありますか?
その他(プログラミング・Web制作)
-
9
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excelの不要な行の削除ができな...
-
エクセルファイルのシート毎の容量
-
複数シートからデータを拾って...
-
Excelでシートの違うデータでグ...
-
Excelで日付変更ごとに、自動的...
-
シート削除して同名シート追加...
-
トランジスタの選び方
-
エクセル 縦に長い表の印刷時...
-
複数シートのデータを行列を入...
-
他のシートの一番下の行データ...
-
エクセル 複雑な関数を教えてく...
-
ExcelデータをTxtファイルへ貼...
-
時間帯の重複を除いた集計について
-
EXCELで2つのファイルから重複...
-
Excelクエリで日付がうまく抽出...
-
CMOS-IC CD4007UBEのnmosfetの...
-
excel 共通項目に対しての追加...
-
Excelでのグラフ
-
VBAで CTRL+HOMEの位置へ移動...
-
excel2013で、マスターシートの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
excelの不要な行の削除ができな...
-
エクセルファイルのシート毎の容量
-
複数シートからデータを拾って...
-
Excelでシートの違うデータでグ...
-
シート削除して同名シート追加...
-
Excelで日付変更ごとに、自動的...
-
EXCELで2つのファイルから重複...
-
エクセル 縦に長い表の印刷時...
-
Googleスプレッドシートフィル...
-
VBAで CTRL+HOMEの位置へ移動...
-
トランジスタの選び方
-
時間帯の重複を除いた集計について
-
Excel 売上管理シートに入力し...
-
他のシートの一番下の行データ...
-
エクセルで名簿を50音で切り分ける
-
エクセルVBAで、特定文字から始...
-
Excelファイルの容量が異常に大...
-
【マクロ】同じフォルダ内にあ...
-
エクセル マクロ "特定の日付...
-
EXCEL の表を一行ずつシートに...
おすすめ情報