自動化厨のプログラミングメモブログ│CODE-LIFE

Python/ExcelVBA/JavaScript/Raspberry Piなどで色んなことを自動化

ExcelVBAでセルの文字列の折り返しを解除する方法.WrapText = False

この記事でできるようになること

  • セル内改行を含むエクセルのシートをVBAで折り返し解除する

セル内改行があると勝手にセルの文字列が折り返される

f:id:maru0014:20171128034043p:plain

VBAで商品ページデータなどを処理することが最近多いんですが、このようなHTMLを含むセルはCSVを読み込んだ段階で画像のように文字の折り返しが勝手に有効化されてしまいます。

これを読み込んだ直後にシート全体の文字の折り返しを解除するマクロがこれ

.WrapText = False

Sub Macro1
  Cells.WrapText = False
End Sub

これを実行すると以下のように文字列の折り返しが解除されます。

f:id:maru0014:20171128040957p:plain

ちなみに折り返し解除するだけでは手動でセルを編集すると、再度折り返しが有効化されて行の高さが変わってしまいます。

行の高さを固定するには直接シート全体の行の高さを指定します。

Sub Macro2
  Rows.RowHeight = 18
End Sub

たったこれだけのことですが、毎回手で高さ指定するのが面倒ならVBAでやってしまえば便利ですね。