エクセルシートを印刷すると、文字がセルからはみ出してしまい、印刷できないという相談を受けた。これは、印刷される文字がプリンター内のフォントを使うため、大きさが画面と一致しないために起きる。プリンターのプロパティをプリンター内臓フォントを使わないように調整すればよいのだが、そういうことをせずに行の高さを広げて対応することにした。 エクセルで行幅を内容に合わせて広げるには、行番号の境をダブルクリックして自動調整するのはご存知だろう。シート全体を選んで任意の行境をダブルクリックすれば、シート全体で自動調整される。しかし、これだと余裕なくフィットされてしまう。「文字サイズを1段小さくすれば、余裕ができる」と誰もが思うだろう。しかし、自動調整したあと、文字サイズを変えると文字サイズに合わせて行が伸び縮みするという弊害が出る。自動調整した後まで自動調整してくれるという大きなお世話、要らない親切。高さの自動調整はプロパティではなくメソッドなのだが、一度設定すると高さを数値指定するまで解除できないようだ。 そこで、作ったのが以下の行を広げるマクロ(正確にはマクロではなくVBAプロシージャ) Selectはしなくてもよいのだが、どこまで進んだか画面に表示させるために使用。 空の行や標準の1行で納まる内容があまり入っていない行を除いて広げるようにIFを使っている。 足し算で広げるが、掛け算で1.2倍とかにしたほうがよい場合もある。 Sub 行の高さを広げる() For i = 1 To 300 '開始行1、終了行300 Rows(i).Select If Selection.RowHeight > 20 Then Selection.RowHeight = Selection.RowHeight + 20 '空白行を除き20広げる Next i End Sub