文字列を結合してセルも結合するマクロ
マクロ 57回
セルを結合し、文字も結合する
セルの結合をする時に、 そこに文字列が入力されていると、意図した通りにならないことが多いのです。
例えば、入力されている文字もつなげて欲しい場合があります。
エクセルのアラートが出て左上の値のみが保持されると他のセルの値は破棄されてしまいます。
(サンプルファイルは、こちらから
マクロ57回サンプルデータ)
セルを結合する
セルの結合は RANGE オブジェクトに対してmerge メソッド またはMergeCellsプロパティを使うことができます。
Private Sub CommandButton2_Click() Selection.Merge End Sub
セル結合しようとすると、エクセルのアラートが表示されます。
結合すると、左上の値のみ保持されています。文字の結合はしてくれません。
文字の結合もしつつ、セルを結合したい
変数hanniをRange型で変数mojiをStringで宣言して、For Eachでmojiに入れてつなげます。
セルを結合し、その中に変数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
このままでは、エクセルのアラートがマクロを実行するたびに、現れるので、表示させないようにします。
エクセルのアラートを非表示にして、文字を結合しながらセル結合
エクセルのアラートを非表示にして、文字を結合しながらセル結合するマクロのコードは、
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行ごとに実行します。セルが結合されて、その中に結合した文字が入っています。
文字の間に半角スペース「" "」を入れるには、
moji = moji & " " & hanni.Textのようにしてやります。