Excel VBAで改行する方法のまとめ
Excel VBAで改行する方法をまとめました。
1.問題点
次の、A2セルの内容をA1セルにコピーするプログラムを書いてみました。
Sub test()
Worksheets("Sheet1").Cells(1, 1).Value = Worksheets("Sheet1").Cells(2, 1).Value
End Sub
2行目がちょっと横に長いので「=」の直後で改行して、
Sub test()
Worksheets("Sheet1").Cells(1, 1).Value =
Worksheets("Sheet1").Cells(2, 1).Value
End Sub
としようとしたところ、「コンパイル エラー:修正候補: 式」というエラーが発生しました。
改行したときにこのエラーを回避する方法がわかりません。
2.VBAで改行する
VBAで改行するには、改行する行の行末に「_」を記述します。「_」の直前には半角スペースが必要です。この半角スペースとアンダースコアの組み合わせを「改行文字(行継続文字)」と呼ぶようです。
Sub test()
Worksheets("Sheet1").Cells(1, 1).Value = _
Worksheets("Sheet1").Cells(2, 1).Value
End Sub
実際の表示
改行文字は複数挿入することができます。
Sub test()
Msgbox "foo" & _
"bar" & _
"hoge" & _
"fuga"
End Sub
上のコードを実行すると次のようなメッセージが表示されます。
3.改行文字を挿入できる箇所
改行文字を挿入できるのは、プログラムとして連結していなくてもよいところです。
具体的には次のとおりです(すべてではありません)。
- カンマの前後
- カッコの前後
- 演算子の前後
- 修飾子文字「.」 の前後
たとえば、冒頭のサンプルは次のように改行することが可能です。
Sub test()
Worksheets _
( _
"Sheet1" _
) _
. _
Cells _
( _
1, _
1 _
) _
. _
Value _
= _
Worksheets _
( _
"Sheet1" _
) _
. _
Cells _
( _
2 _
, _
1 _
) _
.Value
End Sub
変数名の途中や文字列の途中で改行することはできません。
4.改行文字の制限
改行文字を一つの関数で24以上利用すると「行継続文字(_)を使いすぎています。」というエラーが発生するようです。
改行文字を増やせる方法はないようなので、適切に使うことを推奨します。
Posted by yujiro このページの先頭に戻る
トラックバックURL
コメントする
greeting