表などでセルの大きさがある程度決まっている時に、名前が5文字ぐらいならばセルにちょうど表示できているのですが、まれに6文字だとセルの設定をしていないと印刷した時に見切れてしまった事ありませんか?
それはセルの大きさ(幅)などに対して、文字が大きすぎたり長すぎたりするとはみ出てしまったり、切れてしまいます。
セルの書式設定をすることにより解決しますが、VBAコードを使って設定しましょう。
VBAで書式設定の文字の制御を設定する
WrapTextプロパティ
セルに入力されている文字や値がセルの設定されている幅や大きさを超えてしまっている場合に、セルの幅に収まるように自動的に折り返して全体を表示させることができます。
初期設定は元の大きさ(折り返さない)に設定されているので、設定値は「False」なので、折り返しを解除する時にもFalseを指定します。
VBAで特定のセルだけ折り返して全体を表示させる設定をする
例えば、ユーザーフォームに配置したコマンドボタンを押すと、セルA1の入力文字がセルの大きさを超えていたら折り返しにするならば、このようなVBAコードになります。
折り返して全体を表示
Private Sub CommandButton3_Click()
Range(“A1”).WrapText = True
End Sub
VBA解説
- コマンドボタン1がクリックされたら
- セルA1に入力されている文字がセルの大きさを超えていたら折り返し表示する
- マクロ記録終了
これだけで、折り返しが可能になりましたが、セルの高さが折り返した文字分のスペース(行の高さ)が無い場合は折り返し表示されませんので、セルの高さも調整が必要です。
元に戻すならば、TrueをFalseに代えるだけです。
VBAでセルの範囲を折り返して全体を表示させる設定をする
実用的にはセル1か所を指定して設定することは少なく、実際には表などの特定の範囲を指定することが多いので、まとめて設定します。
範囲指定折り返し表示
Private Sub CommandButton3_Click()
Range(“A1:G20”).WrapText = True
End Sub
VBA解説
- コマンドボタン1がクリックされたら
- セルA1~G20の範囲に入力されている文字がセルの大きさを超えていたら折り返す
- マクロ記録終了