テキストファイルを出力する(UTF-8)

テキストファイルを作成し、データを出力します。
ファイルをUTF-8フォーマットで出力します。

以下の関数を使用していますので、リンクから関数をコピーします。
ファイルの有無を確認する IsFileExists()
最終行取得(一番下から) GetLastRow()

【サンプルプログラム】

Sub sample2()
	Dim wb As Workbook
	Dim ws As Worksheet
	Dim filename As String

	' サンプルファイル
	filename = "C:\ExcelVBA\最終行列取得\sample1.xlsx"

	If IsFileExists(filename) = True Then		' ファイルの有無を確認
		Set wb = Workbooks.Open(filename)	' ブックを開く
		Set ws = wb.Sheets(1)			' シートを取得

		TextOutput_UTF8 ws, "C:\ExcelVBA\テキストファイルを出力\test_utf8.txt"

		' ブックを閉じる
		wb.Close
	Else
		MsgBox filename & "は存在しません", vbExclamation
	End If
End Sub

【関数化】

' テキストファイル出力(UTF-8)
Sub TextOutput_UTF8(ws As Worksheet, filename As String)
	Dim last_row As Long
	Dim idx1 As Long

	With CreateObject("ADODB.Stream")
		.Charset = "UTF-8"
		.Open

		last_row = GetLastRow(ws)	' 最終行を取得
		For idx1 = 1 To last_row
			.WriteText ws.Cells(idx1, 2).Value & "," & ws.Cells(idx1, 3).Value, 1
		Next

		' ファイルに書き込む(2:無い場合は作成、有る場合は上書き)
		.SaveToFile filename, 2
		' ファイルを閉じる
		.Close
	End With
End Sub

コメント