Excel VBA質問箱 IV

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

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


63753 / 76738 ←次へ | 前へ→

【17579】Re:複数グラフシート作成について
回答  phoo  - 04/9/2(木) 16:54 -

引用なし
パスワード
   >この表を以下のような条件でグラフ化したいと思っているのですが、
>方法がわかりませんでした。

マクロ化する でよろしいでしょうか?

(例)
 1月 2月 3月 4月 5月
A 21  5 11 17  6
B 3 14 45  0  5
C 4  5  4  5 15
D 3  9  7  4  3
E 5 45  9 14 18
F 4  4 10  3 21
G 1  5  4  6 20
H 21  2 45  5  2

Z

行は、1月から5月まで
列は、AからZまでと仮定して、
10列単位にグラフを作成するコードです。
----------------------------------------------------------------
Private Sub CommandButton1_Click()

  Dim I    As Long
  Dim WK_Chats As String
  Dim Count  As Long
  Dim WK_EOF  As String
  Dim 開始   As Long
  
  開始 = 2
  Conut = 0
  WK_EOF = "False"
  WK_Chats = "off"
  '
  Application.ScreenUpdating = False
  For I = 2 To 65536 - 1 Step 1
    If IsNull(Range("B" & I)) Or Range("B" & I) = "" Then
      If 開始 = I Then
        Exit For
      End If
      WK_Chats = "on"
      WK_EOF = "True"
    Else
      '1行づつカウントしつつ、10になったら、グラフフラグをONにする
      Count = Count + 1
      If Count Mod 10 = 0 Then
        WK_Chats = "on"
      End If
    End If
    '
    If WK_Chats = "on" Then
      'グラフの作成
      Charts.Add
      ActiveChart.ChartType = xlColumnClustered
      ActiveChart.SetSourceData Source:=Sheets("Sheet5").Range("K9")
      ActiveChart.SeriesCollection.NewSeries
      ActiveChart.SeriesCollection.NewSeries
      ActiveChart.SeriesCollection.NewSeries
      ActiveChart.SeriesCollection(1).XValues = "=Sheet5!R" & 開始 & "C1:R" & I & "C1"
      ActiveChart.SeriesCollection(1).Values = "=Sheet5!R" & 開始 & "C2:R" & I & "C2"
      ActiveChart.SeriesCollection(1).Name = "=Sheet5!R1C2"
      ActiveChart.SeriesCollection(2).Values = "=Sheet5!R" & 開始 & "C3:R" & I & "C3"
      ActiveChart.SeriesCollection(2).Name = "=Sheet5!R1C3"
      ActiveChart.SeriesCollection(3).Values = "=Sheet5!R" & 開始 & "C4:R" & I & "C4"
      ActiveChart.SeriesCollection(3).Name = "=Sheet5!R1C4"
      ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet5"
      '
      If WK_EOF = "True" Then
        Exit For
      End If
      WK_Chats = "off"
      開始 = I + 1
    End If
  Next I
  
  Application.ScreenUpdating = True

End Sub
'----------------------------------------------------------------------
もうチョット簡単に出来そーな気がするんですけど・・・。
このままだと、グラフが重なり合って作成されるため、
位置の調整や大きさ、などなどの処理が必要になってくるかと思います。

こんな感じですけど、参考になればと思います。
0 hits

【17567】複数グラフシート作成について とみー 04/9/2(木) 14:21 質問
【17579】Re:複数グラフシート作成について phoo 04/9/2(木) 16:54 回答
【17600】Re:複数グラフシート作成について とみー 04/9/3(金) 9:28 お礼

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