DOBON.NET どぼん!のVB道掲示板(プログラム)過去ログ

VBAでSJISの文字列をEUCに変換

'EUCとして変換
Dim strString As String = System.Text.Encoding.GetEncoding(51932).GetString(bytData)
とやって実行したら「オブジェクトが必要です」とのエラーが出ました。
どうやったら使えるようになるのでしょうか?
まだ初心者ですのでどなたか出来るだけ詳しく教えてください。
よろしくお願いします。
>'EUCとして変換
> Dim strString As String = System.Text.Encoding.GetEncoding(51932).GetString(bytData)
>とやって実行したら「オブジェクトが必要です」とのエラーが出ました。
>どうやったら使えるようになるのでしょうか?

VBAには詳しくないのですが、そもそもVBAで.NET Frameworkが使えるのか疑問です。使えるとしてもかなり特別なことをしないと使えるようにならないのではないでしょうか?
お返事ありがとうございます。
では、VB内部で文字コードを変換する方法はなにかありませんか?
初心者ですいません。
>では、VB内部で文字コードを変換する方法はなにかありませんか?

外部のDLLなどを使わずに文字コードを変換するには自分でコードを書くしかないと思います。
>>では、VB内部で文字コードを変換する方法はなにかありませんか?
>
>外部のDLLなどを使わずに文字コードを変換するには自分でコードを書くしかないと思います。

外部のDLLを使えばいいじゃないですか。

http://www.vector.co.jp/soft/win95/util/se020949.html

やっぱり、フリーソフトを探すのがはやい。
でも、Javaならあっという間なのになぁ...
>外部のDLLを使えばいいじゃないですか。

私もそのほうがよいと思うのですが、「VB内部で」とわざわざおっしゃっているところを見ると、DLLを使った方法はすでにご存知なのではと深読みをしてしまいました。

実際、SJISからEUCへの文字コードの変換は完璧なものでなければ(というか手抜きであれば)自分で十分コードを書けるのではないか思います。(じゃあお前が書いてみろということになると思いますが、有料でよろしければ考えます。)

>やっぱり、フリーソフトを探すのがはやい。

NKF32.DLLを使うのはもちろん最高の選択といえますが、多くのコンピュータにインストールされているだろうという点ではmlang.dllを使うという選択もあると思います。
>では、VB内部で文字コードを変換する方法はなにかありませんか?

ADODB.Streamというオブジェクトを使えばOKです。
Charsetプロパティを"euc-jp"にしておけば、EUCデータを扱えます。
>'EUCとして変換
> Dim strString As String = System.Text.Encoding.GetEncoding(51932).GetString(bytData)
>とやって実行したら「オブジェクトが必要です」とのエラーが出ました。
>どうやったら使えるようになるのでしょうか?
>まだ初心者ですのでどなたか出来るだけ詳しく教えてください。
>よろしくお願いします。

この件について、一番最初の質問に戻って、よく考えてみると、

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cptutorials/html/hello_world_in_visual_basic.asp

上記のURLにあるように、先に

Imports System

と宣言しておかないと「オブジェクトが必要です」と出てしまうのではないかなぁと、ちょっと思ったのですが。

そもそも、.NET Framework か、それとも、.NET Framework SDK か、そういった開発環境がインストールされていないという可能性もあるので、まずはその確認からしないといけませんが・・・

DOBON.NET | プログラミング道 | プログラミング掲示板