QueryTables.Add を使用してテキストを取り込む際に文字コードを指定するには ?


Romini  2003-11-12 19:49:18  No: 109920

はじめて投稿します。
よろしくお願いします。

Excel の外部テキストの取り込みウィザードとほとんど同じ処理する
マクロを次のように記載しました。

Sub GetData()
    With ActiveSheet.QueryTables.Add(Connection:="TEXT;C:\sample.txt", _
        Destination:=Range("A1"))
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = xlWindows
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierNone
        .TextFileConsecutiveDelimiter = True
        .TextFileCommaDelimiter = True
        .TextFileColumnDataTypes = array(xlTextFormat, xlTextFormat)
        .Refresh BackgroundQuery:=False
    End With

End Sub

上記を次のようなテキスト (sample.txt) に対して実行すると ASCII
コード以外の文字 (名前、生まれ) は文字化けしてしまいます。取り
込むファイルの文字コードを指定することはできないのでしょうか ?

sample.txt
名前:STRING,ID:INT
生まれ,123
Miller,728
Myers,1334
McFyer,789
Thommy,345


kinsan  2004-05-26 01:04:29  No: 109921

こちらでも同じ問題にぶつかりました。
http://support.microsoft.com/default.aspx?scid=KB;JA;418841
マイクロソフトの関連ページは上記のようですが、
なにか解決策はないでしょうか。


岡田 之仁  2004-05-26 09:00:57  No: 109922

http://www2s.biglobe.ne.jp/~iryo/2vba/vba29f.html
ここに・・・
Excel上で取り込んだデータが時々文字化けしましたが、下記に変更で直ったことがあります。
.WebFormatting = xlWebFormattingAll

との記述がありました。

ご参考までに・・・

※  CSVをデータベースとして開けば、文字バケは
    無かったようにも思いますが・・・

以上。


kinsan  2004-05-27 20:23:36  No: 109923

岡田さん、コメントありがとうございます。

「Connection:="TEXT」と「Connection:="URL」では条件が違ってくるようで、
.WebFormattingをつけたら実行時エラーになりました。

CSVをデータベースで開く方法はどのようにすればよいでしょう。


岡田 之仁  2004-05-27 23:15:48  No: 109924

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpiis/iishelp/iis/htm/asp/iiwadata.asp

ここの、
Text Driver={Microsoft Text Driver (*.txt;*.csv)};DefaultDir=physical path to .txt file 

をご参照下さい。

ADOでは、通常のアクセスで大丈夫です。

参考までに・・・

以上。


kinsan  2004-06-02 04:19:58  No: 109925

OfficeをXPから2003にアップグレードしたら、それだけで文字化けが
止まりました。
もともとOffice2000で構築したシステムで、XPを入れたらおかしくな
ったという問題だったので、OfficeXPはどうやら使ってはいけないバー
ジョンだったというのが結論のようです。

岡田さん、いろいろありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加