こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルのマクロを教えてください。

エクセルで、複数のセルに、違ったの数値が入っている時、
それを別の1つのセルに、カンマをつけて、まとめる、という事はできますか?

30個~100個程度のセルにある数値を、手作業で1つのセルにまとめるのが、めんどくさくて、イライラして仕方ありません。
間違いも多いし・・・。
どうか、ご教授お願いします。

投稿日時 - 2008-02-08 13:50:40

QNo.3755979

困ってます

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

簡単にですが、A1~A100の内容を、B1に出力

Option Explicit

Sub Main()

Dim nCnt As Long
Dim strOutPut As String

'初期化
strOutPut = vbNullString

For nCnt = 1 To 100

If strOutPut = vbNullString Then
strOutPut = Cells(1, nCnt).Value
Else
strOutPut = strOutPut & "," & Cells(nCnt, 1).Value
End If

Next nCnt

'B1セルに出力
Cells(1, 2).Value = strOutPut

End Sub

投稿日時 - 2008-02-08 14:15:47

お礼

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

投稿日時 - 2009-07-26 22:13:47

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

同じ列、または同じ行の連続セルの数値を、カンマで区切った文字列にするユーザ関数で良ければ以下の手順でやってみてください。使い方は、ワークシート関数の sum( ) や average( ) と同じように、=matome( ) の( ) の中にまとめたいセル範囲を入れます。

(1) Excelのメニューバーの [ツール] → [マクロ] → [Visual Basic Editor]
(2) Visual Basic Editorのメニューバーの [挿入] → [標準モジュール] で出てきた空白ウィンドウに以下を貼り付ける
   ↓ここから
Function matome(a As Variant) As Variant
Dim i As Integer, s As String
s = ""
For i = 1 To a.Count - 1
s = s + Str(a(i)) + ","
Next i
matome = s + Str(a(a.Count))
End Function
   ↑ここまで
(3) Excelに戻って、適当なセルに =matome( と書いて、まとめたいセル範囲をマウスで選び、) で閉じて Enter

投稿日時 - 2008-02-08 14:33:51

お礼

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

投稿日時 - 2009-07-26 22:14:12

あなたにオススメの質問