No.1
- 回答日時:
ramuramuさんこんにちは
結論からいうと可能です。ただし、私の方法ではVBAを使いますので、その方法でもよろしいということであれば返信ください。
概要としては、各セルの値を順々に取得し、その値の前後にカンマを付けて、再度セルに転記するループステートメントを実行します。
この回答への補足
TTakさんありがとうございます
Kumtさんの方法で出来ましたが
VBAを使う方法にも挑戦してみたいのです
私はExcelの簡単な関数とマクロしか使ったことが無いので
理解できるか自信がありませんが 教えていただけたらうれしいです
ちょっと無理でしょうと思われたら そうおっしゃて頂いてかまいません
よろしくお願いします
No.2
- 回答日時:
もう一列追加して、「=CONCATENATE(",",該当セル,",")」とするのはだめでしょうか?
kumfさん ありがとうございます
教えていただいた方法でできました
その後 Officeアシスタントが
アンパサンド(&)を使用して数式中の文字列を結合することが出来ます
たとえばセルA1に "Week” セルA2に ”Day” ガ入力されている時
数式 ”=A1&A2”の計算結果は ”Weekday”となります
と 教えてくれました
おかげさまで 今回に限らず こらからもExcelをより便利に使えます
本当にありがとうございました
No.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は「動き」を見ながら「コード」を覚えていった方が入りやすいです。少しずつがんばってください。でも、このような繰り返し実行のステートメントや条件分岐は、マクロの自動記録では書いてくれませんから、ヘルプや参考書で勉強してみては?。
TTakさん解りやすく書いてくださってありがとうございます
でもすぐに出来ましたとは言えそうにありませんので
これから勉強しながら取り組みたいと思います
今までVBAは私にとっては便利そうでも無いし 難しそうなので
遠ざけていましたがこれを機会に勉強しようと言う気になりました
本当にありがとうございました
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 数字にカンマを入れる方法 2 2022/04/12 11:52
- その他(Microsoft Office) エクセルのマクロを教えてください。 1 2022/12/08 15:45
- Visual Basic(VBA) VBAで出力したCSVファイルの先頭にカンマを挿入したい 5 2022/10/14 12:20
- Visual Basic(VBA) 【VBA】特定の文字で改行(次の行)に行きたい。 3 2022/04/11 17:20
- Visual Basic(VBA) VBAでエクセルをtxtに変換するとエクセルでカンマを含む文字数字がtxtでは「""」付にならないよ 1 2022/08/27 12:17
- Excel(エクセル) VBAにてエクセルをpdf化する方法 1 2023/03/10 16:20
- Excel(エクセル) Excelについて Excel初心者です。 日報に数字を入力する時、誤った数字を入れると、セルが赤く 6 2023/03/31 17:05
- Java javaのCSVデータ読込についてです 6 2022/07/02 10:58
- Excel(エクセル) Excelのtextboxへの入力で小数点以下に0が続く場合でも正しく表示したい 3 2022/04/11 13:53
- Excel(エクセル) Excelのマクロを教えていただけないでしょうか? 1 2023/07/06 19:56
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA コピーを有効行までループ...
-
Excelで連続印刷をするマクロ
-
条件に応じて特定の行を非表示...
-
EXCELで指定範囲に一括し...
-
Excel にて非表示行を探すワー...
-
エクセルでの書式ー下付きショ...
-
yyyy/mm/ddの日付に一括変換す...
-
Excel2007 セルを右方向に削除...
-
Excel(VBA)データ入力に応じて...
-
エクセルで同じ行中にある先頭...
-
wordのvbaでハイパーリンク設定...
-
Excelでセル内の数式は残し値だ...
-
EXCEL:同じセルへどんどん足し...
-
Excelで同じシートのコピーを一...
-
エクセルで前のシートを連続参...
-
EXCELで1ヶ月分の連続した日付...
-
Accessのスプレッドシートエク...
-
別シート参照のセルをシート毎...
-
日報をエクセルで作成したいの...
-
VBAでシートコピー後、シート名...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
条件に応じて特定の行を非表示...
-
Excelでセル内の数式は残し値だ...
-
Excel2007で、太字にした行のみ...
-
Excelで連続印刷をするマクロ
-
「マクロ」の足し算の式を教え...
-
エクセル VBA 小数点を含む数字...
-
エクセルで全ての数字間にカン...
-
(Excel2003)すぐ左の最後の行...
-
Excel(VBA)データ入力に応じて...
-
Excel にて非表示行を探すワー...
-
エクセルで、行ごとの並び替え...
-
エクセル2003でマクロをおこな...
-
excel ある部分だけをコピペし...
-
行の入れ替えってどうするの?
-
Excelで周期的に列を削除する方法
-
整数行を残し小数点の行を削除...
-
EXCEL マクロで「キーワード入...
-
VBA コピーを有効行までループ...
-
Excel2007 セルを右方向に削除...
-
wordのvbaでハイパーリンク設定...
おすすめ情報