今回はExcel VBAで行と列の幅を指定する方法を解説します。
ColumnWidthプロパティ
列の幅の指定は、以下のようにColumnWidthプロパティを使って実行可能です。
Columns(1).ColumnWidth = 列幅(整数)
詳しくは以下で解説します。
プロパティとは何か
プロパティ(Property)は日本語では”属性”と訳されます。属性というのは、共通して備わっている特徴のことです。人間は共通して”目”を持っていて、鯨は共通してヒレを持っています。人間の属性の一つが”目”であり、鯨の属性の一つが”ヒレ”です。人間の属性には他にも”髪”、”腕”、”脊椎”、”肺”などがあります。
同様に、Excelのセルにも属性があります。例えばセルの値、数式、フォント、フォントの色、塗りつぶしの色、罫線の有無、セルの幅、セルの高さなど、多岐にわたります。これらのExcelのセルの属性を指定してあげるコードを書くことで、様々な操作が可能になるのです。
例えば”セルのフォントの色のプロパティを赤色にする”とか”セルの罫線のプロパティを”太線で囲む”にする”といったことが可能になります。
RowHeightプロパティ
列の幅の指定は、以下のようにRowHeightプロパティを使って実行可能です。
Rows(1).RowHeight = 行幅(整数)
詳しくは以下で解説します。
行と列の幅を指定する
では次に、具体例を挙げながら幅の指定方法を説明します。
列幅の指定(ColumnWidth)
まずは列幅の指定を説明します。以下の表では、列の幅が狭く、データが見切れています。
この表のすべての列のデータが見えるように、以下のようにColumnWidthプロパティを設定します。Columnsによる列指定は、整数での指定もできますし、””で括ることでアルファベットでの指定も可能です。なお、複数列を指定する場合は””での指定のみ可能です。
以下のコードによって、A列の幅を7、B列を12、C列の幅を6、D:E列を7で設定します。
Columns(1).ColumnWidth = 7
Columns(2).ColumnWidth = 12
Columns(3).ColumnWidth = 6
Columns(“D:E”).ColumnWidth = 7
実行結果は以下の通りです。
行幅の指定(RowHeight)
同様に、行幅の指定を説明します。以下の表では、行の幅が広すぎて下の方の行が見えず、一覧性に欠けます。
以下のようにRowHeightプロパティを設定します。Rowsによる行指定も、列指定と同様に複数列を指定する場合は””での指定のみ可能です。以下のコードによって、2行目~24行目の幅を12に設定します。
Rows(“2:24”).RowHeight = 12
実行結果は以下の通りです。
行と列の幅を自動調整する
上では、ColumnWidthプロパティとRowHeightプロパティを使用して特定の値を指定して行と列の幅を調整する方法を紹介しました。自分で幅を指定するのが煩雑な場合は、Autofitメソッドを用いて自動調整することができます。
メソッドとは何か
メソッド(Method)は英語の意味としては”方法”という意味ですが、VBAではオブジェクト(セル・行・列・シート等)に対する”命令”という意味です。VBAでよく出てくる命令の例としては、”追加せよ”、”削除せよ”、”コピーせよ”、”保存せよ”などがあります。
Autofitメソッド
以下のように、行も列も見にくくなっている表を想定します。
これに対し、行全体を選択し、選択した範囲について列方向、及び行方向についてAutofitメソッドを用いることで、”最適な幅”を設定することができます。コードは以下の通りです。
Cells.Select
Selection.Columns.AutoFit
Selection.Rows.AutoFit
Cellsというのはシート上のすべてのセルです。これを選択し、その選択範囲について、まずは列についてAutofitによって自動調整し、次に行について自動調整しています。
実行結果は以下の通りです。
ショートカット
上で紹介したAutofitメソッドによる列や行の幅の自動調整は実務で頻繁に使用するため、ショートカットを設定すると便利です。以下の記事で詳しく説明していますので、ご参照ください。
コメント