|
はじめまして、業務で Excel VBA を作成していますが、
理解できない部分があったので、質問させてください。
(当方、Visual Basic の開発経験が若干ある程度です)
埋め込みグラフのデータソース範囲を、可変で指定する方法がわからず困っています。
<下のソースをご覧いただけると幸いです>
・"プログラム" シートの Range("C23:H37") にグラフを表示
・グラフのデータソースは可変(列はA〜B列固定だが、行数が可変)
↑現在は可変での指定方法がわからないため、Range("A3:B4097")とベタ書きしています。(データソースは "Temp"シートにある)
行いたいことは、
・"Temp"シートのA列 or B列の行末尾を見て、データソースを可変で指定したい
C列以降にもデータが存在しており、行数はA列、B列とは異なっています。
(A列とB列の行数は同一)
すみませんが、お知恵をお借りできますでしょうか。
よろしくお願いいたします。
----------------
'グラフ描写位置取得
Dim gr As Range
Set gr = Worksheets("プログラム").Range("C23:H37")
'グラフデータソース範囲取得
Worksheets("Temp").Activate
Dim SourceRange As Range
Set SourceRange = Worksheets("Temp").Range("A3:B4097")
Worksheets("プログラム").Activate
Worksheets("プログラム").ChartObjects("グラフ1").Delete
With ActiveSheet.ChartObjects.Add(gr.Left, gr.Top, gr.Width, gr.Height)
.Name = "グラフ1"
.Chart.SetSourceData SourceRange
.Chart.ChartType = xlXYScatterSmoothNoMarkers
.Chart.HasTitle = False
.Chart.HasLegend = False
.Chart.Axes(Type:=xlValue).HasTitle = True
.Chart.Axes(Type:=xlValue).AxisTitle.Text = "スペクトル"
.Chart.Axes(Type:=xlValue).MaximumScale = 0.16
.Chart.Axes(Type:=xlValue).MinimumScale = 0
.Chart.Axes(Type:=xlValue).CrossesAt = 0
.Chart.Axes(Type:=xlValue).MajorUnit = 0.02
.Chart.Axes(Type:=xlValue).TickLabels.NumberFormat = "0.0E+00"
.Chart.Axes(Type:=xlCategory).HasTitle = True
.Chart.Axes(Type:=xlCategory).AxisTitle.Text = "周波数"
.Chart.Axes(Type:=xlCategory).MinimumScale = 0.001
.Chart.Axes(Type:=xlCategory).MaximumScale = 100.1
.Chart.Axes(Type:=xlCategory).Crosses = xlAxisCrossesMinimum
.Chart.Axes(Type:=xlCategory).ScaleType = xlScaleLogarithmic
.Chart.Axes(Type:=xlCategory).LogBase = 10
End With
---------------------------
|
|