Excel VBAでテキストを書き出す

こんにちは、ジンです。
Excel VBAを使ってテキストファイルを生成するサンプルを書きます。
生成されるファイルの文字コードはshift-jisがディフォルトのようですが
UTF-8に変換する方法も書いておきます。

excel_text

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
Private Sub CommandButton1_Click()
 
'宣言
Dim tf_name, path, FN As String
 
'保存するファイル名
tf_name = "demotext.txt"
 
'ファイルのフルパス
path = ActiveWorkbook.path & "\"
FN = path & tf_name
 
'ファイルの生成開始
Open FN For Output As #1
 
'一行分の書き込み
Print #1, "ここにテキストを書き込みます。"
 
'セルの縦方向に入力されている分すべて書き込みたい場合
For i = 1 To Worksheets(1).Range("A1").End(xlDown).Row
    Print #1, Worksheets(1).Cells(i, 1).Value
Next i
 
 
'ファイルを閉じる
Close #1
 
 
'文字コード処理(JISからUTF-8に変換する場合)
Dim stream As Object
Dim stream2 As Object
 
Set stream = CreateObject("ADODB.Stream")
    stream.Open
    stream.Type = 2
    stream.Charset = "shift_jis"
    stream.LoadFromFile FN
 
Set stream2 = CreateObject("ADODB.Stream")
    stream2.Open
    stream2.Charset = "utf-8"
    stream.CopyTo stream2
    stream2.SaveToFile (FN), 2
    stream2.Close
    stream.Close
 
Set stream2 = Nothing
Set stream = Nothing
 
 
'終了メッセージ表示
MsgBox "ファイルの生成が終わりました。"
 
 
End Sub

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です