title: How to set column width in absolute units?
body: <p>I want to make it so the margins and column widths in a spreadsheet are the same regardless of the user settings so that it prints the same for all users.</p>
  <p>The method I came up with involves two macros.<br />
  One macro to measure the rows, columns, and margins and store it in cells on the Excel document on a PC where everything prints like it should.<br />
  The second macro to take those values and set the margins etc. to the correct values before the user prints.</p>
  <p>My problem was that the ColumnWidth function measures rows in units tied to the default font, which can be changed in the user settings.  To get around this, I tried <code>.width</code> (which measures in pts), but I learned that this function can measure width but can't set it.</p>
  <p>I realized that all I had to do was pick a column to measure in the second macro, and use that measurement and the original measurement to derive a conversion factor.</p>
  <p>The column measuring portion of the first macro:</p>
  <pre><code> 'Collumn Width
    .Cells(249, 84).Value = .Cells(1, 1).Width
    For i = 1 To 65
       .Cells(250 + i, 81).Value = .Cells(1, i).ColumnWidth
    Next i
  </code></pre>
  <p>The column width setting portion of the second macro with the appropriate conversion factor:</p>
  <pre><code>'Set Column Widths
  '[column width in current font]
  '*[correct width of any collumn in pts]/[current width of same column in pts]
  For j = 1 To 65
  With ActiveWorkbook.ActiveSheet
      .Columns(j).ColumnWidth = .Cells(250 + j, 81).Value * _
          .Cells(249, 84).Value / .Cells(1, 1).Width
  End With
  Next j
  </code></pre>