掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
UTF-8の文字列をセルに区切ってセットするには? (ID:87984)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
魔界の仮面弁士さん。レスどうもです >これは、改行文字を除去する処理でしょうか? これはただデータが全部ほしかっただけです。 いまいち使い方がわからなかったのでloopしてますけど(^^; >バイト単位で処理をされているのには、何か理由があるのでしょうか? >特に理由が無ければ、MidB関数ではなく、Mid関数を使ってみて下さい。 全角を3バイト、半角カナも3バイトで計算しないといけなかったので MidBを使ってみました >MidBを使えないわけではありませんが、その場合は、MidB関数の >第3引数に指定する数値は、(奇数ではなく)偶数である必要があります。 >(VB6/VBAの文字列型は、1文字を2バイトで表現しますから) ご指摘とおりMid関数にしました 取りあえず下記で対応できたので乗せときます 'UTF-8で読み込み Set Stm = CreateObject("ADODB.Stream") Stm.Open Stm.Charset = "UTF-8" Stm.LineSeparator = adCRLF Stm.LoadFromFile UserForm1.TxtFileDat 'Shift_JISでオブジェクト作成 Set Stm2 = CreateObject("ADODB.Stream") Stm2.Open Stm2.Charset = "Shift_JIS" '"SJIS" '"Shift_JIS" 'UTF-8→Shift_JISでコピー Stm.CopyTo Stm2 '適当な名前で保存 Stm2.SaveToFile UserForm1.TxtFileDat & "1", 2 Stm2の内容をもう一度よみこんでおく Stm.Close:Stm2.Close ----省略 'ArryRange(i)=ほしい文字のバイト数が入ってます ’AAA=Stm2の内容です 'flg=切出すスタート位置です For 〜省略 Range("F" & i).Value = MidByte(AAA, flg, ArryRange(i)) 〜省略 loop MidByteの関数は下記を参考してちょっと内容変更してますが http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/vb_t04.htm 魔界の仮面弁士さんいろいろありがとうございました。 これからも拝見しますので、そのときはまたよろしくお願い致します
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.