VBAで条件により行の高さを変更する
使用している行数が少なければ行の高さを太く、使用行数が多ければ高さを狭く自動でできると便利だと思いませんか?
人数や使用行数を読み込んで自動で高さ調整ができるようにちょっと工夫すれば、印刷などで用紙サイズに合わせて見栄え良くなりますよ。
その前に、行の高さ調整や列の幅調整の基本はこちらをどうぞ。
Select Caseで条件付け
Select Caseステートメントを使うと、1つ目の条件に合致すると処理を実行して、条件に合わないと次の2つ目の条件に移って処理を続け、2つ目の条件が合致すると実行、さらに条件に合わないと次の条件、3つ目に移るという具合です。
要するに、条件に合うまで次から次へと処理を行ってくれる便利なものですが、重複するので詳しい説明はここでは省略します。
このSelect Caseの特徴を利用して、次の手順でVBAコードを記述すれば完成すますよ!
- 特定のセルに使用している行数を読み込ませる
- 読み込ませたセルの値をSelet Caseの基準にする
- Case Isの条件式と対象が条件式と合致する時の処理をする
それでは、手順1~3を順にVBAコードを記述しましょう。
特定のセルに使用している行数を読み込ませる
表の入力済みデータのセルの数を数えるのは、表の欄外の空いているセルに置いておけば簡単で、使用するエクセル関数はCOUNTA関数です。
COUNTA関数を各セルは表の欄外ならどこでも構いませんので、空いているセルにデータ入力済セルを数えます。
今回のデータリスト名がセルA3~A40までの範囲内なので、数えた数をセルAA1にたまたま書きましたので、このセルを基準にSelect Caseステートメントを使用します。
Select Caseで文字サイズ指定
実際に使用しているリスト表では、少なくても25行で最大で37行なので、条件式であるCase Isは13個ありますが、そのまま載せるとダラダラ長くなって見づらいので、25行から27行までの3行に省略して書きました。
※ユーザーフォームのコマンドボタンにVBAコードを書いた例です。
これによりセルAA1の値により行の高さが変更できますが、文字の大きさとのバランスもあるので、同時に文字サイズも変更するとよりよいと思いますよ。