• ベストアンサー

エクセルで文字を結合させるには

以下のようにA列に文字が入力されています。 A1 あ A2 いう A3 え A4 おかきく A5 けこ 上記のデータをB1に、以下のように半角スペースで区切って結合させるには、どういった関数・マクロを用いればいいでしょうか。 B1 あ いう え おかくき けこ

質問者が選んだベストアンサー

  • ベストアンサー
  • diashun
  • ベストアンサー率38% (94/244)
回答No.4

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 」を選択して先頭のセル、最後のセルを指定して実行してみてください。 ただし、この関数は同じ列にデータが連続して入っていることを前提にしています。

fekssepe
質問者

お礼

回答有難うございます。 うまくいきました。 とても使いやすいです。

その他の回答 (4)

回答No.5

こんにちは こんな感じでいかがでしょうか? 記述するのは標準モジュールでも、該当するシートのコードの中でも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の値にしたりしてください。

fekssepe
質問者

お礼

回答有難うございます。 うまくいきました。 とても使いやすいです。

  • ngsvx
  • ベストアンサー率49% (157/315)
回答No.3

・行数が固定なのか、可変なのか ・A列の内容に連動したいのか、連動しなくていいのか がわかりません。 それによっても、やりかたは変わってきます。 行数が固定なら、次の方法もあります。 とりあえず、B1は作業場所に使わせてもらいます。 1.B1へ  「=A1」を入力 2.B2へ  「=A1&" "&A2」を入力 3.B2を下へ必要分コピー(セルの右下をダブルクリック) 4.一番下が目的のもの(A100とします)。 5.目的の場所に「=A100」と入力

fekssepe
質問者

お礼

回答有難うございます。 試してみましたが、うまくいきませんでした。

回答No.2

普通は#1さんのお答えのようにするのですが、 どうしても関数を使用したいのなら、 CONCATENATE という関数があります。 (使い方) =CONCATENATE(A1, " ", A2, " ", A3, " ", A4, " ", A5)

fekssepe
質問者

お礼

回答有難うございます。 行数が多いので、できればセルを一つ一つ記述しない方法を教えて頂きたいのですが。

  • shy00
  • ベストアンサー率34% (2081/5977)
回答No.1

単純にB1に =A1&" "&A2&" "&A3&" "&A4&" "&A5 ではだめなのでしょうか?

fekssepe
質問者

お礼

回答有難うございます。 行数が多いので、できればセルを一つ一つ記述しない方法を教えて頂きたいのですが。