教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

ExcelVBAでフォーム内のリストボックス内の列幅を設定する方法

構文

構文は以下の通りです。

リストボックス名.ColumnWidths = "幅1;幅2;幅3"

解説

リストボックス名は、フォームに配置したリストボックスの名前を指定します。ColumnWidthsは、リストボックス内の各列の幅を設定します。幅1;幅2;幅3は、各列の幅をピクセル単位で指定します。複数の列がある場合、それぞれの幅をセミコロンで区切って指定します。単位はピクセルで、数値だけを記入します。例えば、3列あるリストボックスで、1列目を100ピクセル、2列目を150ピクセル、3列目を200ピクセルに設定したい場合は次のように書きます。

プログラミング例

具体的なプログラミング例を紹介します。

Private Sub UserForm_Initialize()
    ' リストボックスに項目を追加
    リストボックス1.AddItem "項目1"
    リストボックス1.AddItem "項目2"
    リストボックス1.AddItem "項目3"
    ' 列幅を設定(100ピクセル、150ピクセル、200ピクセル)
    リストボックス1.ColumnWidths = "100;150;200"
End Sub

上記のプログラムは、リストボックス1.ColumnWidths = "100;150;200"でリストボックス内の3列の幅をそれぞれ100ピクセル、150ピクセル、200ピクセルに設定しています。

まとめ

リストボックス内の列幅を指定するためには、ColumnWidthsを使用します。複数の列がある場合、幅をセミコロンで区切って指定します。フォームを初期化する際に列幅を設定し、リストボックスに項目を追加することができます。