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」は消えませんので試してみてください。