文字列を結合してセルも結合するマクロ

文字列を結合してセルも結合するマクロ
文字列を結合してセルも結合するマクロ

リンクユニット


マクロ 57回

セルを結合し、文字も結合する

セルの結合をする時に、 そこに文字列が入力されていると、意図した通りにならないことが多いのです。 例えば、入力されている文字もつなげて欲しい場合があります。

エクセルのアラートが出て左上の値のみが保持されると他のセルの値は破棄されてしまいます。
(サンプルファイルは、こちらから マクロ57回サンプルデータ

セルを結合する

セルの結合は RANGE オブジェクトに対してmerge メソッド またはMergeCellsプロパティを使うことができます。
Private Sub CommandButton2_Click()
  Selection.Merge
End Sub

文字列を結合してセルも結合するマクロマクロ1
セル結合しようとすると、エクセルのアラートが表示されます。
文字列を結合してセルも結合するマクロマクロ2
結合すると、左上の値のみ保持されています。文字の結合はしてくれません。
文字列を結合してセルも結合するマクロマクロ3

文字の結合もしつつ、セルを結合したい

変数hanniをRange型で変数mojiをStringで宣言して、For Eachでmojiに入れてつなげます。
文字列を結合してセルも結合するマクロマクロ4
セルを結合し、その中に変数mojiを入れます。
Private Sub CommandButton2_Click()
    Dim hanni As Range
    Dim moji As String
    For Each hanni In Selection
        moji = moji & " " & hanni.Text
    Next
    Selection.MergeCells = True
    Selection.Value = moji
End Sub

文字列を結合してセルも結合するマクロマクロ5
このままでは、エクセルのアラートがマクロを実行するたびに、現れるので、表示させないようにします。
文字列を結合してセルも結合するマクロマクロ6
スポンサーリンク
スポンサーリンク

エクセルのアラートを非表示にして、文字を結合しながらセル結合

エクセルのアラートを非表示にして、文字を結合しながらセル結合するマクロのコードは、
Private Sub CommandButton2_Click()
    Dim hanni As Range
    Dim moji As String
    For Each hanni In Selection
        moji = moji & hanni.Text
    Next
    Application.DisplayAlerts = False
    Selection.MergeCells = True
    Selection.Value = moji
    Application.DisplayAlerts = True
End Sub
マクロを1行ごとに実行します。セルが結合されて、その中に結合した文字が入っています。
文字列を結合してセルも結合するマクロマクロ7
文字の間に半角スペース「" "」を入れるには、 moji = moji & " " & hanni.Textのようにしてやります。
文字列を結合してセルも結合するマクロマクロ8