行の高さと列の幅の数値が異なる理由!単位の説明や長さを揃えて正方形にする方法など

便利技

今回は行の高さと列の幅の数値が異なる理由と、それぞれの単位、さらには長さを揃えて正方形にしたりなどする方法について紹介します。

行の高さ・列の幅に同じ数値を打ち込んでも正方形にはなりません。

その仕組みについても説明しますのでぜひ参考にしてみてください。

それでは見ていきましょう。




⬛︎行の高さと列の幅の単位について

まずは単位の説明をしたいと思います。

・行の高さの単位とは

行の高さの単位は「ポイント」になります。
そして高さを指定する際もポイントが基本の単位のなっています。
ではポイントとは一体どのくらいの長さなのでしょうか。

結論として、1ポイント=約0.3528mmです。
内訳としては1ポイントは1/72インチであり、1インチは25.4mmです。

・列の幅の単位とは

今度は列の幅の単位を見てみましょう。

列の幅の単位を表すのであれば「文字数」になります。
さらに詳しく説明すると「設定した規定フォントの半角文字数」となります。

一例で説明すると列の幅が「5」の場合は設定したフォントの半角の「5文字分」となります。

では既定フォントとは何か説明しましょう。
既定フォントは「ファイル」から「オプション」を選択し、「Excelのオプション」というメニューにあります。

新しいブック作成時という項目に「次を既定フォントとして使用」とありますが、ここで選択しているフォントが既定フォントになります。

・行の高さと列の幅の相違について

では単位のまとめです。


行の高さの単位は「ポイント」
列の幅の単位は「既定フォントの半角文字数」


つまり単位が違うので同じ数値を入力しても正方形にならないことがわかりました。

⬛︎行の高さと列の幅を揃えるには

では行の高さと列の幅を揃えて正方形をつくってみましょう。

方法としては2通りあります。

①手動で変更する方法
②VBAを用いて変更する方法

①は初心者の方でも変更できますが、②はVBAの知識が必要になります。

VBAを身につけたい方は本サイトでもまとめてますので参考にしてみてください。

・①手動で変更する方法

まず手動で変更する方法です。
初心者の方でもすぐにできる方法になってます。

では行の高さ・列の幅を調整する際に出てくる数値を見てみましょう。

それぞれ数値の隣に「ピクセル」という単位がありますね。
ピクセルとは画面に表示する際などの点のことを意味します。
こちらは列と行共に同じ尺度を持っています。

つまりピクセルを揃えれば行の高さと列の幅を同じ長さにすることができます

では手動で2行目の列を100ピクセルに合わせてみましょう。

結果はこのようになります。

狙い通り正方形を作成することができました。

・②VBAを用いて変更する方法

こちらはVBAで行の高さ・列の幅を変更できる知識が必要になってきます。

詳細についてはこちらから☟

【マクロVBA㉜】行の高さ・列の幅を指定の数字・ポイント・センチに変更、自動調整する方法 ► 独学エクセル塾 (dokugakuexcel.com)

・ピクセルで行の高さと列の幅を揃える

まず、ピクセルでの調整方法を見ていきましょう。

行の高さの単位である「ポイント」をピクセルに換算すると下記の式になります。
500ピクセル=300➡1ピクセル=0.6ポイント

対する列の幅をピクセルに直すとこのようになります。
500ピクセル=54.78(文字数)➡1ピクセル=0.10956(文字数)

ちなみに500ピクセルで求める必要はありませんが、数値が大きいほど誤差は
少なくなります。是非ご自身のPCで確認してみてください

ではVBAの式を見てみましょう。
今回は見本で5行目と5列目50ピクセルにします。

Sub ピクセルを用いてセルを正方形にする()

Dim Pixel As Variant

Pixel = 50 ‘変換したいピクセル量を入力

Rows(5).RowHeight = Pixel * 0.6
Columns(5).ColumnWidth = Pixel * 0.10956

End Sub

実行した結果はこのようになります。

50ピクセルの正方形が出来ました。

・センチで行の高さと列の幅を揃える


行の高さの変更は

Rows(高さを変更したい行数).RowHeight=変更したい高さの数値

列の幅を変更したい場合は

Columns(幅を変更したい列数).ColumnWid th=変更したい列の幅の数値

となります。

しかしこのままでは行の高さは「ポイント」、列の幅は「文字数」と基準が違ってきます。

なので変更したい高さ・幅の数値の項目に
「Application.CentimetersToPoints=(変更したいセンチの数値を当てはめます。

さらに列に関しては「文字数」に「ポイント」を割って掛けてあげないといけないので「Application.CentimetersToPoints=(変更したいセンチの数値)* Columns(幅を変更したい列数).ColumnWidth/Columns(幅を変更したい列数).Width」となります。

これにより単位はセンチに統一され同じ数値を入力すると正方形になります。

なので結論として
行の高さは「Rows(高さを変更したい行数).RowHeight= Application.CentimetersToPoints(変更したいセンチの数値)」
列の幅は「Columns(幅を変更したい列数).ColumnWidth= Application.CentimetersToPoints(変更したいセンチの数値)* Columns(幅を変更したい列数).ColumnWidth/Columns(幅を変更したい列数).Width」となります。

では実際に2行目の3(C)列目2センチの正方形にしてみましょう。

プログラムはこのようになります。

Sub 行の2行目と列の3列目を2センチの正方形に()

Rows(2).RowHeight = Application.CentimetersToPoints(2)

Columns(3).ColumnWidth = Application.CentimetersToPoints(2) * Columns(3).ColumnWidth / Columns(3).Width

End Sub

実行した結果はこのようになります。

無事正方形にできましたね。

⬛︎まとめ

いかがだったでしょうか。
行の高さと列の幅の単位が異なる事は
調べないとわからない事です。

さらにそれが原因で長さを揃えれないとは少し不便ですよね。

なので本記事を参考に一歩踏み込んだ調整方法を行ってみてください。
それでは次回の記事でお会いしましょう。

コメント