Excel VBAで改行する方法のまとめ

Excel VBAで改行する方法のまとめ

Posted at August 14,2014 12:55 AM
Tag:[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以上利用すると「行継続文字(_)を使いすぎています。」というエラーが発生するようです。

エラーメッセージ

改行文字を増やせる方法はないようなので、適切に使うことを推奨します。

関連記事
zenback
人気エントリー
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)