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でマウスを自動操作する方法~自動打鍵を目指して~

<目次> (1) VBAでマウスを自動操作する方法  (1-1) マウス操作のために利用する仕組み  (1-2) 構文(HelloWorld)  (1-3) サンプルプログラム (1) VBAでマウス …

VBAで処理と処理の間に一定時間を空けて実行する方法

今回はVBAで処理と処理の間に一定時間を空けて実行する方法について、備忘も兼ねて記載します。 (0)目次&概説 (1) Application.wait (2) サンプルプログラムソース (3) サン …

VBAによるマトリクスの行列を反転させて転記するプログラム

(0)目次&概説 (1) マクロ概要 (2) 使用方法 (3) アルゴリズム概要 (4) プログラム (1) マクロ概要 マトリクス形式で表現されたデータの行と列を入れ替えるプログラムです。 (※Ex …

VBAでファイルやフォルダの存在チェックを行う方法

<目次> (1) VBAでファイルやフォルダの存在チェックを行う方法  (1-1) 構文  (1-2) サンプルプログラム (1) VBAでファイルやフォルダの存在チェックを行う方法 (1-1) 構文 …

  • English (United States)
  • 日本語
Top