- ベストアンサー
エクセルで文字を結合させるには
以下のようにA列に文字が入力されています。 A1 あ A2 いう A3 え A4 おかきく A5 けこ 上記のデータをB1に、以下のように半角スペースで区切って結合させるには、どういった関数・マクロを用いればいいでしょうか。 B1 あ いう え おかくき けこ
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
diashun です。 行数が多いと仰るので、簡単なユーザー定義関数を作ってみました。 以下のコードをVBAエディタのModule1にコピーしてください。↓ ''■ここからコピー Option Explicit Function StrMerSpace(rR1 As Range, rR2 As Range) As String Dim rR As Range Dim lCnt As Long Dim lCells As Long StrMerSpace = "" Set rR = Range(Cells(rR1.Row, rR1.Column), Cells(rR2.Row, rR2.Column)) lCells = rR.Count For lCnt = 1 To lCells StrMerSpace = StrMerSpace & rR(lCnt) & Space(1) Next lCnt End Function ''■ここまでコピー このあと数式バーに「ユーザー定義関数」で「StrMerSpace 」を選択して先頭のセル、最後のセルを指定して実行してみてください。 ただし、この関数は同じ列にデータが連続して入っていることを前提にしています。
その他の回答 (4)
- freezemoon
- ベストアンサー率39% (13/33)
こんにちは こんな感じでいかがでしょうか? 記述するのは標準モジュールでも、該当するシートのコードの中でもOKです。 Sub Ketugo() Dim i As Integer Dim WS As Worksheet Dim strWord As String Set WS = Worksheets("Sheet1") i = 1 With WS '空白セルが出現するまでループ Do Until WS.Cells(i, 1) = "" If i <> 1 Then strWord = strWord & " " End If strWord = strWord & .Cells(i, 1) i = i + 1 Loop 'B1に代入 .Cells(1, 2) = strWord End With End Sub シート名とかは適当に変えてください。 空白セルを見つけてループから抜けているのが不都合でしたら、ループ脱出の条件をループカウントのiの値にしたりしてください。
お礼
回答有難うございます。 うまくいきました。 とても使いやすいです。
- ngsvx
- ベストアンサー率49% (157/315)
・行数が固定なのか、可変なのか ・A列の内容に連動したいのか、連動しなくていいのか がわかりません。 それによっても、やりかたは変わってきます。 行数が固定なら、次の方法もあります。 とりあえず、B1は作業場所に使わせてもらいます。 1.B1へ 「=A1」を入力 2.B2へ 「=A1&" "&A2」を入力 3.B2を下へ必要分コピー(セルの右下をダブルクリック) 4.一番下が目的のもの(A100とします)。 5.目的の場所に「=A100」と入力
お礼
回答有難うございます。 試してみましたが、うまくいきませんでした。
- rotesKomet
- ベストアンサー率31% (83/265)
普通は#1さんのお答えのようにするのですが、 どうしても関数を使用したいのなら、 CONCATENATE という関数があります。 (使い方) =CONCATENATE(A1, " ", A2, " ", A3, " ", A4, " ", A5)
お礼
回答有難うございます。 行数が多いので、できればセルを一つ一つ記述しない方法を教えて頂きたいのですが。
- shy00
- ベストアンサー率34% (2081/5977)
単純にB1に =A1&" "&A2&" "&A3&" "&A4&" "&A5 ではだめなのでしょうか?
お礼
回答有難うございます。 行数が多いので、できればセルを一つ一つ記述しない方法を教えて頂きたいのですが。
お礼
回答有難うございます。 うまくいきました。 とても使いやすいです。