PR

【Access VBA】カンマや記号で文字列をサクッと分解!Split関数でデータを抽出・取得する方法

VBA

Access VBAで業務システムを開発していると、

  • CSVデータを分解したい
  • ファイル名から日付を取得したい
  • コード体系を分割したい
  • 受注データを解析したい
  • 文字列を配列化したい

という場面が頻繁に発生します。

Split関数を使いこなせるようになるとCSV取込やデータ連携処理の開発効率が大幅に向上します。

実際の業務システム開発では、CSV取込、ファイル名解析、データ変換などで毎日のように利用される定番関数です。Copilotとの相性も非常に良く、AI時代でも覚えておきたいAccess VBAの重要テクニックの一つです。 [latest-inf…system.com]


スポンサーリンク

Split関数とは

Split関数は、

文字列

↓

区切り文字で分割

↓

配列化

を行う関数です。


基本構文

Split(文字列, 区切り文字)

サンプル

Dim arr

arr = Split( "A,B,C", ",")

Debug.Print arr(0)

Debug.Print arr(1)

Debug.Print arr(2)

結果

A

B

C


Split関数が重要な理由

Accessシステムで扱うデータは

CSV

TXT

ログデータ

ファイル名

外部システム連携データ

が非常に多いです。

ほとんどのケースで区切り文字が存在するため、Split関数が役立ちます。


逆引き① CSVを分割したい

最も代表的な利用例です。

Dim arr

arr = Split( "C001,東京商事,1000", ",")

結果

arr(0) = C001

arr(1) = 東京商事

arr(2) = 1000


逆引き② ファイル名から日付を取得したい

例えば

売上_20260906.csv

の場合です。

Dim arr

arr = Split( "売上_20260906.csv","")

結果

arr(0) = 売上

arr(1) = 20260906.csv

ファイル自動取込でよく利用します。 [latest-inf…system.com]


逆引き③ ハイフン区切りを分割したい

設備番号管理などです。

arr = Split( "EQ-2026-0001", "-")

結果

EQ

2026

0001


逆引き④ パス情報を分割したい

フォルダ解析です。

arr = Split( "C:\DATA\CSV\Test.csv", "")

結果

C:

DATA

CSV

Test.csv


逆引き⑤ 氏名を分割したい

利用者管理です。

arr = Split( "山田 太郎", " ")

結果

山田

太郎


配列との関係

Splitは配列を返します。

例えば

Dim arr

のように受け取ります。


件数確認

UBound(arr)

を利用します。


例

Debug.Print UBound(arr)

結果

2


実務活用例① CSV一括取込

CSVデータです。

顧客コード,顧客名,金額


分割

arr = Split( strLine, ",")

登録

strCode = arr(0)

strName = arr(1)

lngAmount = arr(2)

CSV取込システムで定番です。 [latest-inf…system.com], [latest-inf…system.com]


実務活用例② 測定データ解析

設備システムです。

設備番号|測定値|判定


分割

arr = Split( strData, "|")

結果

設備番号

測定値

判定

を取得できます。


実務活用例③ ファイル監視システム

受信ファイルです。

測定結果_20260906.csv


日付取得

arr = Split(strFileName, "")

strDate = Replace( arr(1), ".csv", "")

非常によく利用します。


実務活用例④ メールアドレス解析

メール管理です。

arr = Split( "abc@test.co.jp", "@")

結果

abc

test.co.jp


実務活用例⑤ ログデータ分析

ログ管理です。

2026/09/06,処理開始,正常


分割

arr = Split( strLog, ",")

ログ解析に利用できます。


Split利用時の注意点

区切り文字が存在しない

例えば

arr = Split( "ABC", ",")

結果

arr(0)=ABC

になります。


インデックスエラー

次は危険です。

MsgBox arr(5)

存在しない要素ならエラーになります。


安全な確認方法

If UBound(arr) >= 2 Then

End If

事前確認しましょう。


SplitとInStrの組み合わせ

実務ではセットで利用します。


まず確認

If InStr( strData, ",") > 0 Then

分割

arr = Split( strData, ",")

安全な実装になります。


Copilot活用術① CSV解析コード生成

Copilotへの依頼例です。

Access VBAです。

CSVデータを

Split関数で分割して

テーブルへ登録する

コードを作成してください。


Copilot活用術② ファイル名解析

Access VBAです。

売上_20260906.csv

から日付を取得する

コードを作成してください。


Copilot活用術③ データ変換支援

以下の文字列を

Split関数で解析する

サンプルコードを

作成してください。

AIによるコード生成と非常に相性が良い関数です。 [latest-inf…system.com]


開発現場での利用頻度

実務での利用頻度です。

順位用途
1位CSV取込
2位ファイル名解析
3位ログ解析
4位外部データ連携
5位文字列加工

特にCSVを扱うシステムでは必須レベルです。


Split関数を覚えるメリット

次のような効果があります。

  • CSV解析ができる
  • ファイル自動取込に活用できる
  • ログ管理に利用できる
  • 外部システム連携に強くなる
  • Copilot生成コードを理解しやすくなる

まとめ

Split関数はAccess VBA開発において非常に利用頻度の高い関数です。

特に

  • CSV取込
  • ファイル名解析
  • ログ分析
  • システム連携
  • データ変換

などで大きな効果を発揮します。

またCopilotを活用することで、

  • Splitコード生成
  • CSV解析支援
  • 文字列分解ロジック作成

も効率化できます。

派手な関数ではありませんが、実務では毎日のように利用する重要関数です。Access VBA開発者なら確実に使いこなせるようにしておきましょう。

Access VBA逆引き大全 600の極意 Microsoft 365/Office 2021/2019/2016/2013対応 | E-Trainer.jp[中村峻] |本 | 通販 | Amazon
AmazonでE-Trainer.jp[中村峻]のAccess VBA逆引き大全 600の極意 Microsoft 365/Office 2021/2019/2016/2013対応。アマゾンならポイント還元本が多数。E-Trainer.jp…

コメント

タイトルとURLをコピーしました