|
CSVの区切りを[,]から[;]に変更するため
CSVFaileを作成するマクロをネットから引用させていただき作成したのが以下のとうりです
この中で
' ADODB.Streamを参照
Set file_source = CreateObject("ADODB.Stream")
この部分「("ADODB.Stream")」の意味が理解できません
教えていただけないでしょうか
よろしくお願いいたします
Sub CSV作成()
' **********************************
' 初期設定
' **********************************
Dim csv_file_name As String
Dim code_source As String
Dim code_target As String
Dim char_source As String
Dim char_target As String
Dim char_temp As String
' オブジェクト変数の定義
Dim file_source As Object
Dim file_target As Object
' 保存ファイル名を決定
csv_file_name = ActiveWorkbook.Path + "\" + ActiveSheet.Name + ".csv"
' 文字コードを指定
code_source = "Shift_JIS"
code_target = "UTF-8"
' 置換文字を指定
char_source = ","
char_target = ";"
' 表示無効
Application.DisplayAlerts = False
' **********************************
' CSVファイルの保存
' **********************************
' 仮シートを複製
ActiveSheet.Copy
' CSV形式で保存
ActiveWorkbook.SaveAs Filename:=csv_file_name, FileFormat:=xlCSV, _
CreateBackup:=False
' 仮シートを閉じる
ActiveWindow.Close Savechanges:=False
' **********************************
' CSVファイルをUTF-8に変換
' **********************************
' ADODB.Streamを参照
Set file_source = CreateObject("ADODB.Stream")
' CSVファイルの読み込み
With file_source
.Charset = code_source
.Open
.LoadFromFile csv_file_name
char_temp = .ReadText
End With
' 置換処理
char_temp = Replace(char_temp, char_source, char_target)
' CSVファイルの書き出し
Set file_target = CreateObject("ADODB.Stream")
With file_target
.Charset = code_target
.Open
.WriteText char_temp
End With
' 文字コードの変換
file_source.copyto file_target
file_target.savetofile csv_file_name, 2
End Sub
|
|