Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

In Microsoft Excel,

alt text

I want to make the height of first three rows and first four columns (12 cells in the top left corner) such that these cells are squares. How can this be done?


Surprisingly, Excel says:

Row height: 15
Column width: 8.43

So, these are not on the same scale.

Making both of them 8.43 gives me this:

alt text

Now, what should I do?

share|improve this question
5  
See this article. –  Lance Roberts Jul 20 '10 at 15:07
1  
Because there seems to be a lot of confusion as to what you meant, I've changed your title. Feel free to change it back or edit it if that was not your intention. –  Sasha Chedygov Jul 20 '10 at 21:10

16 Answers 16

One more way...change your view to Page Layout. This changes the grid scale to inches, and then you can specifically set both height and width to the same value (e.g..25 inches). IMO page layout is the best standard view for working on the appearance of the spreadsheet.

Here's an example with the actual dimensions for both views:

Square Cells

share|improve this answer

Excel's column width is measured by the number of zeros (0) that can fit in the cell at the Normal style. To convert to points (how row height is measured), see

http://www.dailydoseofexcel.com/archives/2004/06/01/column-widths-in-points/

If you don't need to be exact, just eyeball it. If you do need to be closer than eyeballing, put a square from the Drawing toolbar on your sheet and size it. If you want it 10 x 10, use code like this:

sheet1.Shapes(1).Height = 10
sheet1.Shapes(1).Width = 10
sheet1.Shapes(1).Top = sheet1.Shapes(1).TopLeftCell.Top
sheet1.Shapes(1).Left = sheet1.Shapes(1).TopLeftCell.Left

Then you can manually size your row and column to fit the square and read the height and columnwidth.

share|improve this answer
1  
I'd think with a program as powerful as Excel that something as simple as this would be easier. But it's not. –  Sasha Chedygov Jul 20 '10 at 21:12
10  
That's because Excel is a spreadsheet/accounting program, not a document layout engine. It also makes little sense to give absolute heights/widths to cells since different systems use different default fonts, which have different character dimensions. Using relative units like em makes more sense. –  Lèse majesté Jul 20 '10 at 23:18

Select all (or the rows/cols you need), then drag to resize to your desired size.

  1. Drag a column header's edge to resize the column width. A tooltip appears with the exact pixel count.
  2. Remember the pixel value!
  3. Drag a row header's edge to resize row height, it works the same way.
  4. Drag to the same pixel value.

Done!

share|improve this answer

VBA seems a little overkill for such a simple outcome.. If you click and hold when you go to drag to change the row/col size, the size in pixels is shown in brackets. These units are not scaled and thus if you set the row and column sizes to equal pixels, they will be square. Of course, this is a manual process.. but you can find the equivalent sizes and then select a range of rows/columns and set all of their sizes at once.

share|improve this answer

First, select the cells you want to resize. Then on the Home tab, go to Cells box and click on Format option. Here you can change the Row Height and Column Width of the selected cells as you want.

share|improve this answer

Here is a VBA solution.

Private Sub MakeSquareCells()

'//  Create graph paper in Excel see    http://www.erlandsendata.no/english/index.php?d=envbawssetrowcol  if you want cm or inches


    Set Cursheet = ActiveSheet

    'don't drive the person crazy watching you work
    UpdateScreen = Application.ScreenUpdating
    Application.ScreenUpdating = False
    With wksToHaveSquareCells
        .Columns.ColumnWidth = 5 '// minimum 2, max 400 ; above 7 --> zoom doesn't work nice
        .Rows.EntireRow.RowHeight = .Cells(1).Width
        '// ActiveWindow.Zoom = true
    End With

    Application.ScreenUpdating = UpdateScreen
    Cursheet.Activate           '// Reactivate sheet that has been active at entrance of this subroutine

End Sub
share|improve this answer

You need to be aware that what is mathematically a square and what is visually a square are different. Not all monitors are made the same way. Typically pixels are wider than they are tall.

Look at the following picture:

enter image description here

Each red, green, and blue subpixel make up the whole pixel. As you can see, the combination of the 3 are wider than the height of 1 subpixel. In most cases, the difference is subtle, and most people might not notice it. However, in some cases, people do.

share|improve this answer

I wanted to make a perfect square grid for a sewing project and kept getting all kinds of weird answers for this question, so I decided to play with it myself to figure it out. I discovered it's impossible to get a perfect square, but I came as close as you can get, just a sliver off.

  1. Highlight the squares you want to format.
  2. Go to the format tab.
  3. Format the column width at 12.43
  4. Then format the cell height to 75.00.

Using a ruler I found I was just a fraction off at 7 and 10 inches in length. Hope this helps.

share|improve this answer

Click and drag on the border between the rows. To resize more than once column/row at a time, select them all, right click and click "Row Height..." and set it to the same height as the rows are wide.

share|improve this answer
  • Select the columns (click the A column, then hold shift and click the other end)

  • Right click on one of the columns, click Column Width and then enter a new value.

  • You can do the same with a row, then click Row Height to get the height of a row.

share|improve this answer

If you wanted to do it for the whole sheet, you could use this trick - which may be helpful anyway: click the box to the left of column heading A to select all cells; click on and drag one of the column header dividers to the size you want, noting the number of pixels for the resulting cell width (I'm using Excel 2007, which shows this); do the same for one of the row label dividers, matching it to the column width by pixels. This should make all cells in the sheet boxes. Which of course is not what you asked, but I had hoped this trick would work with a subset of cells. Unfortunately it doesn't.

share|improve this answer

This does the trick pretty neatly using VBA. Set a uniform rowHeight, then use the Width property (returns column size in points) and divide RowHeight by it to get a unit-less height/width ratio. Make the new ColumnWidth that times the original ColumnWidth to make make everything square.

    Sub makeSquares() 
    Cells.RowHeight = 20
    With Cells(1, 1)
    W = .ColumnWidth
    HWratio = .RowHeight / .Width
    Cells.ColumnWidth = W * HWratio
    End With
    End Sub
share|improve this answer

If you want to make row & column looks square, please select all cells those you want to make square and change the height of row to 28.8 AND change the width of column to 4.56.

share|improve this answer

I use a ratio of 5-1/3, row height to column width.

For example, make a row 53.33 high, and the column-width 10, or 106.66 and 20, respectively, and you will be close enough for government work.

share|improve this answer

A simple solution

  • select all cells
  • drag the columns to a desired pixel size (you will see the column size in both points and pixels as you drag and resize the columns)
  • repeat for rows (choosing the same number of pixels)
  • this should give you perfect square sized cells across the worksheet
share|improve this answer

Excel 2010 Adjusting in Page Layout view and then switching back to Normal view does not work. I was able to validate by using the drawing tools and making a perfect square in the Normal view. This is the easiest method to make squares any size.

Column Width = 2.71 Row Height = 18.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.