VBA入門
Split関数

ExcelマクロVBAの基本と応用、エクセルVBAの初級・初心者向け解説
公開日:2013年5月以前 最終更新日:2021-11-30

第115回.Split関数


各要素(区切り文字)ごとに区切られた文字列から 1次元配列を作成し返します。


つまり、Split関数は文字列を指定の区切り文字で分割し1次元配列を作る関数です。
マクロVBAの文字列操作においてはSplit関数はとても重要かつ必須になりますので、しっかりと習得してください。


Split関数

Split関数の構文

Split(expression[, delimiter[, limit[, compare]]])

expression

必ず指定します。
文字列と区切り文字を含んだ文字列式を指定します。
引数 expression が長さ 0 の文字列 (") である場合、Split 関数は、要素もデータもない空の配列(UBoundが-1)を返します。

delimiter

省略可能です。ですが、指定したほうが良いです。
文字列の区切りを識別する文字を指定します。
引数 delimiter を省略すると、区切り文字に半角スペース (" ") が使用されます。
引数 delimiter が長さ 0 の文字列 ("") である場合は、引数 expression 全体の文字列を含む単一の要素の配列を返します。

limit

省略可能です。
通常は省略します、省略値は-1。
返す配列の要素数を指定します。
-1 を指定すると、すべての文字列を含んだ配列を返します。

compare

省略可能です。
文字列式を評価するときに使用する文字列比較のモードを表す数値を指定します。
vbBinaryCompare : バイナリ モードで比較を行います。
vbTextCompare : テキスト モードで比較を行います。
※バイナリ モードでは、全角半角、大文字小文字が区別されます。
  テキストモードでは、全角半角、大文字小文字が区別されません。


配列の添字の最小値は常に 0 です。
Option Base ステートメントの影響を受けません。
他の配列の下限を1にしている場合などは、添字の指定に注意してください。


区切り文字が文字列式内に存在しない場合

区切り文字(delimiter)が文字列式(expression)内に存在しない場合は、
文字列式全体の文字列を含む単一の要素(UBoundが0)の配列を返します。
区切り文字(delimiter)に長さ0の文字列 ("") を指定した場合も同様です。

Dim v
v = Split("a,b,c", " ")

このとき変数Vは、以下の状態になります。

VBA マクロ Split関数


空文字("")をSplitした場合

Dim v
v = Split("")

このとき変数Vは、以下の状態になります。

IsArray(v) ・・・ True
TypeName(v) ・・・ String()
LBound(v) ・・・ 0
UBound(v) ・・・ -1

VBA マクロ Split関数


Split関数の使用例

Sub sample()
  Dim strBuf As String
  Dim strSplit
  Dim i As Long
  strBuf = "aa,bbb,cccc,dd"
  strSplit = Split(strBuf, ",")
  MsgBox Join(strSplit, vbLf)
End Sub

上記では、
文字列"aa,bbb,cccc,dd"を、","で区切り、配列にしています。
そして、配列をJoin関数で、VbLfでつなげる事で、
メッセージBOXに、改行して表示しています。

マクロ VBA Split関数

マクロ VBA Split関数

以下も参考にしてください。

CSVの読み込み方法
・もっとも簡単かつ良くあるCSV読み込みVBAコード ・「,」「"」に対応したCSV読み込みVBAコード ・CSVをExcelブックとして開くVBA ・クエリーテーブルを使ったCSV読み込みVBAコード ・その他のCSV読み込み方法




同じテーマ「マクロVBA入門」の記事

第112回.動的配列(Redim)
第113回.配列に関連する関数
第114回.セル範囲⇔配列(マクロVBA高速化必須テクニック)
第115回.Split関数
第116回.ファイル操作Ⅱ(OpenとClose)
第117回.ファイル操作Ⅱ(Line Input #)
第118回.ファイル操作Ⅱ(Print #)
第119回.ファイルシステムオブジェクト(FileSystemObject)
第120回.OnTimeメソッド
第121回.SendKeysメソッドとAppActivateステートメント
第122回.Shell関数


新着記事NEW ・・・新着記事一覧を見る

第5章:AI×VBAでつまづかない!トラブルシューティングとAIとの付き合い方 |生成AI活用研究(2025-05-20)
第4章:【事例で学ぶ】AIとVBAでExcel作業を劇的に効率化する! |生成AI活用研究(2025-05-20)
第3章:AIを「自分だけのVBA先生」にする!質問・相談の超実践テクニック|生成AI活用研究(2025-05-19)
第2章 VBAって怖くない!Excelを「言葉で動かす」(超入門)|生成AI活用研究(2025-05-18)
第1章:AIって一体何?あなたのExcel作業をどう変える?(AI超基本)|生成AI活用研究(2025-05-18)
AI時代のExcel革命:AI×VBAで“書かない自動化”超入門|生成AI活用研究(2025-05-17)
Geminiと100本ノック 23本目:シート構成の一致確認|生成AI活用研究(5月16日)
AIが問う出版の未来は淘汰か進化か:AIと書籍の共存の道とは|生成AI活用研究(2025-05-16)
Geminiと100本ノック 22本目:FizzBuzz発展問題|生成AI活用研究(5月15日)
すぐに使える!生成AI プロンプト作成 実践ガイド|生成AI活用研究(2025-05-15)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.繰り返し処理(For Next)|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
5.ひらがな⇔カタカナの変換|エクセル基本操作
6.RangeとCellsの使い方|VBA入門
7.メッセージボックス(MsgBox関数)|VBA入門
8.セルのクリア(Clear,ClearContents)|VBA入門
9.FILTER関数(範囲をフィルター処理)|エクセル入門
10.条件分岐(Select Case)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ