VBA初心者です。
自動でグラフを作成するVBAを作成しています。
B2,C2,D2....と系列の値のある範囲のみ名前を取得したいのですが
取得した値が系列にうまく反映できません。
##データの範囲は以下の構文でB3を起点に値のある範囲を取得しています。
y_offset = 3
x_offset = 2
y_temp = y_offset continue_flag = True Do While continue_flag = True If Len(Cells(y_temp, x_offset).Value) > 0 Then y_temp = y_temp + 1 Else continue_flag = False End If Loop x_temp = x_offset continue_flag = True Do While continue_flag = True If Len(Cells(y_offset, x_temp).Value) > 0 Then x_temp = x_temp + 1 Else continue_flag = False End If Loop y_end = y_temp - 1 x_end = x_temp - 1 ※ここまではうまく取れています
系列の取得は以下構文で作成しています
' 系列の名前 For n = x_offset To x_end - 1 series_names = Array(ActiveSheet.Cells(y_offset - 1, n).Value) Next n ' 系列名をセット For i = 0 To x_end - x_offset .SeriesCollection(i + 1).Name = series_names(i) Next i
series_names(i)をデバッグで見ると
series_names(i) = <インデックスが有効範囲にありません。>と表示されてしまい系列が取得できていません。
Arrayに入れる構文が悪いのか、系列へ反映させるの構文が間違ってるのかわかりません。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。