csvをブックとして読み込む

このマクロは、「CSVの読み込み方法」を参考にしています。ありがとうございます。

CSVをブックとして読み込み、シート全体を、一気に配列に入れ、読み込んだブックは保存せず閉じています。データ中に改行があり、その上、高速に処理したいといった場合に最適です。

このプロシージャは、引数として、「csvファイル名」と「シート名」を指定すると、csvデータが、指定のシートに、読み込まれす。

使い方は、以下と同じです。

'*******
'* 「csv」を「配列」に入れるプロシージャ。20230913
'* 改行を含んだデータにも対応可能
'* csvFile:csvファイル名(フルパス)
'* myArray:出力される配列は、参照渡し。配列は、モジュールレベル変数としている。
Private Sub csv_to_array_Excel(ByVal csvFile As String, ByRef myArray As Variant)
    Dim varFileName As Variant

    varFileName = csvFile
    
    If varFileName = False Then
        Exit Sub
    End If
  
    Workbooks.Open FileName:=varFileName
    
    ' シートを配列にいれる
    ' ByVal SheetName As String, ByRef myArray As Variant, Optional RejectRw As Long = 0
    Call sheet_to_array(ActiveSheet.Name, myArray)
    
    ActiveWorkbook.Close SaveChanges:=False
End Sub

Call sheet_to_array は、以下を参照してください。

csvファイルを読み込む方法としては、これが最もおすすめです。
ただし、この方法で一番問題となるのは、数値の頭0が消えてしまう事です。つまり、CSVの中が、001、だとしても、セルには、1、として入力されてしまう事です。
この点のみ、留意すれば、この方法が最適でしょう。

この頭の「0」を復活させる関数は、以下を参照してください。

以下の方法読み込むと、「0」は消えませんので試してみてください。

Follow me!

コメントを残す