Excelの(多くの)イライラする点の1つは、さまざまな測定単位を使用して行の高さと列の幅を指定することです。

行の高さは非常に単純です—ポイントで測定されます。ただし、列幅は文字幅で測定されます。標準スタイルがCourier10に設定されている場合、列幅が12の場合、特定の列に正確に12文字を収めることができます。プロポーショナルフォントの場合、文字0を使用して文字をカウントします。 (うん、それはばかげている。)

これにより、特定のセルの高さと幅を一致させて正方形を作成する場合に問題が発生します。幸いなことに、小さなマクロウィザードを使用すると、この奇妙なExcelをバイパスして、目的の結果を得ることができます。 MakeSquareマクロについて考えてみましょう:

Sub MakeSquare()

Dim WPChar As Double     Dim DInch As Double     Dim Temp As String          Temp = InputBox("Height and width in inches?")

DInch = Val(Temp)

If DInch > 0 And DInch < 2.5 Then         For Each c In ActiveWindow.RangeSelection.Columns             WPChar = c.Width / c.ColumnWidth             c.ColumnWidth = ((DInch * 72) / WPChar)

Next c         For Each r In ActiveWindow.RangeSelection.Rows             r.RowHeight = (DInch * 72)

Next r     End If End Sub

このマクロは、作成する正方形の寸法の入力を求め、各セルを設定するための幅と高さを正確に計算します。

単一のセルを選択してマクロを実行することも、より大きな選択セットを作成することもできます。

「数学の魔法」は、WPChar変数の計算で行われます。これは、ポイント単位の列の幅(Widthプロパティによって返される)を文字単位の列の幅(ColumnWidthプロパティによって返される)で除算することによって得られる値に設定されます。この値は、現在の設定での文字のポイント数であり、次のプログラム行の幅を設定するために使用する文字数を計算するために使用されます。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

link:/ excelribbon-ExcelTipsMacros [ここをクリックして、新しいブラウザタブでその特別なページを開きます]

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(1943)は、Microsoft Excel 97、2000、2002、および2003に適用されます。