2016.05.27みなさん、こんにちは!タカハシ(@ntakahashi0505)です。エクセルのデータを様々なファイルに書き出す方法についてお伝えしています。以前、こちらの記事でCSV形式で書き出す方法を紹介しました。エクセルVBAでセルが結合されているかどうか、またそのセルの数を判定する方法エクセルVBAでセルが結合されているかどうか、またその結合されているセルの数を判定する方法を紹介します。結合セルがある場合のエクセル表をHTML形式に出力するプログラムも合わせて紹介します。tonari-it.com2016.05.14しかしながら、残念ながらこの方法で書き出すCSVファイルの文字コードは「Shift-JIS」なんです。世の中のソフトウェアの多くはそれとは別の「UTF-8」に対応をしている場合が多いので、そこにデータを渡そうとしたらUTF-8に変換をして渡す必要があります。そこで今回は、エクセルVBAでUTF-8の文字コードでCSVファイルを書き出す方法についてお伝えします。目次おさらい:Shift-JISでCSVを書き出すADODB.StreamオブジェクトでUTF-8のCSVを書き出すUTF-8でCSVを書き出すプログラム書き出しの際に使うADODB.Streamオブジェクトのプロパティとメソッド実行結果まとめ連載目次:エクセルVBAでCSVや様々なテキストファイルを出力するおさらい:Shift-JISでCSVを書き出すこちらが以前紹介した、PrintでCSVを書き出すプログラムです。このプログラムのおさらいをします。Sub9行目のOpenで書き出すファイルを出力用ファイルとしてオープンします。14~27行目で対象となるシートのデータがある範囲を走査しながら、開いたファイルにデータをカンマ区切りで書き出していきます。書き出しにははPrintを使います。最後に29行目でファイルを閉じて終了です。冒頭でお伝えした通り、この方法では有無も言わさずShift-JISで書き出されます。ADODB.StreamオブジェクトでUTF-8のCSVを書き出すUTF-8でCSVを書き出すにはADODB.Streamオブジェクトを使います。簡単に説明するとADODB.Streamオブジェクトにいったんデータを流し込むと、取り扱う文字コードがUTF-8の状態でCSVファイル保存ができるようになります。ADODB.Streamオブジェクトとは何か、またそのライブラリの追加方法について詳しくはこちらの記事で解説していますのでご覧ください。Input命令でUTF-8のCSVファイルを取り込むと文字化けを起こします。今回は、ADODB.Streamを使ってUTF-8のCSVファイルを取り込む方法についてお伝えします。tonari-it.com2016.03.20UTF-8でCSVを書き出すプログラムADODB.Streamオブジェクトを使ってUTF-8でCSVを書き出すプログラムはこちらになります。Sub見慣れないものが多く出てきている印象ですが、大まかな流れはそれほど変わりません。ADODB.Streamオブジェクトを生成ADODB.Streamオブジェクトの文字コード、改行コードを設定ADODB.Streamオブジェクトをオープン1行ずつ文字列を生成し、ADODB.Streamオブジェクトに流し込むADODB.Streamオブジェクト内のデータをCSVファイルに保存するADODB.Streamオブジェクトをクローズという流れです。書き出しの際に使うADODB.Streamオブジェクトのプロパティとメソッド以下で本プログラムで使用しているADODB.Streamオブジェクトのプロパティとメソッドについて解説をします。Charset:Streamオブジェクトで取り扱う文字コードを指定。LineSeparator:Streamオブジェクトで取り扱う改行コードを指定します。規定値はadCRLF。Open:Streamオブジェクトを開く。WriteText:Streamオブジェクトに文字列を書き出す。オプションadWriteLineで改行コードを追加して書き込む。SaveToFile:Streamオブジェクトから指定のファイルのデータを書き込む。オプションadSaveCreateOverWriteでファイルの上書きをします。Close:Streamオブジェクトを閉じる。意味さえわかれば対して難しい部分はないかと思います。ADODB.Stream...恐れるに足らずです。ちなみにですが、Unixなどでは改行コードはLFの場合が多いためLineSeparatorプロパティで設定をしています。実行結果このプログラムで出力したデータをテキストエディタで開いてみるとと、このようにきちんとUTF-8で書き出しがされていることがわかります。まとめエクセルVBAでUTF-8のCSVファイルを書き出す方法についてお伝えしました。Open,Print,Close命令とだいぶ雰囲気が異なるので少し戸惑うかも知れませんが、実際にやっていることはほぼADODB.Streamオブジェクトのメソッドへの置き換えとプラスでいくつかのプロパティ設定となります。次回はBOMなしUTF-8のCSV書き出しについてお伝えできればと思います。エクセルVBAでBOM無しのUTF-8でCSVファイルなどを出力する方法エクセルVBAでデータを様々なファイル形式に書き出す方法についてお伝えしています。今回は、エクセルVBAでBOMなしのUTF-8にてCSVファイルを書き出す方法についてお伝えしていきたいと思います。tonari-it.com2016.06.12どうぞお楽しみに!連載目次:エクセルVBAでCSVや様々なテキストファイルを出力する多くの企業では様々なデータをエクセル形式で保持しています。そのデータ群をCSVやHTMLなどで有効利用できたら便利ですよね?このシリーズでは、エクセルデータをテキストをはじめ様々な形式のファイルに出力する方法についてお伝えしています。プランノーツ代表、コミュニティ「ノンプロ研」主宰。ITで日本の『働く』の価値を上げる!」をテーマに、VBA&GASの開発、講師、執筆などをしております。→詳しいプロフィールはコチラ★ご依頼・ご相談はお気軽にどうぞ!→お問い合わせはコチラ★フォロー頂ければ嬉しいです。「コミュニティ+講座」形式で継続性&教え合える環境も提供。!ノンプログラマーがプログラミングスキルを身に着ける支援ををするコミュニティ。セミナー・もくもく会・Facebookグループのサポートで「自らで学び続ける力をつける」支援、「教え合うことで学びの価値を上げる」場の提供をしています。関連記事Excel・VBA活用術エクセルVBAでカレンダーシートの土日祝日の行に背景色をつける方法エクセルVBAで土日祝日を判定し、その行に背景色をつける方法をお伝えします。背景色をつけることでカレンダーに見た目のメリハリがつき見やすくなります。土日祝日を判定する関数とともに紹介します。VBAで、既読メールをUnreadプロパティで未読メールにする方法をご紹介しています。単体ではあまり便利さが感じられないかもしれませんが、他のメソッドやイベントと組み合わせれば、とっても便利に使えるかもしれません。2019.06.03Excel・VBA活用術ExcelにPythonが搭載されることによるノンプログラマーのメリットとVBAの今後についてMicrosoftがExcelにPythonの搭載を検討しているというニュースがありました。今回はこれがノンプログラマーにとってどんなメリットをもたらすのか、また搭載後のVBAがどうなるのかについても考えます。2017.12.21Excel・VBA活用術エクセルVBAでIEを使わずにHTMLドキュメントを取得する方法エクセルVBAでHTTPリクエストにより取得したHTML文字列から、HTMLドキュメントオブジェクトを生成する方法です。IEを使わずにHTMLドキュメントを取得することができるようになります。Scriptのクラス」をテーマにシリーズでお伝えしております。今回はGASのクラスに最も簡単なプロパティを追加する方法です。thisキーワードの意味も解説します。2019.02.10Excel・VBA活用術エクセルVBAでIEを操作するもっとも簡単なクラスを作成する方法エクセルVBAでInternetExplorerを操作してWebスクレイピング...けっこういつも同じ処理を作ります。そんなときには、クラスで部品化が有効です。IEを操作するもっとも簡単なクラスを作成します。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント109セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント109セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。Scriptが「V8ランタイム」をサポート!モダンなECMAScript構文が使えるようになった2020.02.072020.02.08GASでコピーしたGoogleスライドのプレゼンテーションを取得する方法2020.02.052020.02.05Facebookページいつも隣にitのお仕事タイトルとURLをコピーしました。