VBA入門
文字の結合(&アンパサンド)と継続行(_アンダーバー)

ExcelマクロVBAの基本と応用、エクセルVBAの初級・初心者向け解説
公開日:2013年5月以前 最終更新日:2021-08-19

第14回.文字の結合(&アンパサンド)と継続行(_アンダーバー)


あるセルの文字と、あるセルの文字をくっつけて、別のセルに表示する、
よくある事例であり、頻繁に行われることです。


A1セルに"abc"
B1セルに"123"
この時に、
C1セルに"abc123"を入れるような場合のマクロVBAになります。

シートでは、
C1セルに、
=A1&B1
これでC1に"abc123"と表示されます。
VBAでも同様に&で文字列をつなげることができます。


文字結合&(アンパサンド)

Sub 練習1()
  Cells(1, 3).Value = Cells(1, 1).Value & Cells(1, 2).Value
End Sub
[.Value]は省略可能です。

&(アンパサンド)でつなげます。
これは、ワークシートの関数と同じです。
C1セルに、=A1&B1 これと同じです。

+(プラス)でつなげることもできます。
Cells(1, 3).Value = Cells(1, 1).Value + Cells(1, 2).Value
このように書く事も出来ますが、セルの値が数値同士の場合は足し算になってしまいます。

文字と文字の結合の場合は、&(アンパサンド)を使って下さい。
また、文字リテラルを結合することもできます。

Sub 練習2()
  Cells(1, 3).Value = Cells(1, 1).Value & "xyz"
End Sub


上記では、A1セルの文字の後ろに、"xyz"を結合して、C3セルに入れています。
先の例なら、C3セルには、"abcxyz"と入ります。


+演算子について

VBAでは+演算子でも文字列同士なら文字列連結できます。
ただし、連結対象の片方が数値型の場合は加算が行われます。
このような曖昧さを残さないためにも、文字列連結は&を使用してください。
VBAの演算子まとめ(演算子の優先順位)
・演算子の優先順位 ・算術演算子 ・比較演算子 ・論理演算子 ・連結演算子 ・単項演算子


継続行

&ではいくつでも結合することができます。

Sub 練習3()
  Cells(1, 6).Value = Cells(1, 1).Value & Cells(1, 2).Value & Cells(1, 3).Value & Cells(1, 4).Value & Cells(1, 5).Value
End Sub


上記では、A1セルからE1セルまでを結合して、F1セルに入れています。
しかし、これでは、少々見づらいです。
VBEの画面を右にはみ出してしまいます。
そこで、見易いように適当に改行を入れる事が出来ます。

Sub 練習3()
  Cells(1, 6).Value = Cells(1, 1).Value & _
            Cells(1, 2).Value & _
            Cells(1, 3).Value & _
            Cells(1, 4).Value & _
            Cells(1, 5).Value
End Sub


半角スペースに続けて_(アンダーバー)を書くと、次の行に続けて書く事が出来ます。

書いている事は、全く同じですが、
VBEの画面横幅を考えて、見易い位置で改行するようにして下さい。
これについて、どの程度が見やすいかはモニタにもよりますし人によっても感じ方が違います。
特に正解は無いので、自信のモニタで見やすければ、とりあえずはそれで構いません。

この継続行を使えるのは、&の位置に限りません。
任意の場所で行を継続させることができます。
ただし任意の場所と言っても、どこでも良いと言う訳にはいきません。
単語の途中で行を変えて継続したりすることはできません。
括弧()やカンマ,や演算子(=+-*/&)の前後の区切れる場所で行を変えて継続させることが出来ます。




同じテーマ「マクロVBA入門」の記事

第38回.セルに計算式を設定(Formula)

・計算式を設定できるプロパティ ・Valueプロパティ ・Formulaプロパティ , FormulaLocalプロパティ ・FormulaR1C1プロパティ , FormulaR1C1Localプロパティ ・R1C1参照形式 ・Localが付くプロパティについて ・それぞれの違い(Localは除く) ・何故、こんなに多くのプロパティが存在しているのか ・R1C1形式を使うメリット ・たった1行のVBAで複数のセルに計算式を入れる
第12回.変数宣言のDimとデータ型
・データ型 ・変数の使い方 ・変数名の規則 ・良く使われる変数名 ・自動型変換、暗黙の型変換 ・変数宣言の必要性 ・Dim変数宣言のまとめ
第13回.定数宣言のConstと型宣言文字
・Const定数の基本 ・変数でも同じ事が出来るが・・・ ・ダブルクォーテーションについて ・型宣言文字 ・Constにデータ型を指定しない場合のデータ型 ・その他の定数 ・Const変数宣言のまとめ
第14回.文字の結合(&アンパサンド)と継続行(_アンダーバー)
第15回.四則演算と注釈(コメント)
エクセルは表計算ソフトですから、計算が出来なくては話になりません。四則演算(加減剰余)は必須です。この四則演算で使う算術演算の演算子は、ワークシートの演算子と同じです。あわせて、注釈(コメント)の書き方も覚えましょう。
第16回.繰り返し処理(For Next)
・For Next ステートメント ・For Next 例文 ・For Next をステップ イン実行で目で見て確認しましょう。 ・1行置きに処理する場合 ・Exit For ・For~Nextのネスト(入れ子) ・最後に一言
第17回.繰り返し処理(Do Loop)
・Do~Loopの構文 ・条件式 ・Do Loop 例文 ・Exit Do ・Do~Loopのネスト(入れ子) ・最後に一言
第18回.最終行の取得(End,Rows.Count)
・エクセルVBAにおける最終行取得の必要性 ・.End(xlDown):Ctrl+↓ ・.End(xlUp):Ctrl+↑ ・Endプロパティの方向(↑↓←→)について ・セルの行数を取得するRowプロパティ ・Cells(Rows.Count, 1).End(xlUp).Rowを日本語に訳す ・EndプロパティがRangeオブジェクトを返す ・Endプロパティの問題点 ・最終行に関するサイト内のページ
第19回.総合練習問題1
・マクロVBA練習問題 ・シンキングタイム ・マクロVBA練習問題解答へ
第20回.条件分岐(IF)
・Ifステートメントの構文 ・IFステートメントの条件式 ・Ifステートメントの使用例文 ・Ifステートメントのネスト(入れ子) ・サイト内のIfステートメント参考ページ ・最後に
第21回.条件分岐(ElseIf)
前回のIFステートメントでは、真か偽の二択でした。今回は、もっと多くの分岐が必要な、Ifステートメントで多肢条件分岐の場合の書き方です。ステートメントとしては、Ifステートメントです。IfステートメントのElseIfの構文 If条件式1Then 条件式1が真の処理 [ElseIf条件式2Then 条件式2が真の処理…


新着記事NEW ・・・新着記事一覧を見る

TRIMRANGE関数(セル範囲をトリム:端の空白セルを除外)|エクセル入門(2024-08-30)
正規表現関数(REGEXTEST,REGEXREPLACE,REGEXEXTRACT)|エクセル入門(2024-07-02)
エクセルが起動しない、Excelが立ち上がらない|エクセル雑感(2024-04-11)
ブール型(Boolean)のis変数・フラグについて|VBA技術解説(2024-04-05)
テキストの内容によって図形を削除する|VBA技術解説(2024-04-02)
ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)
VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)
テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)
無効な前方参照か、コンパイルされていない種類への参照です。|エクセル雑感(2024-02-17)
初級脱出10問パック|VBA練習問題(2024-01-24)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.繰り返し処理(For Next)|VBA入門
3.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
4.変数宣言のDimとデータ型|VBA入門
5.RangeとCellsの使い方|VBA入門
6.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
7.セルのクリア(Clear,ClearContents)|VBA入門
8.メッセージボックス(MsgBox関数)|VBA入門
9.条件分岐(Select Case)|VBA入門
10.ブック・シートの選択(Select,Activate)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。


このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ