教えて!ExcelVBA!

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

【ExcelVBA セル操作】セル幅(列幅)を最適化(AutoFit)するにはどうすればいいの?教えて!

f:id:m_kbou:20200419125919p:plain

セル幅を最適化するにはAutoFitプロパティを使用します。このプロパティを使用する事で選択したセル幅を各列の最長データに合わせて最適化します。確認する際は予め長短様々なデータを入力してから実行して見て下さい。このセル幅を最適化する方法について紹介します。

 

 

構文

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

Columns(”[列範囲]”).AutoFit

[説明]:

セル幅(列幅)を最適化するには「Columns(”[列範囲]”).AutoFit」と記述します。[列範囲]にはセル幅(列幅)を最適化する列範囲を記述します。[列範囲]は「”」(ダブルクォーテーション)で囲みます。指定した[列範囲]を最適化するにはAutoFitプロパティを記述します。内容を纏めると、「[列範囲]で指定した列範囲の列幅を最適化して下さい。」との意味になります。

[記述例]:

Columns("A:C").AutoFit
Cells.Columns.AutoFit

 

使い方

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

特定の列範囲セル幅を最適化する方法

特定の列範囲セル幅を最適化する方法について説明します。

[プログラミング例]:

Sub サンプル()
  Columns("A:C").AutoFit
  MsgBox "列幅を最適化しました。"
End Sub

内容は、「A列~C列に対して列幅を最適化し、最後にMsgBoxで”列幅を最適化しました。”のメッセージを表示して下さい。」との意味になります。

f:id:m_kbou:20210416145126p:plain

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

[実行例]:

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

f:id:m_kbou:20210416145140p:plain

②結果は以下の様になり、A列~C列の列幅がデータ長に合った幅(最適化)されました。また、MsgBoxで「列幅を最適化しました。」が表示されます。

f:id:m_kbou:20210416145152p:plain

[サンプル]:

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

drive.google.com

特定の列範囲セル幅を最適化する方法についての説明は以上です。

 

全ての列範囲セル幅を最適化する方法

全ての列範囲セル幅を最適化する方法について説明します。

[プログラミング例]:

Sub サンプル()
  Cells.Columns.AutoFit
  MsgBox "列幅を最適化しました。"
End Sub

内容は、「全ての列幅を最適化し、最後にMsgBoxで”列幅を最適化しました。”のメッセージを表示して下さい。」との意味になります。

f:id:m_kbou:20210416151443p:plain

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

[実行例]:

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

f:id:m_kbou:20210416151503p:plain

②結果は以下の様になり、A列~F列の列幅がデータ長に合った幅(最適化)されました。また、MsgBoxで「列幅を最適化しました。」が表示されます。(※今回のプログラミング例は全ての列幅を最適化する内容ですが、データが入力されていないG列以降は変更されていない様に見えます。これは、この幅が最適化された幅となるためです。)

f:id:m_kbou:20210416151521p:plain

[サンプル]:

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

drive.google.com

全ての列範囲セル幅を最適化する方法についての説明は以上です。

  

おわりに

今回はセル幅を最適化する方法について説明しました。類似内容に文字列幅をセル幅に合わせる方法があります。一緒に覚えておく事をお勧めします。