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-3) 操作動画紹介・VBAダウンロード (1) VBAで …

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

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

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

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

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

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

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

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

  • English (United States)
  • 日本語
Top