Excelマクロ・VBA CSVなどの文字列の分割を行う方法
カンマなど特定の文字で区切られている文字列を
セルごとに分割する方法がExcelでは三つあります。
- テキストファイルウィザード
- 文字列関数
- ユーザ定義関数(マクロ・VBA)
それぞれ下記の特徴があります。
- | 方法 | 特徴 |
---|---|---|
① | テキストファイルウィザード | 柔軟性が高いが手間も大きい。 定型化されていない業務に適切。 |
② | 文字列関数 | 一度関数を作れば、その後の手間が小さい。 ただし数式が非常に複雑。 何度も分割を行う場合に適切。 |
③ | TEXTSPLIT関数 | 2022年9月のアップデートで追加された関数。 簡潔な数式で文字列の分割が可能です。 最新の関数が利用できる状況では最もお勧めです。 |
④ | ユーザ定義関数(マクロ・VBA) | マクロ・VBAを使う必要があるが 手間の少なさと数式のシンプルさで ②より優秀 |
この記事では③のユーザ定義関数(マクロ・VBA)で行う方法を紹介します。
他の方法は関連記事よりリンクする別の記事で紹介します。
目次
サンプルファイル
使用方法
※セキュリティの警告が出る場合は有効化してください。(解除方法↓)
サンプルファイルの中に保存されている
ユーザ定義関数MySplitを利用します。
=MySplit(文字列,区切り文字,取得する要素番号)
引数 | 省略時の値 | 説明 |
---|---|---|
文字列 | 省略不可 | 対象文字列を指定。 |
区切り文字 | 省略不可 | ,などの区切り文字を指定。||など2文字以上でも可。 |
取得する要素番号 | 省略不可 | 分割した結果の何番目の結果を返すかを指定 |
一つ目の引数にCSVなどの文字列、
二つ目の引数にカンマなどの区切り文字、
三つ目の引数に何番目の結果を表示するかを指定します。
(例では2行目にセル指定)
||(パイプ)など区切り文字が2文字以上でも構いません。
コードサンプル
コードは下記のとおりです。
標準モジュールを追加してペーストすれば
任意のブックで使用可能です。
on Explicit
Function MySplit(文字列 As String, 区切文字 As String, 取得する要素番号 As Integer)
On Error GoTo catchError
MySplit = Split(文字列, 区切文字)(取得する要素番号 - 1)
Exit Function
catchError:
' 該当する文字列が存在しない場合は空白を結果とする
MySplit = ""
End Function
Excel完全マスター: 関数・テクニック・新機能を網羅した決定版ガイド
本書は、Excelの基礎から応用まで、包括的に学べるガイドブックです。当サイトの豊富な情報を、電子書籍向けに最適化し、読みやすく再構成しました。
【本書の特徴】
- 情報量:Word-A4サイズ換算で1,400ページ相当
- 基本操作から高度なテクニックまで、段階的に学習可能
- 140種類の関数を詳細に解説
- 109種類の実用的なテクニックと具体例を紹介
- 最新機能(XLOOKUP関数、LET関数、シートビュー、LAMBDA関数、スピル等)を徹底解説
【対象読者】
- Excel初心者からプロフェッショナルまで
- 体系的にExcelスキルを向上させたい方
- 業務効率化を目指すビジネスパーソン
- データ分析や可視化のスキルを磨きたい方
【本書の強み】
- 実務に即した例題と解説
- 視覚的な図表やスクリーンショットで理解を促進
- 最新のExcelバージョンに対応した内容
- 著者の長年の経験に基づく、実践的なTipsを多数収録
【更新とサポート】
- 常に最新の情報を反映するため、定期的に内容を更新
- 最新版の入手方法:Amazonカスタマーサポートへお問い合わせください
【入手方法】
- 買い切り:950円
- Kindle Unlimited:読み放題プランで利用可能
Excelマスターを目指す方、業務効率を劇的に向上させたい方に、自信を持っておすすめできる一冊です。この1冊で、Excelの可能性を最大限に引き出す力が身につきます。