ディーンは、列の幅と行の高さをピクセルからインチに変更する方法を考えています。彼はExcelでラベルを作成したいと考えており、ラベルはインチで指定されています。

この問題に対処するための可能な方法に入る前に、Excelが行の高さと列の幅を計算する奇妙な方法を使用していることを指摘しておく必要があります。実際、行の高さは列の幅とはまったく異なる方法で計算されます。

行の高さはピクセルではなくポイントで測定されます。ピクセルは、主にモニターやプリンターなどのディスプレイデバイスに関連する相対的な測定単位です。幅が50ピクセルの場合、そのサイズ自体は、デバイスが垂直方向に表示できるピクセル数がわからなければ意味がありません。

ただし、ポイントは明確に定義されています。1インチあたり約72ポイントあるため、行の高さが72の場合は1インチの高さになります。簡単ですよね?

次に、ピクセルでもポイントでも指定されていない列幅について考えます。代わりに、使用している書体の文字幅で指定されます。たとえば、標準スタイルがCourier 10に設定されている場合、列幅が12の場合、特定の列に正確に12文字を収めることができます。使用する書体を変更すると、突然列幅も変更され、12文字を表示できるようになります。

はい、そのアプローチは本当に間抜けです。また、Excelでデザインラベルのようなことをするのが非常に難しくなります。システムで動作するように設計されたものが得られる場合がありますが(試行錯誤の末)、ワークブックを友人に転送すると、システムで動作しない可能性が高くなります。どうして?システムでの書体のレンダリング方法は、実際の書体とはまったく異なる場合があるためです。

正直なところ、ラベルを処理する最良の方法は、Wordでラベルを処理することです。

ラベルデータをExcelワークシートに保持できますが、Wordで差し込み印刷を使用して実際のラベルを作成します。ラベル用に提供されているツールは、Excelで実行できるツールよりもはるかに簡単で正確です。

どうしてもExcelで行う必要がある場合は、ページレイアウトビューに切り替える必要があります。 (リボンの[表示]タブを表示し、[ブックビュー]グループの[ページレイアウト]ツールをクリックします。)これにより、行の高さと列の幅を設定するためのガイドとして使用できる水平定規と垂直定規の両方が画面に表示されます。

ページレイアウトビューで作業することには、もう1つの興味深い副作用があります。

リボンの[ホーム]タブを表示し、(フォーマットツールから)行の高さと列の幅を設定するコマンドを使用すると、両方がインチで指定されていることに注意してください。通常のビューに戻った場合にのみ、不条理な文字数の列幅に戻ります。

マクロを使用して高さと幅を設定したい場合は、WidthHeightInchesマクロが役立つ場合があります。

Sub WidthHeightInches()

Dim Temp As String     Dim RInch As Single     Dim CInch As Single     Dim WPChar As Double     Dim c As Range     Dim r As Range

Temp = InputBox("Row height in inches?")

RInch = Val(Temp)

If RInch > 0 And RInch <= 2 Then         Temp = InputBox("Column width in inches?")

CInch = Val(Temp)

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

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

Next r         End If     End If End Sub

列幅は、セルに水平方向に収まる桁数で指定されることに注意してください。このマクロの中心は、1桁の幅をポイントで計算します。これは、ポイント単位の列の幅(.Widthプロパティ)を文字単位の列幅(.ColumnWidthプロパティ)で除算することによって行われます。次に、この値を使用して、必要な幅にするために列の幅を何文字にするかを計算します。

注:

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

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

このヒント(8768)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice365のExcelに適用されます。