VBA入門
Split関数

ExcelマクロVBAの基本と応用、エクセルVBAの初級・初心者向け解説
最終更新日: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 ・・・新着記事一覧を見る

イータ縮小ラムダ(eta reduced lambda)|エクセル入門(2023-11-20)
PIVOTBY関数(縦軸と横軸でグループ化して集計)|エクセル入門(2023-11-19)
GROUPBY関数(縦軸でグループ化して集計)|エクセル入門(2023-11-18)
PY関数(Pythonコードをセル内で実行)|エクセル入門(2023-11-17)
画像「セルに配置」のVBAについて(365の新機能)|VBA技術解説(2023-11-13)
スピルのゴーストの範囲を選択するVBA|ツイッター出題回答 (2023-10-31)
エクセル試験3:月間の所定労働時間|エクセル練習問題(2023-10-04)
エクセル試験2:所得税の計算|エクセル練習問題(2023-10-04)
エクセル試験1:曜日別の平均客単価|エクセル練習問題(2023-10-04)
列全体を指定する時のRangeとColumnsの違い|ツイッター出題回答 (2023-09-24)


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

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.繰り返し処理(For Next)|VBA入門
4.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
5.変数宣言のDimとデータ型|VBA入門
6.条件分岐(IF)|VBA入門
7.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
8.並べ替え(Sort)|VBA入門
9.マクロとは?VBAとは?VBAでできること|VBA入門
10.Range以外の指定方法(Cells,Rows,Columns)|VBA入門




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


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



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