エクセルVBAで使うコードの備忘録。VBAでワークシートの行や列の幅を変更や自動調整を行うコード。
行の高さを変更する
行(横方向)の高さを調整するには行を含むセルか行全体を表すオブジェクトに対してRowHeightプロパティの値変更すればOKです(ちなみにHeightというプロパティもありますが、これは読み取り専用で値は設定できませんので注意)。
なお、コードを使用する際はカッコに囲まれた部分([***])を自分のプログラムに合わせて変更してください。
サンプルコード(行の高さを変更する)
Public Sub ChangeRowHeight()
'--- ワークシートオブジェクトを設定 ---'
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("[ワークシート名]")
'--- 調整する行の行番号 ---'
Dim rowIndex As Long
rowIndex = [行番号]
'--- 指定した行の高さを変更する ---'
ws.Rows(rowIndex).RowHeight = [行の高さ]
End Sub
ちなみに、入力されている値に応じて高さを調整する(マウス操作で言うと、行の境界を選択してダブルクリックするときの動作)場合は、AutoFitメソッドを使います。
サンプルコード(行の高さを自動調整する)
Public Sub AutoFitRowHeight()
'--- ワークシートオブジェクトを設定 ---'
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("[ワークシート名]")
'--- 調整する行の行番号 ---'
Dim rowIndex As Long
rowIndex = [行番号]
'--- 指定した行の高さを自動調整する ---'
Call ws.Rows(rowIndex).AutoFit
End Sub
列の幅を変更する
列の場合も基本的には同じで、Rowに対する操作がすべてColumnに対するものになり、調整対象がHeightではなくWidthになります。
列(縦方向)の幅を調整するには列を含むセルか列全体を表すオブジェクトに対してColumnWidthプロパティの値変更すればOKです(ちなみにWidthというプロパティもありますが、これは読み取り専用で値は設定できませんので注意)。
サンプルコード(列の幅を変更する)
Public Sub ChangeColumnWidth()
'--- ワークシートオブジェクトを設定 ---'
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("[ワークシート名]")
'--- 調整する列の列番号 ---'
Dim colIndex As Long
colIndex = [列番号]
'--- 指定した列の幅を変更する ---'
ws.Columns(colIndex).ColumnWidth = [列の幅]
End Sub
入力されている値に応じて幅を調整する(マウス操作で言うと、列の境界を選択してダブルクリックするときの動作)場合も行と同様で、AutoFitメソッドを使います。
サンプルコード(列の幅を自動調整する)
Public Sub AutoFitColumnWidth()
'--- ワークシートオブジェクトを設定 ---'
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("[ワークシート名]")
'--- 調整する列の列番号 ---'
Dim colIndex As Long
colIndex = [列番号]
'--- 指定した列の幅を変更する ---'
Call ws.Columns(colIndex).AutoFit
End Sub