VBA/CSVなどの区切り文字がある文字列を配列に格納する Split関数
の編集
Top
/
VBA
/
CSVなどの区切り文字がある文字列を配列に格納する Split関数
[
トップ
] [
編集
|
差分
|
履歴
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
#navi(../) * CSVなどの区切り文字がある文字列を配列に格納する Split関数 [#ga767db5] カンマ区切り、タブ区切り、パイプ区切りなど特定の区切り文字が含まれる文字列を~ 区切り文字で分割し配列に格納するSplit関数についての記事になります。~ Split関数を使ったVBAサンプルコードと実行例を以下に記します。 #contents #htmlinsert(office_ads_top.html) * 関連サイト [#pc89be97] -[[Microsoft Learn: Split 関数(Visual Basic for Applications)>https://learn.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/split-function]] * 動作確認環境 [#d8059349] - Windows 10 22H2 - Microsoft® Excel® for Microsoft 365 MSO (バージョン 2310 ビルド 16.0.16924.20054) 32 ビット * Split関数の仕様 [#xc28ef5b] [[Split 関数>https://learn.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/split-function]]ページの抜粋になります。 -構文 Split(expression, [ delimiter, [ limit, [ compare ]]]) |~パーツ|~説明| |expression|必ず指定します。&br;サブ文字列と区切り記号が含まれる文字列式です。&br;expression が長さ 0 の文字列 ("") の場合、Split は、空の配列、つまり、要素とデータのない配列を返します。| |delimiter|オプション。&br;サブ文字列の制限を識別するために使用する文字列です。&br;省略すると、空白文字 (" ") が delimiter とみなされます。&br;区切り記号が長さ 0 の文字列の場合は、式文字列全体を含む単一要素配列が返されます。| |limit|オプション。&br;返される部分文字列の数。-1 は、すべての部分文字列が返されることを示します。| |compare|省略可能。&br;サブ文字列を評価するときに使用する比較の種類を示す数値です。&br;値については、「設定」セクションを参照してください。| #br -設定~ compare 引数には、次の値を指定できます。 |~定数|~値|~説明| |vbUseCompareOption|-1|Option Compare ステートメントの設定を使用して比較を実行します。| |vbBinaryCompare|0|バイナリ比較を実行します。| |vbTextCompare|1|テキスト比較を実行します。| |vbDatabaseCompare|2|Microsoft Access のみ。&br;データベース内の情報に基づいて比較を実行します。| * VBAサンプルコードと実行結果 [#k53732cb] 以下にSplit関数を使ったVBAサンプルコードと実行結果を記します。 ** VBA サンプルコード [#da7c9627] Option Explicit Sub SplitSample() Dim commaStr As String: commaStr = "Windows,macOS,Ubuntu,Debian,Arch Linux,FreeBSD,OpenBSD" Dim tabStr As String: tabStr = "Apples" & vbTab & "oranges" & vbTab & "bananas" & vbTab & "grapes" & vbTab & "pineapples" Dim pipeStr As String: pipeStr = "Toyota|Suzuki|Daihatsu|Honda|Nissan" Dim retArray() As String Dim msg As String: msg = "" Dim i As Long 'Split comma string. retArray = Split(commaStr, ",") For i = 1 To UBound(retArray) msg = msg & i & ": " & retArray(i - 1) & vbCrLf Next i MsgBox msg, vbOKOnly, "Split(commaStr, "","")" 'Split tab string. msg = "" retArray = Split(tabStr, vbTab) For i = 1 To UBound(retArray) msg = msg & i & ": " & retArray(i - 1) & vbCrLf Next i MsgBox msg, vbOKOnly, "Split(tabStr, vbTab)" 'Split pipe string. msg = "" retArray = Split(pipeStr, "|") For i = 1 To UBound(retArray) msg = msg & i & ": " & retArray(i - 1) & vbCrLf Next i MsgBox msg, vbOKOnly, "Split(pipeStr, ""|"")" End Sub ** 実行結果 [#i1131e2d] 上記、VBAサンプルコードの実行結果です。 *** Split comma string. [#z26cf068] #ref(01.png) #br ***Split tab string. [#fd0f358f] #ref(02.png) #br ***Split pipe string. [#o949f4fe] #ref(03.png) #br 以上、Split関数のVBAサンプルコードでした。 #htmlinsert(office_ads_btm.html)
タイムスタンプを変更しない
#navi(../) * CSVなどの区切り文字がある文字列を配列に格納する Split関数 [#ga767db5] カンマ区切り、タブ区切り、パイプ区切りなど特定の区切り文字が含まれる文字列を~ 区切り文字で分割し配列に格納するSplit関数についての記事になります。~ Split関数を使ったVBAサンプルコードと実行例を以下に記します。 #contents #htmlinsert(office_ads_top.html) * 関連サイト [#pc89be97] -[[Microsoft Learn: Split 関数(Visual Basic for Applications)>https://learn.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/split-function]] * 動作確認環境 [#d8059349] - Windows 10 22H2 - Microsoft® Excel® for Microsoft 365 MSO (バージョン 2310 ビルド 16.0.16924.20054) 32 ビット * Split関数の仕様 [#xc28ef5b] [[Split 関数>https://learn.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/split-function]]ページの抜粋になります。 -構文 Split(expression, [ delimiter, [ limit, [ compare ]]]) |~パーツ|~説明| |expression|必ず指定します。&br;サブ文字列と区切り記号が含まれる文字列式です。&br;expression が長さ 0 の文字列 ("") の場合、Split は、空の配列、つまり、要素とデータのない配列を返します。| |delimiter|オプション。&br;サブ文字列の制限を識別するために使用する文字列です。&br;省略すると、空白文字 (" ") が delimiter とみなされます。&br;区切り記号が長さ 0 の文字列の場合は、式文字列全体を含む単一要素配列が返されます。| |limit|オプション。&br;返される部分文字列の数。-1 は、すべての部分文字列が返されることを示します。| |compare|省略可能。&br;サブ文字列を評価するときに使用する比較の種類を示す数値です。&br;値については、「設定」セクションを参照してください。| #br -設定~ compare 引数には、次の値を指定できます。 |~定数|~値|~説明| |vbUseCompareOption|-1|Option Compare ステートメントの設定を使用して比較を実行します。| |vbBinaryCompare|0|バイナリ比較を実行します。| |vbTextCompare|1|テキスト比較を実行します。| |vbDatabaseCompare|2|Microsoft Access のみ。&br;データベース内の情報に基づいて比較を実行します。| * VBAサンプルコードと実行結果 [#k53732cb] 以下にSplit関数を使ったVBAサンプルコードと実行結果を記します。 ** VBA サンプルコード [#da7c9627] Option Explicit Sub SplitSample() Dim commaStr As String: commaStr = "Windows,macOS,Ubuntu,Debian,Arch Linux,FreeBSD,OpenBSD" Dim tabStr As String: tabStr = "Apples" & vbTab & "oranges" & vbTab & "bananas" & vbTab & "grapes" & vbTab & "pineapples" Dim pipeStr As String: pipeStr = "Toyota|Suzuki|Daihatsu|Honda|Nissan" Dim retArray() As String Dim msg As String: msg = "" Dim i As Long 'Split comma string. retArray = Split(commaStr, ",") For i = 1 To UBound(retArray) msg = msg & i & ": " & retArray(i - 1) & vbCrLf Next i MsgBox msg, vbOKOnly, "Split(commaStr, "","")" 'Split tab string. msg = "" retArray = Split(tabStr, vbTab) For i = 1 To UBound(retArray) msg = msg & i & ": " & retArray(i - 1) & vbCrLf Next i MsgBox msg, vbOKOnly, "Split(tabStr, vbTab)" 'Split pipe string. msg = "" retArray = Split(pipeStr, "|") For i = 1 To UBound(retArray) msg = msg & i & ": " & retArray(i - 1) & vbCrLf Next i MsgBox msg, vbOKOnly, "Split(pipeStr, ""|"")" End Sub ** 実行結果 [#i1131e2d] 上記、VBAサンプルコードの実行結果です。 *** Split comma string. [#z26cf068] #ref(01.png) #br ***Split tab string. [#fd0f358f] #ref(02.png) #br ***Split pipe string. [#o949f4fe] #ref(03.png) #br 以上、Split関数のVBAサンプルコードでした。 #htmlinsert(office_ads_btm.html)
テキスト整形のルールを表示する
添付ファイル:
03.png
412件
[
詳細
]
02.png
419件
[
詳細
]
01.png
406件
[
詳細
]