LinkBack Thread Tools Search this Thread Display Modes
Prev Previous Post   Next Post Next
  #1   Report Post  
Posted to microsoft.public.excel.charting,microsoft.public.excel.programming
external usenet poster
 
Posts: 7
Default square chart insidewidth insideheight

How to gain control over dimensions in a chart such that the print
exactly as meant, e.g. with both the X and Y axes 5 cm (or 2" if you like)?

There has bean a thread in 1999 on making square charts that make a few
helpful suggestions which can still be found on google:
http://groups-beta.google.com/group/...effe414a793efd

Slightly adapted a VBA routine that makes the inside of the plot area a
square, looks like "SquareGraphArea" added below. Although it seems not
very elegant to set InsideWidth and InsideHeight this way it works! That
is on Excel 97 SR-2 it works but on Excel 2000 the behaviour is somewhat
unexpected (both under Win2k but on different computers).

The code <.Width = .Width + step increases with by something like 9 to
12 irrespective of the value of step. As can be checked by the macro
"XandYsteps" also added below.

The effect is that the inside area is most times almost a square
seldomly exactly. What is happening? Why this behaviour? How to get
better results?

Kind regards,
Janwillem

emailreplace xyz -- jwe


Sub SquareGraphArea()
'After Bill Koran
'http://groups-beta.google.com/group/microsoft.public.excel.charting/browse_frm/thread/3a14742eebec87b/9b9376ec334e803d?lnk=st&q=excel++plotarea+insidewi dth+koran&rnum=1&hl=en#9b9376ec334e803d
Dim eps As Double, step As Double

Application.ScreenUpdating = False
step = 1#
eps = 1#

With ActiveChart.PlotArea
If Abs(.InsideHeight - .InsideWidth) eps Then
.Height = .Width / 2
If .InsideHeight .InsideWidth Then
.Width = .Height / 2
Do While (.InsideHeight - .InsideWidth eps)
.Width = .Width + step
Loop
Else
.Height = .Width / 2
Do While (.InsideWidth - .InsideHeight eps)
.Height = .Height + step
Loop
End If
End If
End With
Application.ScreenUpdating = True

End Sub

Sub XandYsteps()
Dim Xstep As Double, Ystep As Double, step As Double
Dim line As String

step = InputBox("Step size")
Xstep = ActiveChart.PlotArea.Width
ActiveChart.PlotArea.Width = ActiveChart.PlotArea.Width + step
Xstep = ActiveChart.PlotArea.Width - Xstep

Ystep = ActiveChart.PlotArea.Height
ActiveChart.PlotArea.Height = ActiveChart.PlotArea.Height + step
Ystep = ActiveChart.PlotArea.Height - Ystep

line = "Step=" & step & " Xstep=" & Xstep & " Ystep=" & Ystep
MsgBox (line)
End Sub
 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
How do I a rotate my square radar chart (square-diamond)? Becs I Know Nathing Charts and Charting in Excel 5 April 3rd 23 07:30 PM
Excel chart with a square axis Greg Excel Discussion (Misc queries) 1 October 31st 08 02:05 PM
Change insidewidth property M Selvaraj Charts and Charting in Excel 1 April 23rd 06 01:07 PM
how to center a square plot area in a square chart xppuser Charts and Charting in Excel 2 March 11th 06 08:13 AM
square chart insidewidth insideheight Janwillem van Dijk Charts and Charting in Excel 9 July 31st 05 09:19 PM


All times are GMT +1. The time now is 02:04 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"