VBAでファイル名やIDなどのアンダースコア(”_”)で区切られた文字列から、特定の要素を抽出したいと思ったことはありませんか?
今回は、VBAのSplit()
関数を使って、文字列を”_”で分割し、目的の部分だけを取り出す方法をご紹介いたします。
実現したいこと
"Mori_Hayashi_Ki"
のような文字列から"Mori"
や"Hayashi"
、"Ki"
など特定の部分を取得したい- 文字列を
"_"
で区切り、配列として扱いたい
使用するVBAコード
以下のコードを実行すると、文字列を”_”で分割して、配列の要素として取得できます。
Sub SplitExample()
Dim fileName As String
Dim parts() As String
Dim desiredPart As String
fileName = "Mori_Hayashi_Ki"
parts = Split(fileName, "_")
' 2番目の要素を取得(インデックスは0から始まる)
desiredPart = parts(1)
MsgBox "取得した値は: " & desiredPart
End Sub
結果の確認
parts(0)
を取得 → 結果は"Mori"
parts(1)
を取得 → 結果は"Hayashi"
parts(2)
を取得 → 結果は"Ki"
Split()
関数は、指定した区切り文字で文字列を分割し、配列として返してくれる非常に便利な関数です。
補足:Split関数の構文
Split(対象の文字列, 区切り文字)
- 戻り値は 1次元の文字列配列
- インデックスは0から始まることに注意してください
Split("A_B_C", "_")
の結果:parts(0)="A"
,parts(1)="B"
,parts(2)="C"
よくある使用例
- ファイル名から「ユーザー名」「日付」などを取り出す場合
例:"Report_2024-05-01_Tokyo.xlsx"
- フォルダ構成やシリアル番号をパーツごとに分解する場合
- CSV風の文字列をそのまま扱う簡易処理にも便利
まとめ
VBAで文字列を分割して扱いたい場合は、Split()
関数を使うことでシンプルかつ柔軟に処理できます。
"_"
などの任意の区切り文字で簡単に分割可能- 0ベースの配列として管理されるため、必要な要素に直接アクセス可能
- ファイル名処理やデータ整形の場面で非常に有用
日常的に扱う文字列データの加工に、ぜひ活用してみてください。
スクールの紹介
【アイデミー】AIを学んで一発逆転のキャリアチェンジ!
最後に宣伝をさせてください。
夢見るAIエンジニアへ、今こそ一歩を踏み出せ!
最近、AI技術やデータサイエンスに興味を持ち始めたあなた。将来、AIエンジニアやデータサイエンティストとして活躍したいと考えているかもしれません。また、AIを使って業務課題や研究課題を解決したい、あるいは教養としてAIの知識を深めたいと思っている方もいるでしょう。
しかし、学び始めるとなると「どこから手をつけて良いのか分からない」「専門的すぎて理解できない」といった悩みが生じることも。そんなあなたのために、この3ヶ月間集中してAIプログラミングを習得するオンラインコーチングサービスがオススメです!
なぜこのサービスが選ばれるのか?その理由はこちら
- 初心者から上級者まで
完全なプログラミング初心者から研究者まで、幅広い方々に優良なコンテンツが提供されます。 - 徹底的な進捗管理
受講者の進捗をしっかりとチェックし、つまずきやすいポイントでのフォローが万全です。 - 専属メンターによる徹底サポート
AIの学び方から、実際の適用まで、専属のメンターが手厚くサポートします。 - 場所を選ばず学べるオンライン完結
東京以外の地域からも、気軽に学び始めることができます。
信頼の実績多数!
・日本最大級のプログラミングスクール実績
・受講者総数700名以上
・SaaS型学習サービス会員65,000名以上
・企業導入実績120社以上
・グッドデザイン賞受賞
・著名な賞受賞歴や経団連加盟も実現
夢を叶えるための第一歩を、一緒に踏み出しませんか?今なら、あなたもその一員として学び始めることができます!