あまり質問で見たことの無い変な内容だ。
1レコードでは、ピリオド、波線、句読点のうちどれかしか区切りとする文字は無い(混合は無い)
と考えて良いか。
それなら各レコードで、3文字を探し、存在した文字を区切り文字としてSplit関数で列に分ければ簡単。
2文字以上並存と、3文字間の優先関係など無いよね。
半角全角がはっきりしないが。質問には念を入れて正確に書くこと。
コードはGoogleででも、「VBA Split レコード」などで照会して、参考コードは出てくる。
Sub test01()
Open "C:\Documents and Settings\XXXX\My Documents\text17.txt" For Input As #1
i = 1
Do Until EOF(1)
'ファイルより1件分を読み込み
Line Input #1, strdata
'MsgBox strdata
'カンマなどで区切って配列に代入
x = InStr(strdata, ",")
If x <> 0 Then
MsgBox strdata
varData = Split(strdata, ",")
GoTo p1
End If
x = InStr(strdata, "~")
If x <> 0 Then
varData = Split(strdata, "~")
GoTo p1
End If
x = InStr(strdata, "、")
If x <> 0 Then
varData = Split(strdata, "、")
GoTo p1
End If
p1:
For j = 0 To UBound(varData)
Cells(i, j + 1) = varData(j)
Next j
i = i + 1
Loop
Close #1
End Sub
例データ
aaa,12345,ああああ
bbb~23456~いいい
ccc、3421、ウウウウ
結果
Sheet1
aaa 12345 ああああ
bbb 23456 いいい
ccc 3421 ウウウウ