[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBAを使用した区切り ダブ カンマについて』(ポカタン)
エクセルVBA を使用して十数万行のデータの区切りをしたいと思っています。
対象は「ダブ」と「カンマ」なのですが
データがA〇列に
"abcd","abcd2","abcd3","abcd4","abc,d5"
となっています
これをA〜E列に
abcd abcd2 abcd3 abcd4 abc,d5
と区切りたいのですが
ar = Split(Replace(s, """", ""), ",")
とすると
abcd abcd2 abcd3 abcd4 abc d5
最後の列が「abc」と「d5」が分離してしまいます
どうすれば解決できるのでしょうか。
十数万行の処理行う為、なるべく処理の軽い方法で作成しようと思っているのですが、どなたかご教授いただけませんでしょうか。
< 使用 Excel:Excel2010、使用 OS:Windows10 >
'
Dim ar 'Split分割後の配列 Dim iCol '列位置 Dim i 'ループカウンタ Dim t As String '判別ループカウンタ Dim s '元文字列 Dim div '分割後文字列 Dim k As String 'スペース削除
'A1セルを初期位置をして選択 Sheets("Sheet1").Range("A1").Select i = 0
Do s = ActiveCell.Offset(i, 0).Value 'セルに未入力の場合はここで処理を終了する If s = "" Then Exit Do End If
'カンマ区切りで配列化 ""削除 ar = Split(Replace(s, """", ""), ",")
Sheets("Sheet1").Range("A" & i + 1).Value = i
iCol = ActiveCell.Column
For Each div In ar
ActiveCell.Offset(i, iCol).Value = div
iCol = iCol + 1 Next
i = i + 1 Loop (ポカタン) 2020/07/31(金) 21:34
A〇列ってどういう意味ですか?
AO(エイオー)列でもないですよね。
A列ということでいいんですか?
それなら一般機能の「データ区切り」を使うのが一番でしょう。
うーん?タブってどこに関係するんですか?
正確に書いていただきたいですね。
(γ) 2020/07/31(金) 21:41
(γ) 2020/07/31(金) 21:58
誤記及び理解しづらい説明申し訳ござません。
「タブ」ではなく「ダブ(")」と記載したつもりだったのですが
一般機能の「区切り位置」を使用うのがやはり妥当なのですね。
区切位置処理後の作業が複数あり、まとめて処理するのにマクロでできればと考えていたのですが、
お手数をおかけいたしました。
ありがとうございました。
(ポカタン) 2020/07/31(金) 22:12
いや、手作業でやってくださいとは言っていません。
いくらでもマクロにできます。
>どうしてもマクロなら記録してください。
>参考情報がえられるはずです。
これは実行されましたか?
(γ) 2020/07/31(金) 22:24
ほとんどマクロ記録そのものですが、こんな風に。
Sub test() Dim rng As Range Set rng = Range("A1").CurrentRegion.Columns(1) rng.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _ Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _ :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1)), _ TrailingMinusNumbers:=True End Sub
もし項目数が不定ということであれば、 FieldInfo引数のところは、少し多めに定義しておいても問題ないと思います。 (γ) 2020/07/31(金) 22:49
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.