非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

Excel/VBAからUTF-8形式でテキストを保存する方法

   

Windows上でExcel/VBAからファイルを保存しようとすると自動的にShift-JIS形式になりますが、昨今はWebアプリを中心にUTF-8形式が主流になっていますので、ExcelマクロによってはUTF-8形式でデータを保存したくなる時もあります。今回はその方法を紹介します。

[ad#top-1]

まずは設定

プログラムを組み前にExcel上でライブラリを読み込む必要があります。

まずはVisual Basic Editorを立ち上げます。

1

 

メニューから[ツール]-[参照設定(R)…]を選択します。

2

以下のウィンドウが現れるので、リストの中から「Microsoft ActiveX Data Object X.X Library」を探してチェックを入れます。X.XのところはどのバージョンでもOKですが、なるべく大きい番号を選びましょう。僕はだいたい2.8を選びますね。

3

 

これで設定は完了です。

ソースコードはこちら

テキストをUTF-8で保存するソースコードは以下の通りです。データベースへのアクセスと同じく、ADODBオブジェクトを使います。

あいうえお(改行)かきくけこ(改行)たちつてと というテキストをUTF形式で保存するようになっています。(さしすせそが抜けているのは今気づいた。)

7行目で、stm.LineSeparator = adLF と、改行キーをLFで指定しているものの、テキストの連結でCRLFを使ってしまっていますが、そこは状況に応じて・・・。

 

結果

このマクロを実行すると、text.txtというファイルが生成されます。

これをメモ帳で開いて、「名前を付けて保存」のダイアログを出してみてください。下部の「文字コード」が「UTF-8」になっていると思います。

4

 

ExcelとWebアプリとの連携はないと思いますが、例えばExcelマクロから表データをXML形式に保存するような場面では、Webアプリでも使えるようにUTF-8形式で出力するなどに利用できます。

[ad#ad-1]

スポンサーリンク

 - Excel, VBA