プロが教えるわが家の防犯対策術!

Excelのマクロの記録を用いて数列のセルの並び替えとグラフ作成まで行いました。
これを別のシートで実行すると、数列を並び替えるまではいいのですが、グラフがマクロの記録を行ったシートのグラフになってしまいます。
操作は同じでグラフだけ現在のシートのものを適応するにはどうすればいいでしょうか。
以下、記録したマクロを記載します。
40minは記録したシートの名前です。
-----------------------------------------------------------------------------------
Sub DLS()
'
' DLS Macro
'

'
ActiveWindow.Zoom = 55
ActiveWindow.Zoom = 40
Range("A23:O42").Select
Selection.Cut Destination:=Range("Q1:AE20")
Range("E3:F20").Select
Selection.Cut Destination:=Range("A21:B38")
Range("I3:J20").Select
Selection.Cut Destination:=Range("A39:B56")
Range("M3:N18").Select
Selection.Cut Destination:=Range("A57:B72")
Range("A57:B72").Select
ActiveWindow.SmallScroll Down:=-18
Range("C1:O2").Select
Selection.ClearContents
Range("U3:V20").Select
Selection.Cut Destination:=Range("Q21:R38")
Range("Y3:Z20").Select
Selection.Cut Destination:=Range("Q39:R56")
Range("AC3:AD18").Select
Selection.Cut Destination:=Range("Q57:R72")
Range("Q57:R72").Select
ActiveWindow.SmallScroll Down:=-21
Range("S1:AE2").Select
Selection.ClearContents
Range("A3:B3").Select
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.Shapes.AddChart2(240, xlXYScatterSmoothNoMarkers).Select
ActiveChart.SetSourceData Source:=Range("'40min'!$A$3:$B$72")
ActiveSheet.Shapes("?O???t 1").IncrementLeft -915
ActiveSheet.Shapes("?O???t 1").IncrementTop -193.1250393701
ActiveWindow.SmallScroll Down:=-15
ActiveSheet.Shapes("?O???t 1").IncrementLeft -35.6250393701
ActiveSheet.Shapes("?O???t 1").IncrementTop -236.25
ActiveChart.ApplyChartTemplate ( _
"C:\Users\Ariyoshi-hp2017\AppData\Roaming\Microsoft\Templates\Charts\DLS.crtx")
Range("Q3:R3").Select
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.Shapes.AddChart2(240, xlXYScatterSmoothNoMarkers).Select
ActiveChart.SetSourceData Source:=Range("'40min'!$Q$3:$R$72")
ActiveChart.ApplyChartTemplate ( _
"C:\Users\Ariyoshi-hp2017\AppData\Roaming\Microsoft\Templates\Charts\DLS.crtx")
ActiveWindow.SmallScroll Down:=-12
ActiveSheet.Shapes("?O???t 2").IncrementLeft -86.25
ActiveSheet.Shapes("?O???t 2").IncrementTop -433.1250393701
End Sub

A 回答 (1件)

こんにちは


回答が無いようなので・・・

コードはほとんど見ていませんが、
>40minは記録したシートの名前です。
ということがわかっているなら、自力で修正可能だろうと推測します。

1)「シート名」が固定になっているところを検索して
2) ActiveSheet名になるように修正する
ひとまず、これでも動作するはずと思います。

どうせなら、『「固定のセル範囲」等を「アクティブシートのセル範囲」等へと置き換える』という考え方で作業した方が良いかも知れませんけれど。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!