Excel VBA質問箱 IV

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

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


6650 / 13646 ツリー ←次へ | 前へ→

【44009】グラフの自動作成マクロ グラフ 06/11/1(水) 9:05 質問[未読]
【44020】Re:グラフの自動作成マクロ Kein 06/11/1(水) 12:42 回答[未読]
【44027】Re:グラフの自動作成マクロ グラフ 06/11/1(水) 13:22 発言[未読]
【44029】Re:グラフの自動作成マクロ グラフ 06/11/1(水) 13:40 発言[未読]
【44030】Re:グラフの自動作成マクロ Kein 06/11/1(水) 13:46 発言[未読]
【44033】Re:グラフの自動作成マクロ グラフ 06/11/1(水) 14:08 発言[未読]
【44036】Re:グラフの自動作成マクロ グラフ 06/11/1(水) 15:34 発言[未読]
【44039】Re:グラフの自動作成マクロ グラフ 06/11/1(水) 16:25 発言[未読]

【44009】グラフの自動作成マクロ
質問  グラフ  - 06/11/1(水) 9:05 -

引用なし
パスワード
   自動的にグラフを作成するマクロを検討しています。
下記マクロはsheet1にあるデータのB10:B400の値がX軸にし、I10:K400の値がY軸となるような3系列の散布図を作成するマクロです。

Charts.Add
  ActiveChart.ChartType = xlXYScatterLinesNoMarkers
  ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("B10:B400,I10:K400"), _
    PlotBy:=xlColumns
  ActiveChart.Location Where:=xlLocationAsNewSheet, Name:="Graph1"

X軸の値となるB10:B400は固定し、Y軸の3系列(I10:K400)を変動させるマクロを検討しています。どのように変動させるかというと

     -1 アクティブセル
         1
         2
     基準  3

アクティブセルから1列左、3行下のセルを基準セルとし、Y軸の値は基準セルから400行下、3行右の範囲の値となります。
上記マクロで、Y軸の値となる範囲の選択を上記変動条件で行うマクロを教示願います。

【44020】Re:グラフの自動作成マクロ
回答  Kein  - 06/11/1(水) 12:42 -

引用なし
パスワード
   Sub Mk_Chart()
  Dim MyR As Range
 
  With ActiveCell
   If .Parent.Name <> "Sheet1" Then Exit Sub
   If .Column < 3 Then Exit Sub
   Set MyR = Union(Range("B10:B400"), _
   .Offset(3, -1).Resize(400, 3))
  End With
  With Charts.Add
   .ChartType = xlXYScatterLinesNoMarkers
   .SetSourceData MyR
   .Name = "Graph1
  End With
  Set MyR = Nothing
End Sub

ということかな ?

【44027】Re:グラフの自動作成マクロ
発言  グラフ  - 06/11/1(水) 13:22 -

引用なし
パスワード
   ちょっと違うようです。
小生の質問の仕方がいけなかったと思いますので、再度、質問内容を下記します。

【44029】Re:グラフの自動作成マクロ
発言  グラフ  - 06/11/1(水) 13:40 -

引用なし
パスワード
   ちょっと違うようです。
小生の質問の仕方が分かりづらかったかと思いますので、再度質問内容をかきします。また、小生はVBAに関してド素人ですので、ご承知おきください。

教示いただいたマクロを走らせて作成されたグラフを見ると、アクティブセルのみのグラフとなってしまいました。


小生の意図はアクティブセルから1列左、3行下のセルを基準として、その基準セルから400行下、3行右の範囲を選択し、3系列(同一グラフ上に3種類)の散布図を自動的に作成するマクロを作成したいと思っています。

【44030】Re:グラフの自動作成マクロ
発言  Kein  - 06/11/1(水) 13:46 -

引用なし
パスワード
   >から1列左、3行下のセルを基準として、その基準セルから400行下、3行右の範囲
という指定は

>.Offset(3, -1).Resize(400, 3))

の部分になります。Offset,Resizeプロパティのヘルプを調べて下さい。
こちらでテストしたかぎりでは
>アクティブセルのみのグラフ
にはなりませんでしたが。

【44033】Re:グラフの自動作成マクロ
発言  グラフ  - 06/11/1(水) 14:08 -

引用なし
パスワード
   ▼Kein さん:
>>から1列左、3行下のセルを基準として、その基準セルから400行下、3行右の範囲
>という指定は
>
>>.Offset(3, -1).Resize(400, 3))
>
>の部分になります。Offset,Resizeプロパティのヘルプを調べて下さい。
>こちらでテストしたかぎりでは
>>アクティブセルのみのグラフ
>にはなりませんでしたが。
教示いただいたマクロを参考にし、以下のようにモディファイしました。
2行のマクロはアクティブセルの選択を行っています。

Sub 電流波形グラフ作成()
  
Rows("8:8").Find(Range("G6").Value).Activate

  Dim MyR As Range
 
  With ActiveCell
   If .Parent.Name <> "Sheet1" Then Exit Sub
   If .Column < 3 Then Exit Sub
   Set MyR = Union(Range("B10:B400"), _
   .Offset(3, -1).Resize(400, 3))
  End With
  With Charts.Add
   .ChartType = xlXYScatterLinesNoMarkers
   .SetSourceData MyR
   .Name = "Graph1"
  End With
  Set MyR = Nothing
  (以下、中略)
End Sub
以下中略部ではグラフのタイトル設定等のマクロが記述されたいます。

【44036】Re:グラフの自動作成マクロ
発言  グラフ  - 06/11/1(水) 15:34 -

引用なし
パスワード
   ▼Kein さん:
>Sub Mk_Chart()
>  Dim MyR As Range
> 
>  With ActiveCell
>   If .Parent.Name <> "Sheet1" Then Exit Sub
この部分のマクロはどういう意味でしょうか?
>   If .Column < 3 Then Exit Sub
この部分のマクロはどういう意味でしょうか?
>   Set MyR = Union(Range("B10:B400"), _
>   .Offset(3, -1).Resize(400, 3))
>  End With

【44039】Re:グラフの自動作成マクロ
発言  グラフ  - 06/11/1(水) 16:25 -

引用なし
パスワード
   貴殿から教示いただいたマクロを参考に、下記のように変更しました。

Sub Mk_chart()
  Rows("8:8").Find(Range("G6").Value).Activate
  Dim MyR As Range
  With ActiveCell
   If .Parent.Name <> "Sheet1" Then Exit Sub
   If .Column < 3 Then Exit Sub
   Set MyR = Union(Range("B11:B401"), .Offset(3, -1).Resize(400, 3))
  End With
  Charts.Add
  ActiveChart.ChartType = xlXYScatterLinesNoMarkers
  ActiveChart.SetSourceData Source:=MyR, PlotBy:=xlColumns
  ActiveChart.Location Where:=xlLocationAsNewSheet, Name:="Graph1"
  Set MyR = Nothing
End Sub

上記マクロではB11:B401がX軸の値にならず、Y軸の値となって、グラフが作成されてしまいます。
B11:B401をX軸の値としたい場合、上記マクロをどのように変更すればよいのでしょうか?
ご教示ください。

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