アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセル上で、

セル A1 A2 A3 A4 A5 と上から下まで1万行ほど並んでいるデータがあるのです、それらを結合させようとアンド関数で、=A1&A2&A3と打ち込んでいたのですが、1万レコードほどあるので、ちょっと無理っぽいんです。

複数のセルを、一発でワンセルに結合させる方法はあるのでしょうか?

どなたか教えてください。

A 回答 (4件)

参考程度に



Sub test1()
Dim a, b
a = Range("a1").CurrentRegion
a = Application.Transpose(a)
b = Join(Application.Index(a, 1, 0), "")
Range("b1").Value = b
End Sub

Sub test2()
Dim a, b, i
a = Range("a1").CurrentRegion
b = ""
For i = 1 To UBound(a)
b = b & a(i, 1)
Next i
Range("b1").Value = b
End Sub

excelのバージョンによっては、test1はエラーが出ます
1万行ならexcel2000は確実にエラーが出ます(仕様)
その場合はtest2を試してね
    • good
    • 0
この回答へのお礼

で・できました!
ありがとうございました。

お礼日時:2009/11/07 18:29

何のためにそのような必要性があるのでしょうか?


単なる興味だったらこのような事をかんがえるのはやめましょう。
なにがしろの理由があるものとして参考までに。

エクセル2007で1セル最大文字制限が32767バイトです。
従って1万行の平均文字数が半角3文字以下であれば、たの方の
答えられているようなやり方で可能なことは可能です。
エクセル2007以前のバージョンでは問題外です。
しかしそれをどのように利用するのでしょうか?
1セルに表示してもそれだけで画面からあふれしまうのでは
無いでしょうか?
    • good
    • 0

一旦、CSV形式でファイル出力し、ワードなどで開きます。



「セルの区切り」で使用される文字(コード)を「置換え」で「消して」しまう。

保存後、再びExcelで開けば、セルが結合された状態になると思いますけど。
    • good
    • 0
この回答へのお礼

言われてみれば!

目からウロコでした。

ありがとうございました。

お礼日時:2009/11/07 18:38

マクロじゃだめですか?



B1セルに「=COUNTA(A1:A10000)」を入れといて、マクロにこんなコード書いて、実行するとC1セルに結果出ますが。
関数じゃないから答えになってないか。

Sub macro()
Dim A As Integer
Dim St As String
St = ""
For A = 1 To Range("b1")
St = St & Cells(A, 1).Value
Next A
Range("c1").Value = St
End Sub
    • good
    • 0
この回答へのお礼

こ・これはすごいです。

できました!

ありがとうございました。

お礼日時:2009/11/07 18:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!