• ベストアンサー

文字列をSplitを使って区切りたい。 ","

"," で区切られた文字列をSplitを使って区切りたいのですが。 例. "abc","123d","fr44","1erg" Dim Arr_Koumoku as string() Dim delimiter as string delimiter = Chr(34) & Chr(44) & Chr(34) 'delimiter = """,""" "← これでも結果は同じだった Arr_Koumoku = Arr_Kaigyo(i).Split(delimiter) とやると。 Arr_Koumoku(0) =   Arr_Koumoku(1) = abc Arr_Koumoku(2) = , Arr_Koumoku(3) = 123d Arr_Koumoku(4) = , Arr_Koumoku(5) = fr44 Arr_Koumoku(6) = , ・・・・ と区切られてしまいます。 Arr_Koumoku(0) ="abc" Arr_Koumoku(1) ="123d" Arr_Koumoku(2) ="fr44" Arr_Koumoku(4) ="1erg" としたいのですが。アドバイスを頂けたら幸いです。 開発環境 WindowsXP SP2 Visual Studio 2005 Standard Edition SP1

質問者が選んだベストアンサー

  • ベストアンサー
  • NYOI
  • ベストアンサー率58% (56/96)
回答No.2

そもそもString単体を引数にするSplitが存在しません。 Option Strict Offにしてるのかな…? 書き換えるなら Dim delimiter() As String = {"""", ",", """"} Arr_Koumoku = Arr_Kaigyo(i).Split(delimiter, StringSplitOptions.RemoveEmptyEntries) これで Arr_Koumoku(0) =abc Arr_Koumoku(1) =123d Arr_Koumoku(2) =fr44 Arr_Koumoku(4) =1erg となります。

その他の回答 (3)

  • pulsa
  • ベストアンサー率57% (34/59)
回答No.4

あんま自信ないですが Arr_Koumoku = """abc"", ""123d"", ""fr44"", ""1erg""" MsgBox Split(Replace(Arr_Koumoku, """", ""), ", ")(0) ようは先に全ての『"』を取っ払って、『,』でSplitする感じです VB2005で通用するかわかりませんが、エクセルVBAでCSVファイルを処理するときは、良くやります 全ての『"』を取っ払ってもStringとして必要な『"』は残る(補完される?)ので、問題ありません 両サイドの『"』が必要なら、出力時に補完します MsgBox """" & Split(Replace(Arr_Koumoku, """", ""), ", ")(0) & """"

  • NYOI
  • ベストアンサー率58% (56/96)
回答No.3

下の回答修正。 Dim delimiter() As String = {"""", ",", """"} ではなく Dim delimiter() As String = {"""", ","} でした。

  • auty
  • ベストアンサー率58% (284/486)
回答No.1

Visual Basicのことは詳しく知りませんが、 結果を見ると、 Arr_Kaigyo(i).Split(delimiter) のdelimiterは、最初の1文字のみが使用されています。 Split(delimiter) の引数delimiterが、複数の文字を含む文字列に対しても有効かどうか確認してください。 ダメな場合は、他の方法を探したほうが良いでしょう。

関連するQ&A