>1.将来 数値データ(項目)が1つの場合も想定されます。
コードを修正しました。
添付画像のK3セルは必須です。
他方、L3セルはデータが1列しかない場合は空欄にしてください。
>2.指定データ数が実際のデータを超えたら全データでグラフ化。(現在はエラーになるようです)
これは、K5セルに相当大きな値を埋めれば期待の結果になります。
私が行ってみる限り、エラーになることはありません。
エラーとなるデータの行数と、K5セルにセットしている値
エラーのメッセージ、エラーになる行をそれぞれ教えてください。
Option Explicit
Sub sampleX()
Const Col0 = 2 '軸ラベルの列番号
Dim w As Worksheet '対象シート
Dim SRow As Long 'データの開始行
Dim ERow As Long 'データの開始行
Dim RngL As Range '軸ラベルの範囲
Dim Rng1 As Range 'データ1の範囲
Dim Rng2 As Range 'データ2の範囲
Dim RngH0 As Range 'ダミー範囲
Dim RngH1 As Range 'データ1の凡例
Dim RngH2 As Range 'データ2の凡例
Dim RngG As Range '上記6範囲を結合した範囲
Dim HRow As Long '凡例の行番号
Dim Col1 As Long 'データ1の列番号
Dim Col2 As Long 'データ2の列番号
Set w = ThisWorkbook.ActiveSheet
HRow = w.Range("K4").Value
Col1 = w.Range(w.Range("K3").Value & "1").Column
If w.Range("L3").Value <> "" Then
Col2 = w.Range(w.Range("L3").Value & "1").Column
Else
Col2 = 0
End If
ERow = w.Cells(Rows.Count, Col1).End(xlUp).Row
Do
If IsNumeric(w.Cells(ERow, Col1).Value) = True Then Exit Do
ERow = ERow - 1
Loop
SRow = w.Range("K6").Value
SRow = WorksheetFunction.Max(SRow, ERow - w.Range("K5").Value + 1)
Set RngH0 = Range(w.Cells(HRow, Col0), w.Cells(HRow, Col0))
Set RngH1 = Range(w.Cells(HRow, Col1), w.Cells(HRow, Col1))
Set RngL = Range(w.Cells(SRow, Col0), w.Cells(ERow, Col0))
Set Rng1 = Range(w.Cells(SRow, Col1), w.Cells(ERow, Col1))
If Col2 <> 0 Then
Set RngH2 = Range(w.Cells(HRow, Col2), w.Cells(HRow, Col2))
Set Rng2 = Range(w.Cells(SRow, Col2), w.Cells(ERow, Col2))
Set RngG = Union(RngH0, RngL, RngH1, Rng1, RngH2, Rng2)
Else
Set RngG = Union(RngH0, RngL, RngH1, Rng1)
End If
w.ChartObjects(1).Chart.SetSourceData RngG
End Sub
お礼
HohoPapaさん いつもいつもお世話になりっぱなしで申し訳ありません。 昼休みに用意しておいた実BookのコピーBookで複数枚のシートで確認してみました。 全く期待通りに一瞬で完了しました。 毎度の推理&忖度課題に最後までお付き合いくださり本当に感謝! 過去に教えて頂いたシート(Book)が社内の複数の部署で使用され始めました。 使用者に成り変り御礼申し上げます。 他にお礼の方法がないのが残念です。 注釈付きで、最初に条件を指定するコード体系なので小生でも少しいじれますので汎用性が出ます。 ここの貢献度No2になっていますね。 BA率ダントツは納得です!!!!
補足
毎度お世話になっております。 バッチリ!!です。 試行前に予定品種(未整備)のシートを既存品種のコピーで置き換えたのでK6セルは12(行目)に揃えてお待ちしておりました。 全くいつものことですが最後の最後まで忖度に頼りっきりで申し訳ありませんでした。 遅くても今週中には予定品種のシートの書式を新書式にそろえて、実際の計算式を入れてからの動作確認後にお礼&締め切らせていただきます。 先ずはご報告まで。