Sub TEST1()
Dim A
'作業列に値を転記
Range("E1") = Range("A1").Value
'結合セルの列幅を取得
A = Range("A1").ColumnWidth + Range("B1").ColumnWidth + Range("C1").ColumnWidth
Range("E1").ColumnWidth = A '作業列の列幅を設定
Range("E1").WrapText = True '作業列を折り返して表示
Range("E1").EntireRow.AutoFit '行の高さを自動調整'行の高さを設定
Range("A1").RowHeight = Range("A1").RowHeight
Range("E1").Clear '作業列をクリア
End Sub
では、VBAコードを実行してみます。
作業セルに値を転記します。
作業セルに値を転記
作業セルの列幅と、結合セルの列幅を同じにします。
列幅を同じにする
作業セルを折り返して全体を表示して、行の高さを自動調整します。
折り返して全体を表示
作業セルを折り返して全体を表示します。
行の高さを自動調整します。
設定されている行の高さをそのまま設定します。
行の高さを設定
最後に、作業セルをクリアします。
作業セルをクリア
これで、結合セルの行の高さを自動調整できます。
結合セルの行の高さを自動調整できた
結合セルの行の高さを自動調整できました。
複数の結合セルで、行の高さを自動調整
次は、複数の結合セルで、行の高さを自動調整してみます。
複数の結合セルで、行の高さを自動調整したい
VBAコードの手順は、先ほどと同じで次のようになります。
作業セルに値を転記
作業セルと結合セルの列幅を同じに設定
作業セルを折り返して全体を表示して、行の高さを自動調整
行の高さをそのまま設定
作業セルをクリア
VBAコードは、次のようになります。
Sub TEST2()
Dim A
'作業列に値を転記
Range("E1").Resize(3) = Range("A1").Resize(3).Value
'結合セルの列幅を取得
A = Range("A1").ColumnWidth + Range("B1").ColumnWidth + Range("C1").ColumnWidth
Range("E1").ColumnWidth = A '作業列の列幅を設定
Range("E1").Resize(3).WrapText = True '作業列を折り返して表示
Range("E1").Resize(3).EntireRow.AutoFit '行の高さを自動調整'行の高さを設定
For i = 0 To 2
Range("A1").Offset(i, 0).RowHeight = Range("A1").Offset(i, 0).RowHeight
Next
Range("E1").Resize(3).Clear '作業列をクリア
End Sub
では、VBAコードを実行してみます。
作業セルに値を転記します。
作業セルに値を転記
作業セルの列幅と、結合セルの列幅を同じに設定します。
作業セルと結合セルの列幅を同じにする
作業セルを折り返して全体を表示して、行の高さを自動調整します。
作業セルを折り返して全体を表示
作業セルを折り返して全体を表示します。
行の高さを自動調整します。
設定されている行の高さをそのまま設定します。
行の高さを設定
最後に、作業セルをクリアします。
作業セルをクリア
これで、複数の結合セルの行の高さを自動調整できます。
複数の結合セルの行の高さを自動調整できた
複数の結合セルの行の高さを、自動調整できました。
行方向に結合されたセルの行の高さを自動調整したい
「行方向」に結合されたセルの、行の高さを自動調整してみます。
結合セルは行の高さを自動調整できない
接合したセルでは、行の高さを自動調整できないです。
行方向にセル結合しています。
行方向にセル結合
セル結合すると、行の高さを自動調整できないです。
セル結合すると行の高さを自動調整できない
標準の高さになるだけで、行の高さを自動調整してくれないです。
作業セルを使って、行の高さを自動調整する
作業セルを使って、行の高さを自動調整してみます。
複数行でセルを結合しているので、それぞれの行を同じ高さにして、行の高さを自動調整します。
まずは、Excel機能のみで、手順を確認してみます。
作業セルに転記
作業セルに値を転記します。
値に変換します。
作業セルに値を転記できました。
作業セルと結合セルの列幅を同じに設定します。
作業セルと結合セルの列幅を同じにする
列幅を取得します。
作業セルの列幅と、結合セルの列幅を同じに設定します。
作業セルの列幅と、結合セルの列幅を同じに設定しました。
次は、作業セルを折り返して全体を表示して、行の高さを自動調整します。
作業セルを折り返して全体を表示
作業セルを折り返して全体を表示します。
行の高さを自動調整します。
作業セルの行の高さを自動調整できました。
作業のセルの行の高さを元に、1行分の行の高さを算出して、それぞれの行の高さを設定していきます。
行の高さを設定
行の高さを取得します。
1行分の高さを算出します。
3行分の行の高さを設定します。
行の高さを設定しました。
これで、3行分の行の高さを同じにして、行の高さを自動調整できました。
最後に、作業セルをクリアします。
作業セルをクリア
これで、行方向に結合されたセルで、行の高さを自動調整できます。
行の高さを自動調整できた
行方向に結合されたセルで、行の高さを自動調整できました。
VBAで、行の高さを自動調整する
VBAを使って、行の高さを自動調整してみます。
行方向に結合された行の高さを自動調整します。
行方向にセル結合された行の高さを自動調整したい
行方向に結合された行の高さを自動調整する手順は、次のようになります。
作業セルに値を転記
作業セルと結合セルの列幅を同じに設定
作業セルを折り返して全体を表示
行の高さをそのまま設定
作業セルをクリア
という感じになります。
VBAコードは、次のようになります。
Sub TEST3()
'作業セルに値を転記
Range("C1") = Range("A1").Value
'列幅を設定
Range("C1").ColumnWidth = Range("A1").ColumnWidth
Range("C1").WrapText = True '折り返して表示
Range("C1").EntireRow.AutoFit '行の高さを自動調整
Dim A
A = Range("A1").EntireRow.RowHeight / 3 '1行分の高さを算出
Range("A1:A3").EntireRow.RowHeight = A '行の高さを設定
Range("C1").Clear '作業セルをクリア
End Sub
では、VBAコードを実行してみます。
作業セルに値を転記します。
作業セルに値を転記
作業セルの列幅と、結合セルの列幅を同じに設定します。
作業セルと結合セルの列幅を同じに設定
作業セルを折り返して全体を表示して、行の高さを自動調整します。
作業セルを折り返して全体を表示
作業セルを折り返して全体を表示します。
行の高さを自動調整します。
3行分の行の高さを設定していきます。
行の高さを設定
1行分のセルの高さを算出します。
3行分の行の高さを設定します。
最後に、作業セルをクリアします。
作業セルをクリア
これで、結合セルの行の高さを自動調整できます。
行の高さを自動調整できた
結合セルの行の高さを自動調整できました。
複数の結合セルで、行の高さを自動調整
複数の結合セルで、行の高さを自動調整してみます。
複数の結合セルで、行の高さを自動調整したい
複数の結合セルで、行の高さを自動調整する手順は次のようになります。
作業セルに値を転記
作業セルと結合セルの列幅を同じに設定
作業セルを折り返して全体を表示
複数の結合セルの行の高さを設定する
作業セルをクリア
という感じです。
複数の結合セルで、行の高さを自動調整するVBAコードは、次のようになります。
Sub TEST4()
'作業セルに値を転記
Range("C1").Resize(9) = Range("A1").Resize(9).Value
'列幅を設定
Range("C1").ColumnWidth = Range("A1").ColumnWidth
Range("C1").Resize(9).WrapText = True '折り返して表示
Range("C1").Resize(9).EntireRow.AutoFit '行の高さを自動調整
Dim A
For i = 0 To 2
A = Range("A1").EntireRow.Offset(3 * i, 0).RowHeight / 3 '1行分の高さを算出
Range("A1:A3").EntireRow.Offset(3 * i, 0).RowHeight = A '行の高さを設定
Next
Range("C1").Resize(9).Clear '作業セルをクリア
End Sub
では、実行してみます。
作業セルに値を転記します。
作業セルに値を転記
作業セルの列幅と、結合セルの列幅を同じに設定します。
作業セルと結合セルの列幅を同じに設定
作業セルを折り返して全体を表示して、行の高さを自動調整します。
作業セルを折り返して全体を表示
作業セルを折り返して全体を表示します。
行の高さを自動調整します。
3つの結合セルの行の高さを設定していきます。
行の高さを設定
1つ目のデータで、行の高さを設定します。
2つ目のデータで、行の高さを設定します。
3つ目のデータで、行の高さを設定します。
3つの結合セルの行の高さを設定できました。
最後に作業セルをクリアします。
作業セルをクリア
これで、複数行の結合セルで、行の高さを自動調整できます。
行の高さを自動調整できた
複数行の結合セルで、行の高さを自動調整できました。
行数が異なる場合で、行の高さを自動調整
行数が異なる場合で、行の高さを自動調整してみます。
行数が異なる結合セルで、行の高さを自動調整したい
行数が異なる結合セルで、行の高さを自動調整する手順は、次のようになります。
作業セルに値を転記
作業セルと結合セルの列幅を同じに設定
作業セルを折り返して全体を表示
作業セルをループしていく
結合セルの行数を使って行の高さを算出
行の高さを設定
作業セルをクリア
という感じです。
行数が異なる結合セルで、行の高さを自動調整するVBAコードです。
Sub TEST5()
'作業セルに値を転記
Range("C1").Resize(6) = Range("A1").Resize(6).Value
'列幅を設定
Range("C1").ColumnWidth = Range("A1").ColumnWidth
Range("C1").Resize(6).WrapText = True '折り返して表示
Range("C1").Resize(6).EntireRow.AutoFit '行の高さを自動調整
Dim A, B
For i = 1 To 6
'値が入力されている場合
If Cells(i, "C") <> "" Then
A = Cells(i, "A").MergeArea.Rows.Count '結合セルの行数を取得
B = Cells(i, "C").EntireRow.RowHeight / A '1行分の高さを算出
Cells(i, "A").MergeArea.EntireRow.RowHeight = B '行の高さを設定
End If
Next
Range("C1").Resize(6).Clear '作業セルをクリア
End Sub