VBAで条件によりフォントサイズ・行間を変更する

フォント行間自動調整 VBA
スポンサーリンク

使用している行数が少なければ行の高さを太く・文字も大きく、使用行数が多ければ高さを狭く・文字も小さく同時に自動調整できると便利だと思いませんか?

必要になる行数を読み込ませて行数に応じてフォントサイズと行の高さを同時に変更して見栄えも作業時間も短縮して仕事をかたずけてしまいましょう。

その前に、文字サイズの調整だけまたは、行の高さの調整だけの場合はこちらをご覧くださいませ。

とりっぷぼうる
とりっぷぼうる

条件によりフォントサイズ・行間を変更する方法は、上記2つを合体させただけなので、簡単ですよ!

Select Caseの使い方など重複するのでここでは省略しますので、上記を参考にして下さい。

使用されているデータ数(行数)をCOUNTA関数でセルAA1に書き込むのも上記と同じで、Select Caseステートメントで、条件(使用行数)に応じて行の高さを指定し、文字サイズも同時に指定するVBAコードを続けて書けば完成です。

Select Caseで行の高さと文字サイズを指定

実際に使用しているリスト表では、少なくても25行で最大で37行なので、条件式であるCase Isは13個ありますが、そのまま載せるとダラダラ長くなって見づらいので、25行から27行までの3行に省略して書きました。

※ユーザーフォームのコマンドボタンにVBAコードを書いた例です。

VBAコード

Private Sub CommandButton1_Click()
Select Case Worksheets(“Sheet1”).Range(“AA1”).Value
Case Is <= 25
Range(“3:40”).RowHeight = 40
Range(“A3:T40”).Font.Size = 17
Case Is = 26
Range(“3:40”).RowHeight = 38
Range(“A3:T40”).Font.Size = 16
Case Is = 27
Range(“3:40”).RowHeight = 36
Range(“A3:T40”).Font.Size = 15
End Select
End Sub

解説
  1. コマンドボタン1がクリックされたら
  2. Select Caseステートメントを使い「Sheet1」のセルAA1の値を参照
  3. 25以下ならば
  4. 範囲(3:40)の行の高さを40ポイントにする
  5. セル範囲内(A3:T40)の文字サイズを17ポイントにする
  6. 26ならば
  7. 範囲(3:40)の行の高さを40ポイントにする
  8. セル範囲内(A3:T40)の文字サイズを16ポイントにする
  9. 27ならば
  10. 範囲(3:40)の行の高さを40ポイントにする
  11. セル範囲内(A3:T40)の文字サイズを15ポイントにする
  12. Select Caseステートメント終了
  13. マクロ記録終了

文字の大きさや行の高さの調整と一緒に、見せたくない行(社外秘)となっている行があれば、ここだけ条件を付けて自動的に非表示にして、合わせてもっと見栄え良くできますよ。

これに、印刷コードを組み合わせれば文字サイズ変えてから必要枚数を用紙に見栄え良く印刷できますよ!

とりっぷぼうる
とりっぷぼうる

一応、念の為に文字サイズや行の高さ・列の幅の基本VBAコードも用意しておきますので、再確認もお願いします。

スポンサーリンク

セルの操作関連の参考VBA集

エクセルVBAで自動的に連番をつける方法
入力済みのセルの最終行の下に新しく入力する方法
VBAで条件により文字色や背景色をまとめて変える
空白セルに0を選択範囲まとめて入力
エラー回避して範囲内の空白セルを見つけたら上方向に詰める