Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4185 / 13644 ツリー ←次へ | 前へ→

【57994】埋め込みグラフのデータソース(可変長)について L-way 08/9/26(金) 15:22 質問[未読]
【57995】Re:埋め込みグラフのデータソース(可変長... kanabun 08/9/26(金) 15:35 発言[未読]
【57997】Re:埋め込みグラフのデータソース(可変長... L-way 08/9/26(金) 15:54 お礼[未読]

【57994】埋め込みグラフのデータソース(可変長)...
質問  L-way  - 08/9/26(金) 15:22 -

引用なし
パスワード
   はじめまして、業務で 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
---------------------------

【57995】Re:埋め込みグラフのデータソース(可変...
発言  kanabun  - 08/9/26(金) 15:35 -

引用なし
パスワード
   ▼L-way さん:

>・"Temp"シートのA列 or B列の行末尾を見て、データソースを可変で指定したい

>(A列とB列の行数は同一)

ということは

>Set SourceRange = Worksheets("Temp").Range("A3:B4097")
を、
 With Worksheets("Temp")
  Set SourceRange = .Range("A3", .Range("B65536").End(xlUp))
 End With

ということでしょうか?

【57997】Re:埋め込みグラフのデータソース(可変...
お礼  L-way  - 08/9/26(金) 15:54 -

引用なし
パスワード
   ▼kanabun さん:
ご教授いただいた通り、期待する動きになりました。
ありがとうございました。

4185 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free