最新閲覧日:

Excelの 1つのセルに数字がカンマ区切りで入っていて 
初めと終わりにはカンマはついていません
それが縦に200くらい並んでいます
数字の数は1~10までで 何個入っているかはセルによって1個だったり10個だったりします
数字の初めと終わりにカンマを入れたいのですが自動ではいるようにできるでしょうか?

A 回答 (3件)

ramuramuさんこんにちは


マクロを使ったことがあるということですので、次の段階へのステップとして捉えてください。
”新しいマクロの記録”>”記録終了”とすると、何も記録されない空のマクロ(プロシージャ)ができますよね。そこに以下のプログラムを貼り付けてみましょう。このマクロはA列にある数値をすべてカンマで挟む動作をします。

Sub Macro1()
'-----ここからコピー
Dim I As Long, dat As String
For I = 1 To Range(Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Address).Row + 1
dat = Cells(I, 1).Value
If dat <> "" Then Cells(I, 1).Value = "," & dat & ","
Next I
'-----ここまでコピー
End Sub

"Range(Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Address).Row + 1"
はA列が何行目まで記入されているかを取得するために作った関数です。"Cells(ActiveSheet.Rows.Count, x)"の部分は、x=1なら列A、x=2ならば列B、x=3ならば列Cということになります。繰り返しマクロ(コード)を走らせる場合はFor~Nextステートメントを使用します。For I=1 to Y でI=1(行目)から、I=Y(行)まで同じマクロ(カンマではさむ)を実行することになります。例えば10行目までデータが入っていたならば、先程の関数は11という数字を返すので、Y=11となり、このマクロは11回繰り返して実行されます。
次にIFステートメントで、コードを実行するか否かを分岐しています。この例では、セルが空欄の時はコードの実行を飛ばします。If A<>"" Then B は、「Aが空白でないならばBを実行する」ことを意味します。さて、実際にカンマ挟みを行うマクロは次の2行だけです。
dat = Cells(I, 1).Value '<-- datという変数にI行目のセルの値を代入する
Cells(I, 1).Value = "," & dat & "," '<-- I行目のセルに ","で挟んだdatを代入する
"&"はアンバサンドといって文字列を繋げる働きをします。
簡単に説明しましたが、VBAが初めてという場合は「まあ、こんなもんか」程度でいいですよ。VBAは「動き」を見ながら「コード」を覚えていった方が入りやすいです。少しずつがんばってください。でも、このような繰り返し実行のステートメントや条件分岐は、マクロの自動記録では書いてくれませんから、ヘルプや参考書で勉強してみては?。
    • good
    • 0
この回答へのお礼

TTakさん解りやすく書いてくださってありがとうございます
でもすぐに出来ましたとは言えそうにありませんので 
これから勉強しながら取り組みたいと思います
今までVBAは私にとっては便利そうでも無いし 難しそうなので
遠ざけていましたがこれを機会に勉強しようと言う気になりました
本当にありがとうございました

お礼日時:2001/05/02 19:45

もう一列追加して、「=CONCATENATE(",",該当セル,",")」とするのはだめで

しょうか?
    • good
    • 0
この回答へのお礼

kumfさん ありがとうございます
教えていただいた方法でできました
その後 Officeアシスタントが

アンパサンド(&)を使用して数式中の文字列を結合することが出来ます
たとえばセルA1に "Week” セルA2に ”Day” ガ入力されている時
数式 ”=A1&A2”の計算結果は ”Weekday”となります

と 教えてくれました
おかげさまで 今回に限らず こらからもExcelをより便利に使えます
本当にありがとうございました

お礼日時:2001/05/01 22:04

ramuramuさんこんにちは


結論からいうと可能です。ただし、私の方法ではVBAを使いますので、その方法でもよろしいということであれば返信ください。

概要としては、各セルの値を順々に取得し、その値の前後にカンマを付けて、再度セルに転記するループステートメントを実行します。

この回答への補足

TTakさんありがとうございます
Kumtさんの方法で出来ましたが
VBAを使う方法にも挑戦してみたいのです

私はExcelの簡単な関数とマクロしか使ったことが無いので
理解できるか自信がありませんが 教えていただけたらうれしいです
ちょっと無理でしょうと思われたら そうおっしゃて頂いてかまいません
よろしくお願いします

補足日時:2001/05/01 22:06
    • good
    • 0

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

このQ&Aを見た人が検索しているワード


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ