Excelで「折り返して全体を表示する」を適用している場合、画面上ではセルに収まっている文字が印刷するとはみ出して印字されないというケースがあります。
環境によるのかもしれませんが、これは困ります。ページ設定で縮小するとダメなようです。
対処法
行の高さを増やすのが正攻法です。
裏技的には文字列の最後でセル内改行をします。無駄な行が生じますが印刷時にはみ出すことはありません。
改行を追加するマクロ
これを一つ一つやるのは面倒なのでマクロで対応してみます。
範囲を選択して実行すると各セルの文字列の最後で改行します。
空のセルは除きます。
Sub 選択範囲の文字列の末尾に改行を追加()
Dim c As Object
For Each c In Selection
If c.Value <> "" Then
c.Value = c.Value & Chr(10)
End If
Next c
End Sub
Dim c As Object
For Each c In Selection
If c.Value <> "" Then
c.Value = c.Value & Chr(10)
End If
Next c
End Sub
逆に改行を削除するマクロも紹介します。元に戻すときに使います。
Sub 選択範囲の文字列の末尾の改行を削除()
Dim c As Object
For Each c In Selection
t = c.Value
If Right(t, 1) = Chr(10) Then '末尾が改行の場合。
c.Value = Left(t, Len(t) - 1)
End If
Next c
End Sub
Dim c As Object
For Each c In Selection
t = c.Value
If Right(t, 1) = Chr(10) Then '末尾が改行の場合。
c.Value = Left(t, Len(t) - 1)
End If
Next c
End Sub
行の高さを増やすマクロ
正攻法についてもマクロを作ってみました。
各行の高さを、元の行の高さにA列のフォントサイズを加えた値にしています。フォントサイズは1.2倍にして少し余裕を持たせています。
Sub 行の高さを増やす()
For myrow = 1 To Cells(Rows.Count, 1).End(xlUp).Row
height_old = Rows(myrow).RowHeight
height_add = Cells(myrow, 1).Font.Size
Rows(myrow).RowHeight = height_old + height_add * 1.2
Next myrow
End Sub
For myrow = 1 To Cells(Rows.Count, 1).End(xlUp).Row
height_old = Rows(myrow).RowHeight
height_add = Cells(myrow, 1).Font.Size
Rows(myrow).RowHeight = height_old + height_add * 1.2
Next myrow
End Sub
コメント