Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.charting
|
|||
|
|||
![]()
hi all,
i have recorded a macro to produce a square chart containing a square plot. i wish if it's at all possible to have the square plot centered within the chart. is there a way to do this? below is the macro routine that i have recorded in case there is a sub that can be inserted into the macros to center the plot area within the chart area. thank you, jes Sub squareGraph() ' ' squareGraph Macro ' ' On Error GoTo notice ActiveChart.ApplyCustomType ChartType:=xlUserDefined, TypeName:="MyScatter" ActiveChart.Parent.Width = 350 ActiveChart.Parent.Height = 350 ActiveChart.PlotArea.Select Selection.Width = 250 Selection.Height = 250 ActiveChart.Axes(xlValue).Select Selection.TickLabels.AutoScaleFont = True With Selection.TickLabels.Font .Name = "Arial" .FontStyle = "Regular" .Size = 8 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic .Background = xlAutomatic End With ActiveChart.Axes(xlValue).AxisTitle.Select Selection.AutoScaleFont = True With Selection.Font .Name = "Arial" .FontStyle = "Bold" .Size = 8 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic .Background = xlAutomatic End With ActiveChart.Axes(xlCategory).Select Selection.TickLabels.AutoScaleFont = True With Selection.TickLabels.Font .Name = "Arial" .FontStyle = "Regular" .Size = 8 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic .Background = xlAutomatic End With ActiveChart.Axes(xlCategory).AxisTitle.Select Selection.AutoScaleFont = True With Selection.Font .Name = "Arial" .FontStyle = "Bold" .Size = 8 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic .Background = xlAutomatic End With Exit Sub notice: MsgBox ("You didn't pick a chart first") End Sub |
#2
![]()
Posted to microsoft.public.excel.charting
|
|||
|
|||
![]()
There are a few things you need to keep in mind. First, turn off the font
autoscaling. In your recorded code, the syntax is TextElement.AutoScaleFont = True; change this to False. Otherwise, the font size will change as you resize the plot area, causing the plot area to change more than you intended. Next, keep in mind that the plot area is larger than the rectangle defined by the axes. It also includes a small margin around this rectangle, plus the axis ticks and labels. The dimensions of the inner rectangle itself are read only: you want to change these dimensions, but can only do so by changing those of the plot area. Remember to allow room for the axis titles and the chart title. - Jon ------- Jon Peltier, Microsoft Excel MVP Peltier Technical Services - Tutorials and Custom Solutions - http://PeltierTech.com/ 2006 Excel User Conference, 19-21 April, Atlantic City, NJ http://peltiertech.com/Excel/ExcelUserConf06.html _______ "xppuser" wrote in message ... hi all, i have recorded a macro to produce a square chart containing a square plot. i wish if it's at all possible to have the square plot centered within the chart. is there a way to do this? below is the macro routine that i have recorded in case there is a sub that can be inserted into the macros to center the plot area within the chart area. thank you, jes Sub squareGraph() ' ' squareGraph Macro ' ' On Error GoTo notice ActiveChart.ApplyCustomType ChartType:=xlUserDefined, TypeName:="MyScatter" ActiveChart.Parent.Width = 350 ActiveChart.Parent.Height = 350 ActiveChart.PlotArea.Select Selection.Width = 250 Selection.Height = 250 ActiveChart.Axes(xlValue).Select Selection.TickLabels.AutoScaleFont = True With Selection.TickLabels.Font .Name = "Arial" .FontStyle = "Regular" .Size = 8 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic .Background = xlAutomatic End With ActiveChart.Axes(xlValue).AxisTitle.Select Selection.AutoScaleFont = True With Selection.Font .Name = "Arial" .FontStyle = "Bold" .Size = 8 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic .Background = xlAutomatic End With ActiveChart.Axes(xlCategory).Select Selection.TickLabels.AutoScaleFont = True With Selection.TickLabels.Font .Name = "Arial" .FontStyle = "Regular" .Size = 8 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic .Background = xlAutomatic End With ActiveChart.Axes(xlCategory).AxisTitle.Select Selection.AutoScaleFont = True With Selection.Font .Name = "Arial" .FontStyle = "Bold" .Size = 8 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic .Background = xlAutomatic End With Exit Sub notice: MsgBox ("You didn't pick a chart first") End Sub |
#3
![]()
Posted to microsoft.public.excel.charting
|
|||
|
|||
![]()
Thank you Jon. Once I have auto-scaling turned off, the resulting chart's
plot area is more acceptably centered. jes "Jon Peltier" wrote: There are a few things you need to keep in mind. First, turn off the font autoscaling. In your recorded code, the syntax is TextElement.AutoScaleFont = True; change this to False. Otherwise, the font size will change as you resize the plot area, causing the plot area to change more than you intended. Next, keep in mind that the plot area is larger than the rectangle defined by the axes. It also includes a small margin around this rectangle, plus the axis ticks and labels. The dimensions of the inner rectangle itself are read only: you want to change these dimensions, but can only do so by changing those of the plot area. Remember to allow room for the axis titles and the chart title. - Jon ------- Jon Peltier, Microsoft Excel MVP Peltier Technical Services - Tutorials and Custom Solutions - http://PeltierTech.com/ 2006 Excel User Conference, 19-21 April, Atlantic City, NJ http://peltiertech.com/Excel/ExcelUserConf06.html _______ "xppuser" wrote in message ... hi all, i have recorded a macro to produce a square chart containing a square plot. i wish if it's at all possible to have the square plot centered within the chart. is there a way to do this? below is the macro routine that i have recorded in case there is a sub that can be inserted into the macros to center the plot area within the chart area. thank you, jes Sub squareGraph() ' ' squareGraph Macro ' ' On Error GoTo notice ActiveChart.ApplyCustomType ChartType:=xlUserDefined, TypeName:="MyScatter" ActiveChart.Parent.Width = 350 ActiveChart.Parent.Height = 350 ActiveChart.PlotArea.Select Selection.Width = 250 Selection.Height = 250 ActiveChart.Axes(xlValue).Select Selection.TickLabels.AutoScaleFont = True With Selection.TickLabels.Font .Name = "Arial" .FontStyle = "Regular" .Size = 8 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic .Background = xlAutomatic End With ActiveChart.Axes(xlValue).AxisTitle.Select Selection.AutoScaleFont = True With Selection.Font .Name = "Arial" .FontStyle = "Bold" .Size = 8 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic .Background = xlAutomatic End With ActiveChart.Axes(xlCategory).Select Selection.TickLabels.AutoScaleFont = True With Selection.TickLabels.Font .Name = "Arial" .FontStyle = "Regular" .Size = 8 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic .Background = xlAutomatic End With ActiveChart.Axes(xlCategory).AxisTitle.Select Selection.AutoScaleFont = True With Selection.Font .Name = "Arial" .FontStyle = "Bold" .Size = 8 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic .Background = xlAutomatic End With Exit Sub notice: MsgBox ("You didn't pick a chart first") End Sub |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
is it possible two different colours in a chart plot area ? | Charts and Charting in Excel | |||
excel should make it easier to have a 1 to 1 plot area in chart | Charts and Charting in Excel | |||
Resize chart area without resizing plot area | Charts and Charting in Excel | |||
How do I alter plot area colour in a chart without a mouse? | Charts and Charting in Excel | |||
Setting custom chart causes plot area to collapse | Charts and Charting in Excel |