- 締切済み
エクセルのグラフをマクロで縮小化したい
office2007。Vistaを使用。 エクセルのグラフを縮小するマクロを記録ボタンで作成しました。画面上は縮小されるのですが、「マクロの記録」ではそれが記録されません。office2003で作成したときは zoom を使用したような気がしますが、2007ではどうしたらよいのでしょうか?お教えください。A1B5 にデータが入っています。 Sub Macro1() ' Macro1 Macro Range("B2").Select ActiveSheet.Shapes.AddChart.Select ActiveChart.SetSourceData Source:=Range("'Sheet1'!$A$1:$B$5") ActiveChart.ChartType = xlColumnClustered ActiveChart.Location Where:=xlLocationAsNewSheet ActiveSheet.ChartObjects("グラフ 1").Activate ActiveSheet.ChartObjects("グラフ 1").Activate Sheets("Sheet1").Select Range("A1").Select End Sub
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- end-u
- ベストアンサー率79% (496/625)
>ActiveChart.Location Where:=xlLocationAsNewSheet という事は、シート上のグラフではなくて、グラフシートの場合でしょうか? その後に続く >ActiveSheet.ChartObjects("グラフ 1").Activate >ActiveSheet.ChartObjects("グラフ 1").Activate >Sheets("Sheet1").Select >Range("A1").Select ここで縮小の操作が記録されなかったのは、グラフエリアをマウスを使ってサイズ変更したからでしょう。 表示の縮小であれば、[表示]タブの[ズーム]を使えばマクロ記録されます。 Sub Macro1() ' ' Macro1 Macro ' ' ActiveSheet.Shapes.AddChart.Select ActiveChart.SetSourceData Source:=Range("'Sheet1'!$A$1:$B$5") ActiveChart.ChartType = xlColumnClustered ActiveChart.Location Where:=xlLocationAsNewSheet ActiveWindow.Zoom = 100 End Sub 2003との互換を考慮すると以下。 Sub test() With Charts.Add .ChartType = xlColumnClustered .SetSourceData Source:=Sheets("Sheet1").Range("A1:B5"), PlotBy:=xlColumns End With ActiveWindow.Zoom = 100 End Sub
- xls88
- ベストアンサー率56% (669/1189)
下記で試してください。 With ActiveSheet.ChartObjects("グラフ 1").ShapeRange .ScaleWidth 0.6, msoFalse, msoScaleFromTopLeft .ScaleHeight 0.6, msoFalse, msoScaleFromTopLeft End With Left、Top、Width、Height、各プロパティの値を、指定セル範囲の大きさにすることが出来ます。 With ActiveSheet.ChartObjects("グラフ 1") .Left = Range("D2:H15").Left .Top = Range("D2:H15").Top .Width = Range("D2:H15").Width .Height = Range("D2:H15").Height End With あと、グラフ作成ウイザードでは、 ActiveChart.Location Where:=xlLocationAsNewSheet というように、グラフ作成後場所を決めていますが ActiveSheet.ChartObjects.add を、使えば直接シート上にグラフを描画することができます。
お礼
まさにご指摘の通りで、グラフエリアをマウスを使ってサイズ変更したからでした。たしかに、[表示]タブの[ズーム]を使うとマクロ記録されました。今まで悩んでいましたがやっと解決し、すっきりしました。どうも有り難うございました。