- Home ›
- Excel VBA入門 ›
- 基本文法
VBAで長いコードを途中で改行する
VBA のコードを記述する場合、コードは改行までが一つの処理として扱われます。コードの途中で単に改行してしまうとエラーとなってしまいますが、アンダーバーを使ってコードが次の行へ続いていることを表すことができます。ここでは VBA でコードを途中で改行する方法について解説します。
※ セルに入力した文字列を途中で改行したり、メッセージボックスで表示される文字列を途中で改行する方法については「VBAで改行する」を参照されてください。
(Last modified: )
コードを途中で改行する方法
例えば複数のコードをプロシージャ内に記述する場合、それぞれのコードは改行までが一つのコードとして扱われます。
Sub プロシージャ名() Range("A1").Value = 10 Range("A2").Value = 20 Range("A3").Value = 30 End Sub
この場合は Range("A1").Value = 10
, Range("A2").Value = 20
, Range("A3").Value = 30
の 3 つのコードが順に実行されることになります。
もしも 1 つの行に複数のコードを記述したい場合は、どこからどこまでが 1 つのコードなのかを示すため処理と処理の間にコロン( :
)を記述することで1つの行に複数のコードを記述できます。
Sub プロシージャ名() Range("A1").Value = 10 : Range("A2").Value = 20 Range("A3").Value = 30 End Sub
このように VBA では改行までが 1 つのコードとして扱われるので、長いコードを記述する場合でも途中で改行してはいけません。例えば Range("A1").Value = 10
というコードを次のように記述するのは誤りです。
Sub プロシージャ名() Range("A1").Value = 10 End Sub
この場合、 Range("A1").Value
と = 10
は別の処理と見なされます。そしてどちらも文法的に間違っているためエラーとなってしまいます。
長いコードを途中で改行したい場合には、処理が次の行にまたがっていることを表すため半角スペースの後にアンダーバー( _
)を記述してください。
Sub プロシージャ名()
Range("A1").Value _
= 10
End Sub
この場合は次のように書いたものと同等と見なされます。
Sub プロシージャ名() Range("A1").Value = 10 End Sub
改行する場合の注意点
アンダーバーを使うことで長いコードの途中で改行をすることができますが、値やプロパティ名などの途中で改行することはできません。
例えば次のようなコードを記述する場合で考えてみます。
Sub プロシージャ名() Range("A1").Value = 10 End Sub
Value
プロパティの途中で次のように改行するとエラーとなります。
Sub プロシージャ名() Range("A1").Va _ lue = 10 End Sub
改行する場合はスペースの前後やドット( .
)の前後などで行うようにしてください。
またアンダーバー( _
)を使って改行した場合、アンダーバーの右側には何も記述できません。コメントも記述できない点に注意してください。
例えば次のように改行のためのアンダーバーの右にコメントを記述してみるとエラーとなります。
Sub プロシージャ名() Range("A1").Value _ ' 改行しています = 10 End Sub
-- --
VBA でコードを途中で改行する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。