Excel VBA 列の幅を設定する

スポンサーリンク

セルの列幅に関するプロパティとメソッド

プロパティ内容
Columnwidth
【カラムワイズ】
指定したセル範囲の列の幅を取得または設定します。
UseStandardWidth
【ユーズスタンダードワイズ】
指定したセル範囲の列幅を標準の幅に設定します。

メソッド内容
AutoFit
【オートフィット】
列の幅や行の高さをセルの文字列に合わせて調整します。

ColumnWidth【カラムワイズ】プロパティ

指定したセル範囲の列幅を取得または設定するには、Range【レンジ】オブジェクトのColumnWidth【カラムワイズ】プロパティを使用します。指定した範囲の列幅を取得して他の列に設定したり、複数の列をまとめて同じ幅に揃えたりするときに使用します。

Columnwidth【カラムワイズ】プロパティの書式と設定値の説明

【取得】
オブジェクト.ColumnWidth
【設定】
オブジェクト.ColumnWidth = 設定値

  • オブジェクト
    列の幅を取得または設定するセル範囲をRange【レンジ】オブジェクトで指定します。列幅を取得する場合は単一のセルを指定します。セル範囲を指定した場合はセル範囲の最初のセルの幅が返ります。
  • 設定値
    列の幅を標準フォント1文字(半角英数)を1とする単位で指定します。

列幅を取得するコード例

Sub 幅取得()
Dim 幅 As Single
 幅 = Range("A1").ColumnWidth
 MsgBox 幅
End Sub

実行結果

列幅を設定するコード例

Sub 幅設定()
  Range("A:B").ColumnWidth = 15
End Sub

実行結果

UseStandardWidth【ユーズスタンダードワイズ】プロパティ

指定したセル範囲の列幅を標準の幅に戻すには、Range【レンジ】オブジェクトのUseStandardWidth【ユーズスタンダードワイズ】プロパティを使用します。値の取得および設定が可能です。値の取得の戻り値はブール型(Boolean)で、指定範囲が標準幅の場合は「True」標準幅ではない場合は「False」が返ります。

UseStandardWidth【ユーズスタンダードワイズ】プロパティの書式と設定値の説明

【取得】
オブジェクト.UseStandardWidth
【設定】
オブジェクト.UseStandardWidth = 設定値

  • オブジェクト
    値を取得する場合は調査するセルやセル範囲、設定する場合は標準幅に戻すセルやセル範囲をRange【レンジ】オブジェクトで指定します。
  • 設定値
    標準幅に戻す場合は「True」を設定します。

A列の幅が標準幅か確認するコードと解説

Sub 幅確認()
Dim 標準幅 As Boolean
    標準幅 = Range("A1").UseStandardWidth
  If 標準幅 Then
    MsgBox "標準幅です。"
  Else
    MsgBox "標準幅ではありません。"
  End If
End Sub
2行目【Dim 標準幅 As Boolean】
Dim【ディム】ステートメントを使用して変数「標準幅」を宣言し、As【アズ】キーワードを使用して変数のデータ型をブール型(Boolean)に指定します。


3行目【標準幅 = Range(“A1”).UseStandardWidt】
列幅が標準幅かどうかをブール型(TrueかFalse)で返す、Range【レンジ】オブジェクトのUseStandardWidt【ユーズスタンダードワイズ】プロパティを使用して、A1セルの幅を標準幅かどうか判定し、戻り値をブール型の変数「標準幅」に代入します。


4~5行目【If 標準幅 Then
MsgBox “標準幅です。”】

Ifステートメントを使用して条件分岐します。変数「標準幅」の値が満たすとき(True)のときを定義してMsgBox【メッセージボックス】関数を使用して、標準幅であることをユーザーに伝えます。


6~7行目【Else
MsgBox “標準幅ではありません。”】

Else【エルズ】キーワードを使用して条件を満たさなかったとき、つまり変数「標準幅」の値が「False」だったときの処理を定義します。MsgBox関数を使用して標準幅ではないことをユーザーに伝えます。

実行結果


すべてのセルを標準幅に戻すコード例

Sub 標準幅()
  Cells.UseStandardWidth = True
  MsgBox "すべてのセル幅を標準値にしました。"
End Sub

AutoFit【オートフィット】メソッド

列の幅をセルに表示されている値に合わせて自動調整するには、Range【レンジ】オブジェクトのAutoFit【オートフィット】メソッドを使用します。列幅は列内に入力されている一番長い値に合わせて調整されます。

AutoFit【オートフィット】メソッドの書式と設定値の説明

オブジェクト.AutoFit

  • オブジェクト
    Columns【カラムス】プロパティを使用してセルの列を表す、Range【レンジ】オブジェクトを取得し自動調整する列を指定します。

すべての列幅を自動調整するコード例

Sub オートフィット()
 Columns.AutoFit
End Sub

A~C列の幅を自動調整するコード例

Sub オートフィット2()
 Columns("A:C").AutoFit
End Sub

以上で、列の幅を設定する方法についての解説を終了します。ありがとうございます。

スポンサーリンク

関連記事・広告