
添付のような表があるのですが、IDの列にカンマ区切りの文字列が入っています。
これを識別①~⑤の列のセルにそれぞれ分割して入れたいです。
例えば名前「AAA」のIDは「281a,282a,287q,383c,234d」ですが、これをそれぞれカンマで区切って、同じAAAの行のセルで
識別①のところに「281a」
識別②のところに「282a」
識別③のところに「287q」
識別④のところに「383c」
識別⑤のところに「234d」
と自動代入したいです。(鍵かっこは要りません。)条件としては、IDがいくつ入っているかわからない点です。添付の表には、すべて5個ずつ入っていますが、変動します。
Splitとかでカンマで切って入れればよいのだろうと思うのですが、解決できないので、教えていただければ助かります。よろしくお願いいたします。

No.4ベストアンサー
- 回答日時:
こんばんは!
すでに回答は出ていますので、参考程度で・・・
画像通りの配置だとします。
Sub Sample1()
Dim i As Long, k As Long, myAry As Variant
For i = 4 To Cells(Rows.Count, "A").End(xlUp).Row
If InStr(Cells(i, "B"), ",") > 0 Then
myAry = Split(Cells(i, "B"), ",")
For k = 0 To UBound(myAry)
Cells(i, k + 4) = myAry(k)
Next k
End If
Next i
End Sub
こんな感じではどうでしょうか?m(_ _)m
No.5
- 回答日時:
Range.TextToColumns メソッドが、そのまま使えます。
こんな感じです。
Sub sample()
Range("B4:B" & Rows.Count).TextToColumns _
Destination:=Range("D4"), _
DataType:=xlDelimited, Comma:=True
End Sub
No.3
- 回答日時:
マクロには、いろんな方法がありますが、テキスト・エディタで、「,」を「{tab}」に置き換えて、貼り付けても良いかもしれませんね。
'//標準モジュールに入れてください。
Sub ID_Spliting()
Dim c As Range, i As Long
Dim arBuf As Variant
Dim LastRow As Long
Dim Rng As Range
LastRow = Cells(Rows.Count, 2).End(xlUp).Row
Set Rng = Range("C4:Z" & LastRow) 'C列からZ列まで消去
If Not Rng Is Nothing Then
Rng.ClearContents
End If
For Each c In Range("B4:B" & LastRow)
If c.Value <> "" Then
arBuf = Split(c.Value, ",", , vbTextCompare)
c.Offset(, 1).Value = UBound(arBuf) + 1
For i = 0 To UBound(arBuf) '配列の出力
c.Offset(, i + 2).Value = arBuf(i)
Next
End If
Next
End Sub
No.1
- 回答日時:
よく分かりませんが マクロじゃないとダメな理由はなんですか?
=TRIM(MID(SUBSTITUTE($B4,",",REPT(" ",99)),COLUMN(A4)*99-98,99))
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】特定の文字で改行(次の行)に行きたい。 3 2022/04/11 17:20
- Excel(エクセル) CSVファイルがカンマ区切りにならない。対処法を教えていただきたいです。 仕事でSMS一斉送信ができ 2 2022/07/01 21:24
- その他(データベース) カラム上の重複を削除するクエリを教えてください 3 2022/04/12 14:11
- Visual Basic(VBA) 【VBA】複数行あるカンマ区切りのデータを全て縦に一列に並べたい 5 2022/04/13 17:03
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- その他(プログラミング・Web制作) プログラミング pythonの問題について 2 2022/04/19 00:41
- Excel(エクセル) Excelの関数について 3 2022/11/13 23:47
- Excel(エクセル) 名前と日付が一致する箇所にフラグを立てる関数が知りたいです 4 2022/08/11 02:24
- Excel(エクセル) エクセルでセルに何らかの文字が入力されたらそれを任意の数値として認識させる方法がしりたいです。 3 2023/03/16 20:19
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
表にフィルターをかけ、絞った...
-
【VBA】ユーザーフォーム リス...
-
16進数から2進数へ
-
[VBA]改行入りのセルの値を配列...
-
VB6.0 ファイルの一括読込み
-
エクセルで、絶対値の平均を算...
-
array関数で格納した配列の型を...
-
Excelでエラー#N/Aを含む最小値...
-
Excelのセルの色指定をVBAから...
-
[エクセル]連続する指定範囲か...
-
Sessionに格納した二次元配列を...
-
ExcelのINDEXとMATCH関数でスピ...
-
Vba Validationの選択状態を知...
-
VBA Dictionaryオブジェクトの...
-
ノーツのデータをVBScriptで取...
-
セルへのデータ入出力を高速で...
-
エクセルVBAで変数をセルに一行...
-
C#での動的配列作成方法について
-
.NET - 配列変数を省略可能の引...
-
CSVファイルの読み込みと表示(V...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで、絶対値の平均を算...
-
[エクセル]連続する指定範囲か...
-
Excelのセルの色指定をVBAから...
-
ExcelのINDEXとMATCH関数でスピ...
-
表にフィルターをかけ、絞った...
-
array関数で格納した配列の型を...
-
【VBA】ユーザーフォーム リス...
-
配列がとびとびである場合の書き方
-
DataSetから、DataTableを取得...
-
読み込みで一行おきに配列に格納
-
エクセルでエラーを無視して一...
-
VBAでの100万行以上のデータの...
-
.NET - 配列変数を省略可能の引...
-
iniファイルのキーと値を取得す...
-
Excel オートフィルタのリスト...
-
SUMPRODUCT関数を用いた最小値
-
VBA 配列に格納した値の平均の...
-
Datatableへの代入
-
VB6.0 ファイルの一括読込み
-
[VBA]改行入りのセルの値を配列...
おすすめ情報