Excel VBA質問箱 IV

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

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


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

【24782】VBAでグラフ作成 バンビ 05/5/10(火) 11:51 質問[未読]
【24789】Re:VBAでグラフ作成 小僧 05/5/10(火) 17:55 回答[未読]
【24814】Re:VBAでグラフ作成 バンビ 05/5/11(水) 10:42 回答[未読]
【24821】Re:VBAでグラフ作成 小僧 05/5/11(水) 11:47 回答[未読]
【24836】Re:VBAでグラフ作成 バンビ 05/5/11(水) 15:12 お礼[未読]
【24839】Re:VBAでグラフ作成 バンビ 05/5/11(水) 15:38 発言[未読]
【24854】Re:VBAでグラフ作成 小僧 05/5/11(水) 17:49 回答[未読]

【24782】VBAでグラフ作成
質問  バンビ  - 05/5/10(火) 11:51 -

引用なし
パスワード
   以下の記述に加えて。。。

Sub RunGraph()
UGraph "b2:c7", 0, 120, 250, 150
UGraph "b2:b7,d2:d7", 250, 120, 250, 150
End Sub

Sub UGraph(rng, L, T, W, H)
With ActiveSheet.ChartObjects.Add(L, T, W, H)
.Chart.ChartType = xlLine
.Chart.SetSourceData Source:=ActiveSheet.Range(rng), _
PlotBy:=xlColumns
.Chart.Location Where:=xlLocationAsObject, Name:="Sheet1"
End With
End Sub

VBAのサイトで見つけた線の色とマーカー(線の折れる所に◆等を表示する)を
付けたいのですが、HPで見かけたコードを代入してもエラーになってしまいます。

ActiveChart.SeriesCollection(4).Select
 With Selection.Border
  .ColorIndex = 5         '線の色
  .Weight = xlThin        '線の種類 :参考13-3参照
  .LineStyle = xlContinuous
 End With
 With Selection
  .MarkerBackgroundColorIndex = 5    'マーカの中の色 中抜きは[xlNone]
  .MarkerForegroundColorIndex = 5    'マーカの外枠の色
  .MarkerStyle = xlCircle        'マーカの種類 :参考13-4参照
  .Smooth = False
 End With

どのようにしたら、線の色とマーカーを付ける事ができるのでしょうか?

【24789】Re:VBAでグラフ作成
回答  小僧  - 05/5/10(火) 17:55 -

引用なし
パスワード
   ▼バンビ さん:
こんにちは。

Sub RunGraph()
  Call UGraph("b2:c7", 0, 120, 250, 150)
  Call UGraph("b2:b7,d2:d7", 250, 120, 250, 150)
End Sub

Sub UGraph(rng, L, T, W, H)

  With ActiveSheet.ChartObjects.Add(L, T, W, H)
    .Chart.ChartType = xlLine
    .Chart.SetSourceData Source:=ActiveSheet.Range(rng), _
    PlotBy:=xlColumns
    .Chart.Location Where:=xlLocationAsObject, Name:="Sheet1"
  End With
  
  ActiveChart.SeriesCollection(1).Select
'                    ^^^    
  With Selection.Border
    .ColorIndex = 5        
    .Weight = xlThin        
    .LineStyle = xlContinuous
  End With
  With Selection
    .MarkerBackgroundColorIndex = 5    
    .MarkerForegroundColorIndex = 5    
    .MarkerStyle = xlCircle        
    .Smooth = False
  End With
End Sub

カッコの中の数字は、グラフ(線の数など)によって変化します。
バンビさんが意図しない線の色が変わってしまった場合は
数字を色々いじって結果を確認してみて下さい。

【24814】Re:VBAでグラフ作成
回答  バンビ  - 05/5/11(水) 10:42 -

引用なし
パスワード
   ご返答ありがとうございました。

しかし。。。
なぜか、以下の箇所でエラーとなってしまい、

>  ActiveChart.SeriesCollection(1).Select

デバックしなければいけないような状態なのです。。。
どうしてでしょうか。
他のサンプル((3)(4)(5)のみを線グラフにする等)でも
このカッコ付きのものがあるのですが、同様にここで止まってしまいます。


もし、何らか分かることがございましたら、
アドバイスお願いいたします。

▼小僧 さん:
>▼バンビ さん:
>こんにちは。
>
>Sub RunGraph()
>  Call UGraph("b2:c7", 0, 120, 250, 150)
>  Call UGraph("b2:b7,d2:d7", 250, 120, 250, 150)
>End Sub
>
>Sub UGraph(rng, L, T, W, H)
>
>  With ActiveSheet.ChartObjects.Add(L, T, W, H)
>    .Chart.ChartType = xlLine
>    .Chart.SetSourceData Source:=ActiveSheet.Range(rng), _
>    PlotBy:=xlColumns
>    .Chart.Location Where:=xlLocationAsObject, Name:="Sheet1"
>  End With
>  
>  ActiveChart.SeriesCollection(1).Select
>'                    ^^^    
>  With Selection.Border
>    .ColorIndex = 5        
>    .Weight = xlThin        
>    .LineStyle = xlContinuous
>  End With
>  With Selection
>    .MarkerBackgroundColorIndex = 5    
>    .MarkerForegroundColorIndex = 5    
>    .MarkerStyle = xlCircle        
>    .Smooth = False
>  End With
>End Sub
>
>カッコの中の数字は、グラフ(線の数など)によって変化します。
>バンビさんが意図しない線の色が変わってしまった場合は
>数字を色々いじって結果を確認してみて下さい。

【24821】Re:VBAでグラフ作成
回答  小僧  - 05/5/11(水) 11:47 -

引用なし
パスワード
   ▼バンビ さん:
こんにちは。

当方が提示したコードをそのままコピーして使ってもエラーが
出てしまいますか?

当方の環境ですと、B2 〜 D7 までに値が入っていれば
エラーが発生しておりません。

最初に投稿された内容に、

>HPで見かけたコードを代入してもエラーになってしまいます。

とありますが、どの位置にどのようにコードを入れたのかが不明ですので、
現在エラーが出ていますコードをそのままご提示されると
エラーの発生原因を見つけやすくなると思われます。

【24836】Re:VBAでグラフ作成
お礼  バンビ  - 05/5/11(水) 15:12 -

引用なし
パスワード
   小僧さん

バンビです。大変失礼しました。
指定の箇所に数値を入れると、表示されるようになりました。

大変ありがとうございました。

【24839】Re:VBAでグラフ作成
発言  バンビ  - 05/5/11(水) 15:38 -

引用なし
パスワード
   実は、もう一つまたカッコを使った文書でできない事があるのですが、
以下のような棒グラフがあります。棒グラフは一項目に5本表示されます。

Sub RunGraph()
Range("A1:I6").Select
  ActiveSheet.ChartObjects.Add(25, 125, 338, 220).Select
  ActiveChart.ChartWizard Source:=Range("A1:I6"), Gallery:=xlColumn, _
    Format:=6, PlotBy:=xlRows, CategoryLabels:=1, SeriesLabels _
    :=1, HasLegend:=1
End Sub

これの上から1,2を棒グラフ、3つ目以下3,4,5を線グラフにしたく、
以下のようなサンプルがあったのですが、使えずエラーとなってしまします。
どうしてでしょうか。

ActiveChart.SeriesCollection(3).Select
  Selection.Type = xlLine
  ActiveChart.SeriesCollection(4).Select
  Selection.Type = xlLine
  ActiveChart.SeriesCollection(5).Select
  Selection.Type = xlLine

どうぞ、よろしくお願いします。

【24854】Re:VBAでグラフ作成
回答  小僧  - 05/5/11(水) 17:49 -

引用なし
パスワード
   ▼バンビ さん:
Select しないで直接指定するとどうでしょうか?

>ActiveChart.SeriesCollection(3).Select
>  Selection.Type = xlLine
>  ActiveChart.SeriesCollection(4).Select
>  Selection.Type = xlLine
>  ActiveChart.SeriesCollection(5).Select
>  Selection.Type = xlLine
>
  ActiveChart.SeriesCollection(3).Type = xlLine
  ActiveChart.SeriesCollection(4).Type = xlLine
  ActiveChart.SeriesCollection(5).Type = xlLine

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