|
▼mog さん:
おはようございます。
アクティブなシートに対しての例です。
このシートの右隣に作業する真っ白なシートを用意してください。
標準モジュールに
'===================================================
Sub test()
Call set_scale(Range("a1")) 'パラメーターに指定したセルが結合セルの
' 先頭せるで実際に高さ調節を行いたいセルです。
End Sub
'====================================================
Sub set_scale(rng As Range, Optional sht As Worksheet = Nothing)
Dim tmprng As Range
On Error Resume Next
Set tmprng = rng.MergeArea
If Err.Number <> 0 Then
Set tmprng = rng
End If
With tmprng
If sht Is Nothing Then
Set sht = .Parent.Next
End If
wk = .ColumnWidth * (.Columns.Count)
sht.Range("a1").ColumnWidth = wk
sht.Range("a1").ColumnWidth = wk + (.Width - sht.Range("a1").Width) * (sht.Range("a1").ColumnWidth) / sht.Range("a1").Width
sht.Range("a1").HorizontalAlignment = .HorizontalAlignment
sht.Range("a1").VerticalAlignment = .VerticalAlignment
sht.Range("a1").WrapText = True
sht.Range("a1").Value = .Value
.RowHeight = sht.Range("a1").RowHeight / .Rows.Count
sht.Range("a1").Clear
End With
End Sub
簡単な説明で申し訳ないですが、試してみてください。
即興作成なので穴はあるかもしれませんが、
考え方は、作業シートに
結合セルではなく、単一セルで高さ調整を行いたい対象結合セルと
同じ列幅に設定し、結合セルの内容をここに流し込みます。
単一セルですから、列の高さは自動設定されますから、
その高さを元の結合セルに設定するという方法です。
試してみてください。
|
|