教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA セル操作】文字列幅をセル幅に合わせる(ShrinkToFit)にはどうすればいいの?教えて!

f:id:m_kbou:20200419130122p:plain

文字列幅をセル幅に合わせるにはShrinkToFitプロパティを使用します。セル幅が狭い状況で文字列をセル幅に合わせようとすると入力されている文字列が見えにくくなるため、状況に合わせて使用して下さい。この文字列幅をセル幅に合わせる方法について紹介します。

 

 

構文

記述方法は以下の通りとなります。

Cells.Columns.ShrinkToFit = True or False

[説明]:

文字列幅をセル幅に合わせるには

 「Cells.Columns.ShrinkToFit = True」

と記述し、元に戻す(合わせない)には

 「Cells.Columns.ShrinkToFit = False」

と記述します。

※Cells.Columnsは全セルを対象に文字列幅をセル幅に合わせます。

 

使い方

使い方について具体的に説明します。

文字列幅をセル幅に合わせる方法

文字列幅をセル幅に合わせる方法について説明します。

[プログラミング例]:

Sub サンプル()

  Cells.Columns.ShrinkToFit = True
  MsgBox "文字列をセル幅に合わせました。"

End Sub

内容は、「全セル列を選択して文字列幅をセル幅に変更し、最後にMsgBoxで”文字列をセル幅に合わせました。”のメッセージを表示して下さい。」との意味になります。

f:id:m_kbou:20210417060731p:plain

※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

①A1セル~F4セルにデータが入力されており、C列やE列に入力されている文字列は列幅に収まり切らない状態となっています。<実行>ボタンをクリックします。このボタンには上記のプログラミング例のプログラムが登録されています。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210417060751p:plain

②結果は以下の様になり、C列やE列の文字列が列幅に合うように文字列幅を縮小して表示されました。また、MsgBoxで「文字列をセル幅に合わせました。」が表示されます。

f:id:m_kbou:20210417060804p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

文字列幅をセル幅に合わせる方法についての説明は以上です。

 

セル幅に合わせた文字列幅を元に戻す方法

セル幅に合わせた文字列幅を元に戻す方法について説明します。

[プログラミング例]:

Sub サンプル()

  Cells.Columns.ShrinkToFit = False
  MsgBox "セル幅に合わせた文字列を元に戻しました。"

End Sub

内容は、「セル幅に合わせた文字列幅を元に戻し、最後にMsgBoxで”セル幅に合わせた文字列を元に戻しました。”のメッセージを表示して下さい。」との意味になります。

f:id:m_kbou:20210417060926p:plain

※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

①A1セル~F4セルにデータが入力されており、C列やE列に入力されている文字列は列幅に合わせて縮小された状態で表示されています。<実行>ボタンをクリックします。このボタンには上記のプログラミング例のプログラムが登録されています。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210417060947p:plain

②結果は以下の様になり、C列やE列の文字列が通常の文字サイズに戻り列幅に収まり切らない状態となりました。また、MsgBoxで「セル幅に合わせた文字列を元に戻しました。」が表示されます。

f:id:m_kbou:20210417061002p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

セル幅に合わせた文字列幅を元に戻す方法についての説明は以上です。

  

おわりに

今回は文字列幅をセル幅に合わせる方法について説明しました。類似内容としてセル幅(列幅)を文字列に合わせて最適化する方法もあります。是非一緒に覚えておいて下さい。