• 締切済み

マクロでグラフ作成

マクロを使って、各シート(ひな型は同じでデータが各々違う)の特定の部分のデータから折れ線グラフを書こうとしています。 しかし、どのシートでマクロを実行しても、最初にマクロを記録したシートのデータからグラフができてしまいます。 マクロの保存法が悪いのでしょうか? 相対参照で記録、なども試してみましたが駄目でした。 どなたかお分かりになる方、助けてください。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 埋め込み型グラフですね。 たとえば、記録マクロを取ると以下のようになります。 Sub Macro1()   Range("A1:B11").Select '*   Charts.Add   ActiveChart.ChartType = xlLine   ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("A1:B11"), PlotBy _     :=xlColumns   ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1" '*   With ActiveChart     .HasTitle = False     .Axes(xlCategory, xlPrimary).HasTitle = False     .Axes(xlValue, xlPrimary).HasTitle = False   End With End Sub ------------------------------------------------------------- 記録マクロを以下のように加工すると、どこでも使えるようになります。 ------------------------------------------------------------- Sub MyMacro() Dim r As Range Dim ShName As String   Set r = Selection 'マウスで選択   If r Is Nothing Then Exit Sub '**   ShName = ActiveSheet.Name '**   Charts.Add   ActiveChart.ChartType = xlLine   ActiveChart.SetSourceData Source:=r, PlotBy _     :=xlColumns   ActiveChart.Location Where:=xlLocationAsObject, Name:=ShName   With ActiveChart     .HasTitle = False     .Axes(xlCategory, xlPrimary).HasTitle = False     .Axes(xlValue, xlPrimary).HasTitle = False   End With End Sub *の部分のポイントが分かったら試してみてください。 ただし、グラフマクロだけは、バージョンによって記録マクロの内容が大きく変わることがあります。なお、本来のマクロはこのような書き方はあまりしません。あくまでも、記録マクロを手直ししたという前提です。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

グラフを書くエクセルVBAは、マクロの記録で、骨子はわかります。 しかし多数のグラフを書くということは、上記マクロの記録のコードで、データ範囲はVBAで変化させなければなりません。こんなことは、言わずもがなのレベルなのかどうか判らないのが、質問コーナーの悲しさです。 この辺をどのようにコードしているか、この質問の補足欄で、グラフの1,2例のコードを書いてみたらどうでしょう。 ーー 「VBA、VBのコードの質問は、コードを書いて質問」

関連するQ&A