窓辺の小石 第198回 Excel's Run
マイナビニュース / 2025年1月10日 19時54分
Excelがインストールされていると、拡張子が.csvのCSV(Comma Separated Values)ファイルはExcelに関連付けされている。エクスプローラーで.csvファイルをダブルクリックすればExcelが走り出す。しかし、日本語版Excelでは、ファイルのエンコードがシフトJISであると仮定されている。このやり方でUTF-8のCSVファイルを開こうとすれば、文字化けするだけでなく、場合によっては、区切り位置を間違うこともある。
Windowsでもメモ帳がUTF-8に対応している昨今、シフトJISでしか読み込めないのは情けない感じがする。しかし、この文字エンコードの仮定がUTF-8に変更されることはない。というのは、すでにシフトJISであることを前提としたマクロや、ExcelにCSVを処理させるシステムが大量に稼働しており、変更することは、これらすべてが動作しなくなることを意味する。
シフトJISとUTF-8は、一部のコードが重複していて、完全な自動判別ができない。このため、文字コードを仮定して読み込む必要があり、従来との互換性を維持するにはシフトJISを仮定するしかないのである。
UTF-8エンコードのCSVファイルを読み込むには、先にExcelを起動して、PowerQuery(リボンのデータタブ ⇒ データの取得 ⇒ テキストまたはCSVから)を使って読み込む。このときであれば、文字エンコード方式を指定できる。なお、この方法では、必ずしも拡張子が.csvである必要はなく、.txtでタブ区切りといったファイルを読み込むこともできる。
バッチファイルなどからExcelを起動してPowerQueryにファイルを読み込ませることができるなら、関連付けを利用してエクスプローラーからPowerQuery経由でファイルを読み込むことが可能になる。
色々とやってみたが、PowerQueryを起動するためのQueries.Addメソッドを使うには、Excelマクロ(VBAスクリプト)が必要になり、WSHのVB Scriptなどからは起動できなかった。Copilotにも聞いてみたが、結論は同じ。しかし、Excel側でマクロが動くように設定しておくのは、ちょっと面倒だ。できればExcelの設定などは変更したくない。
そこでWSH(Windows Scripting Host)のVBScriptを使い、SendKeysでキーボードショートカットを操作して、PowerQueryにCSVファイルを読み込ませることにした。後述するようにSendKeysは万能だが欠点がある。リスト01がそのスクリプトだ。
-
- 1
- 2
この記事に関連するニュース
-
ChatGPTのデスクトップアプリをmacOSで使う方法
ITmedia Mobile / 2025年1月9日 23時40分
-
eラーニングシステムの決定版『KnowledgeDeliver』7.6をリリース
PR TIMES / 2024年12月29日 22時40分
-
窓辺の小石 第195回 オデッサ・ファイル
マイナビニュース / 2024年12月20日 14時37分
-
【情報漏えいの水際対策に】PDFやExcelファイルを“一括”でロック、信濃毎日新聞社がセキュリティ関連ソフトを販売開始~地元IT企業と協業~
PR TIMES / 2024年12月18日 11時45分
-
Windowsでsftpを使う
ASCII.jp / 2024年12月15日 10時0分
ランキング
-
1リークをもとに作り上げた?「ニンテンドースイッチ 2」のカバーを展示する海外メーカーに直撃取材!
Game*Spark / 2025年1月10日 14時27分
-
2「10年先いってる」新作バーチャファイターの映像が大好評 “ヤバすぎるモーション”に驚きの声「まるでアクション映画」
ねとらぼ / 2025年1月10日 14時54分
-
3エアコン暖房を「つけっぱなし」にしたら、電気代はいくらかかる? FPが試算してみた
Fav-Log by ITmedia / 2025年1月10日 10時20分
-
4ポケモンGO、32ビットAndroid端末のサポート終了 2025年6月以降
ITmedia Mobile / 2025年1月10日 11時59分
-
5「もう期待してない」「モンハン避けたか」再度延期『アサシン クリード シャドウズ』突き刺さる冷ややかなSNSの声
Game*Spark / 2025年1月10日 10時30分
複数ページをまたぐ記事です
記事の最終ページでミッション達成してください