Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

VBA

VBAでcsvを読み込み区切り文字で区切る方法

投稿日:2021年5月12日 更新日:

 

<目次>

(1) VBAでcsvを読み込み区切り文字で区切る方法
 (1-1) 構文
 (1-2) サンプルプログラム
 (1-3) サンプルプログラムの実行結果

(1) VBAでcsvを読み込み区切り文字で区切る方法

(1-1) 構文

指定した区切り文字で区切るためには「Split」ファンクションを使用します。構文は次のようになっており、区切った結果を1次元の配列として、戻り値で返却します。

(構文)

Split([分割対象の文字列], "[区切り文字(任意)]",[配列要素数])

(構文説明)

[分割対象の文字列] 【必須】
String型を与えます。もし長さ0の文字列を与えた場合は空の1次元配列を返却します。
[区切り文字] 【任意】
任意の区切り文字を与えます。もし省略した場合はデフォルトで「” “」で区切ります。

(例)
“;”

[配列要素数] 【任意】
返却される配列の要素数をIntegerで指定できます。例えば「2」と指定した場合は2要素なので、区切りは1回のみしか行われません(-1で全返却)

(例)

'# 分割結果の格納用
Dim Result() As String
Result() = Split(tmpBook.ActiveSheet.Cells(i1, 1).Value, ";")

 

目次にもどる

(1-2) サンプルプログラム

(サンプル)

Public Sub SepCsv()

    Dim i1 As Integer
    '# 分割結果の格納用
    Dim Result() As String
    '# 分割対象のcsvを開く
    Dim tmpBook As Workbook: Set tmpBook = Workbooks.Open("C:\Temp\SepCsv\SampleData.csv")
    Debug.Print "#### : " & tmpBook.Name
    
    '# 開いたcsvの各行をループする
    For i1 = 1 To 1000
    
        '# 各行のA列の情報をSplitにより、指定したセパレータ(例「;」)で分割
        Result() = Split(tmpBook.ActiveSheet.Cells(i1, 1).Value, ";")
        '# 分割した単語の個数が0以上の場合(行に何か情報があった場合)
        If UBound(Result) > 0 Then
            '# 分割した単語数だけ列ループする
            For j1 = 0 To UBound(Result)
                '# 分割した各単語を、同じ行の「j1」列目にコピー
                '#(=セパレータで行を分割したのと同等の結果になる)
                tmpBook.ActiveSheet.Cells(i1, j1 + 1).Value = Result(j1)
            Next
        End If
    Next
    tmpBook.Save
    tmpBook.Close

End Sub

(図121)

目次にもどる

(1-3) サンプルプログラムの実行結果

・Before

マクロ実行前は、データはセミコロンで区切られており、全てA列に集まっています。
(図131)

 

・After
マクロ実行後は、セミコロンで分割を行い、1つの値を1セルに再配置しています。
 
(図132)

 

(操作動画)補足として操作動画も掲載します

Adsense審査用広告コード


Adsense審査用広告コード


-VBA

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

VBAでシートをループする方法について

  <目次> (1) VBAでシートをループする方法について  (1-1) 構文  (1-2) サンプルプログラム (1) VBAでシートをループする方法について VBAの処理でブック内の「 …

VBA・VB(VB.NET)・VBSの違いやそれぞれの特徴について

  <目次> (1) VBA・VB(VB.NET)・VBSの違いやそれぞれの特徴について  (1-1) VBA  (1-2) VB.NET  (1-3) VBS  (1-4) 三者の比較表 …

VBAでシート名をブックを手で開かずに取得してリネームする方法

<目次> (1) VBAでシート名をブックを手で開かずに取得してリネームする方法  (1-1) 構文  (1-2) サンプルプログラム  (1-3) 操作動画紹介・VBAダウンロード (1) VBAで …

VBAで画像を分類に応じて適切なフォルダに仕分けるプログラム

(0)目次&概説 (1) マクロ概要 (2) 使用方法 (3) アルゴリズム概要 (4) プログラム (1) マクロ概要 本マクロは画像ファイルを適切なフォルダに仕分けるためのマクロです。前提として、 …

VBAによる郵便番号の正規表現マッチ確認関数&置換関数の作成

  (0)目次&概説 (1) 正規表現とは (2) 正規表現はどのような場面で利用される? (3) VBAによる正規表現の簡易チェックツール  (3-1) 郵便番号を抽出したい  (3-2) …

  • English (United States)
  • 日本語
Top