※ ChatGPTを利用し、要約された質問です(原文:Excelでセル内の文字列をバイナリ値として扱う方法はないでしょうか。)
Excelでセル内の文字列をバイナリ値として扱う方法
このQ&Aのポイント
Excelでセル内の文字列をバイナリ値として扱う方法はありますか?現在は汎用的な関数を自作する必要がありますが、他のアプローチ方法も模索中です。
Excelのセルに貼付けた日本語URLをデコードする方法を探しています。現在はUnicode文字列をVBAからJScriptの関数を呼び出すことで対応していますが、将来的には他の文字コードもデコードしたいと考えています。
ExcelのADODB.Streamオブジェクトを使用してバイナリモードでセルの値を書き込もうと試みましたが、セルの値は文字列として扱われ、バイナリ値として直接書き込むことができませんでした。現在は他のアプローチ方法を模索しています。
Excelでセル内の文字列をバイナリ値として扱う方法はないでしょうか。
Excelでセル内の文字列をバイナリ値として扱う方法はないでしょうか。
セルに貼付けた(エンコードされている)日本語URLをデコードしたいと思っております。
Unicode文字列はVBAからJScriptの関数を呼び出して対応しましたが、
長期的にはEUC-JPやその他の文字コードもデコードしたいと思っています。
手法は今も調べていますが現時点では、汎用的な関数を自作するしかないと認識しています。
そこで、
ADODB.Streamオブジェクトにバイナリモードでセルの値を書き込んだ後に、
テキストモードで任意のCharsetを指定してみたのですが、
セルの値は文字列として扱われ、バイナリ値として直接書き込めませんでした。
具体的には、EUC-JPでエンコードされた
「%a5%c6%a5%b9%a5%c8(テスト)」という文字列からReplace関数で「%」を除去し、
バイト型配列に代入した時点で、「a5c6a5b9a5c8」という文字列として扱われている
という状態です(バイナリ値として入力されませんでした)。
上記以外のアプローチの仕方も含めて模索している状態です。
問題に対する考え方だけでもご指摘いただければと思います。
よろしくお願いします。
お礼
早速のご回答ありがとうございました。 自分でもいくつか参考になりそうなものを探していましたが 一番シンプルな解決策をいただけました。