プロが教えるわが家の防犯対策術!

こんにちは。いつもお世話になっております。
VBAについて教えてください。
まだまだ、勉強中で検索をしたのですが、真似できるようなコードが自力で見つけることが出来ませんでした。
ご教授頂けると嬉しいです。

B1にCSVのカンマ区切りの文字が入力されているのですが
カンマがあるところで
B2
B3
B4
と改行していきたいです。


B1 AAA,BBB,ccc,ddd

B2 AAA
B3 BBB
B4 ccc
B5 ddd

また20シートくらい同じよう文字列が入っており全部のシートに対して一気に同じことをしたいです。

よろしくお願いいたします。

質問者からの補足コメント

  • tatsumaru77さんありがとうございます。ご質問の補足となります。
    しっかり確認したら
    B1だけに文字が入っているシートがほとんどですが
    稀にC1にも文字列が入っているものがありました。
    B1がブランクというのは無く、必ずB1に文字列が入っております。
    どうぞよろしくお願いいたします。

      補足日時:2022/04/11 18:06

A 回答 (3件)

以下のマクロを標準モジュールに登録してください。



Option Explicit
Public Sub 全シートB1展開()
Dim i As Long
Dim j As Long
Dim ws As Worksheet
Dim str As Variant
For i = 1 To Worksheets.Count
Set ws = Worksheets(i)
str = Split(ws.Cells(1, "B").Value, ",")
For j = 0 To UBound(str)
ws.Cells(2 + j, "B").Value = str(j)
Next
Next
MsgBox ("完了")
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます!!
期待通りの動きをしました!!!
こんな短時間で記載頂きすごい。
ありがとうございました。

お礼日時:2022/04/12 11:05

こんにちは



B2セル以降に何か入力されていても、上書きしてしまってよいのであれば・・

Set c = Range("B1")

If c.Value <> "" Then
v = Split(c.Text, ",")
c.Offset(1).Resize(UBound(v) + 1).Value = WorksheetFunction.Transpose(v)
End If

>全部のシートに対して一気に同じことをしたいです。
上記の変数 c のセル位置を対象のセルになるようにしてループさせれば、まとめて処理することが可能でしょう。
(どこのどんなシートのどのセルなのか、まったくわからないのでコードにはできません)
    • good
    • 0
この回答へのお礼

説明不足にも関わらずありがとうございます!!!
参考にさせていただきます!!

お礼日時:2022/04/12 11:04

必ず全てのシートのB1にカンマ区切りの文字がありますか。


他のシートは、F1とか、H1とかのケースはないでしょうか。
    • good
    • 0
この回答へのお礼

ありがとうございます!
補足を追加したのですが、B1だけに文字が入っているシートがほとんどですが極稀にB1+C1にも文字が入っておりました。

お礼日時:2022/04/11 18:07

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A