• ベストアンサー

Excelマクロで複数セルの文字を連結

Excelで以下のような列が揃わない表があります A列 B列 C列 ------------------------- あああ いいい ううう かかか きき さささ し ------------------------- これを区切り文字を入れ、別の列の一つのセルに纏めたいのですがうまい方法はありませんでしょうか F列 ------------------------- あああ/いいい/ううう かか/きき さ/し -------------------------

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.4

マクロというご指定なので一例です。 A列1行目からデータの場合です。 Sub test01() Dim c As Range Dim i As Long With ActiveSheet i = 1 Do While .Cells(i, "A") <> "" If .Cells(i, "B") <> "" Then For Each c In .Range(.Cells(i, "A"), .Cells(i, "A").End(xlToRight)) .Cells(i, "F") = IIf(.Cells(i, "F") = "", c, .Cells(i, "F") & "/" & c) Next c Else .Cells(i, "F") = .Cells(i, "A") End If i = i + 1 Loop End With End Sub

すると、全ての回答が全文表示されます。

その他の回答 (6)

  • turuzou
  • ベストアンサー率33% (15/45)
回答No.7

下記も参考になりそうです。 複数セルの文字列を一つにまとめるには http://www2.odn.ne.jp/excel/waza/macro.html#SEC16 フロー制御 http://www.asahi-net.or.jp/~zn3y-ngi/YNxv20014.html

すると、全ての回答が全文表示されます。
回答No.6

=SUBSTITUTE(TRIM(A1&" "&B1&" "&C1)," ","/") マクロじゃないので参考まで

すると、全ての回答が全文表示されます。
回答No.5

追記。 >もし、A1、B1、C1のどれかのセルが空っぽの時 >あああ (空白セル) ううう⇒あああ//ううう >となるのが嫌であれば これをやってしまうと あああ (空白セル) (空白セル)⇒あああ (空白セル) あああ (空白セル)⇒あああ (空白セル) (空白セル) あああ⇒あああ のように「A列にのみ入っている時」とB列にのみ入っている時」と「C列にのみ入っている時」が区別出来なくなります。 なので、単純に =A1 & "/" & B1 & "/" & C1 と書いておけば あああ (空白セル) (空白セル)⇒あああ// (空白セル) あああ (空白セル)⇒/あああ/ (空白セル) (空白セル) あああ⇒//あああ となり「どの列に1個だけ入っていたのか」が判ります。 なお、どの方法であっても「セル内に区切り文字の"/"を書かれる」と、以下のように連結後のデータがどれも同じになり、元データが推測出来なくなりますので、ご注意を。 //あああ (空白セル) (空白セル)⇒//あああ// (空白セル) /あああ/ (空白セル)⇒//あああ// (空白セル) (空白セル) あああ//⇒//あああ//

すると、全ての回答が全文表示されます。
回答No.3

F1セル =A1 & "/" & B1 & "/" & C1 F2セル =A2 & "/" & B2 & "/" & C2 F3セル =A3 & "/" & B3 & "/" & C3 F4セル (以下略) と入力します。 もし、A1、B1、C1のどれかのセルが空っぽの時 あああ (空白セル) ううう⇒あああ//ううう となるのが嫌であれば F1セル =IF(""&A1<>"",A1&IF(""&B1<>"","/"&B1,"")&IF(""&C1<>"","/"&C1,""),IF(""&B1<>"",B1&IF(""&C1<>"","/"&C1,""),""&C1)) F2セル (以下略) と入力します。

すると、全ての回答が全文表示されます。
  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.2

文字列の連結であれば =A1&"/"&B1&"/"&C1 とか =CONCATENATE(A1,"/",B1,"/",C1) などで可能。 同じ行の文字列の短いセルに字数を合わせるのであれば LEN関数で文字数をカウントMIN関数で最小値を探して、LEFT関数でその文字数だけ抽出。 式は結構複雑になりそうです。

すると、全ての回答が全文表示されます。
  • DIooggooID
  • ベストアンサー率27% (1730/6405)
回答No.1

"か" や "さ" の文字数が変換しています。 この規則はどのようになっているのでしょうか。

yac13
質問者

補足

失礼しました。 表は間違いで文字数はセルのままです。 単純にセル内の文字を連結するだけです

すると、全ての回答が全文表示されます。

関連するQ&A