Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


43692 / 76736 ←次へ | 前へ→

【38086】Re:結合した折り返し設定のセルの高さを自動設定したい
発言  ichinose  - 06/5/26(金) 9:36 -

引用なし
パスワード
   ▼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

簡単な説明で申し訳ないですが、試してみてください。
即興作成なので穴はあるかもしれませんが、
考え方は、作業シートに
結合セルではなく、単一セルで高さ調整を行いたい対象結合セルと
同じ列幅に設定し、結合セルの内容をここに流し込みます。
単一セルですから、列の高さは自動設定されますから、
その高さを元の結合セルに設定するという方法です。

試してみてください。

0 hits

【38051】結合した折り返し設定のセルの高さを自動設定したい mog 06/5/25(木) 14:49 質問
【38086】Re:結合した折り返し設定のセルの高さを自... ichinose 06/5/26(金) 9:36 発言
【38104】Re:結合した折り返し設定のセルの高さを自... mog 06/5/26(金) 14:29 お礼

43692 / 76736 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free