Excel/VBAからUTF-8形式でテキストを保存する方法
Windows上でExcel/VBAからファイルを保存しようとすると自動的にShift-JIS形式になりますが、昨今はWebアプリを中心にUTF-8形式が主流になっていますので、ExcelマクロによってはUTF-8形式でデータを保存したくなる時もあります。今回はその方法を紹介します。
[ad#top-1]
まずは設定
プログラムを組み前にExcel上でライブラリを読み込む必要があります。
まずはVisual Basic Editorを立ち上げます。
メニューから[ツール]-[参照設定(R)…]を選択します。
以下のウィンドウが現れるので、リストの中から「Microsoft ActiveX Data Object X.X Library」を探してチェックを入れます。X.XのところはどのバージョンでもOKですが、なるべく大きい番号を選びましょう。僕はだいたい2.8を選びますね。
これで設定は完了です。
ソースコードはこちら
テキストをUTF-8で保存するソースコードは以下の通りです。データベースへのアクセスと同じく、ADODBオブジェクトを使います。
あいうえお(改行)かきくけこ(改行)たちつてと というテキストをUTF形式で保存するようになっています。(さしすせそが抜けているのは今気づいた。)
7行目で、stm.LineSeparator = adLF と、改行キーをLFで指定しているものの、テキストの連結でCRLFを使ってしまっていますが、そこは状況に応じて・・・。
結果
このマクロを実行すると、text.txtというファイルが生成されます。
これをメモ帳で開いて、「名前を付けて保存」のダイアログを出してみてください。下部の「文字コード」が「UTF-8」になっていると思います。
ExcelとWebアプリとの連携はないと思いますが、例えばExcelマクロから表データをXML形式に保存するような場面では、Webアプリでも使えるようにUTF-8形式で出力するなどに利用できます。
[ad#ad-1]
スポンサーリンク