• 締切済み

テキストをUNICODEで記録するには

現在エクセルVBAで以下のコードを使用してセルから読み込んだデータをテキストファイルに変換するプログラムを使用しています。 今回下記のコードだと文字化けしてしまう文字(韓国語)を扱うことになりました。 エクセルの保存形式を「Unicode」で保存すると問題なくテキストができることがわかりました。 そこで下記のプルグラムで保存形式を「Unicode」で保存する方法を教えてください。 ターゲットになる変数は「text」という変数です。 よろしくお願いします。 Open "x:\文字.txt" For Append As #1 If a = "" Then Print #1, Chr(9); text Else Print #1, Format(a, "@"); Chr(9); intime; "/"; outtime; Chr(9); text No = No + 1 End If Close #1 n = n + 1

  • homma
  • お礼率84% (744/884)

みんなの回答

  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.1

こんにちは 変数宣言し、その変数にどのような値をセットするのか ハッキリさせたコードを提示するようにして下さい。 別の方法になりますが、 Sub test()   Dim a   As String   Dim intime As Long   Dim outtime As Long   Dim txt2  As Object   Dim Text  As String   Dim tPath As String      tPath = "x:\文字.txt"      Set txt2 = CreateObject("ADODB.Stream")      txt2.Type = adTypeText   txt2.Charset = "UTF-8"   ' 改行コードを設定(-1:CRLF、10:LF、CR:13)   txt2.LineSeparator = -1   Text = Range("A1").Text   a = "1"      txt2.Open   txt2.LoadFromFile tPath   txt2.Position = txt2.Size      If a = "" Then     txt2.WriteText Chr(9) & Text, adWriteLine   Else     txt2.WriteText Format(a, "@") & Chr(9) & intime & "/" & outtime & Chr(9) & Text, adWriteLine   End If   txt2.SaveToFile tPath, 2   txt2.Close   Set txt2 = Nothing End Sub

homma
質問者

お礼

お礼メールが遅れてすみませんでした。 ありがとうございました。

homma
質問者

補足

回答ありがとうございました。 早速従来のプログラムを以下のように書き換えたところ txt2.Type = adTypeText の行でエラーになってしまいます。 エラー名は 実行時エラー'3001': 引数が間違った型、許容範囲外、または競合しています。 とでます。 申し訳ありませんが解決方法などお分かりでしたら教えてください。 Sub MakeCAP() Dim a As String Dim intime As String Dim outtime As String Dim txt2 As Object Dim Text As String Dim tPath As String tPath = "x:\文字.txt" n = 1 No = 1 Set txt2 = CreateObject("ADODB.Stream") txt2.Type = adTypeText txt2.Charset = "UTF-8" '改行コードを設定(-1:CRLF,10:LF,CR:13) txt2.LineSeparator = -1 Do a = Cells(n, 1) intime = Cells(n, 2) outtime = Cells(n, 3) Text = Cells(n, 4) txt2.Open txt2.LoadFromFile tPath txt2.Position = txt2.Size If a = "" Then txt2.WriteText Chr(9) & Text, adwriteline Else txt2.WriteText Format(a, "@") & Chr(9) & intime & "/" & outtime & Chr(9) & Text, adwriteline No = No + 1 End If txt2.saveToFile tPath, 2 txt2.Close Set txt2 = Nothing n = n + 1 Loop Until Text = "" End Sub

関連するQ&A

  • Unicodeの文字がどれか、調べたいです

    ある文章をメモ帳で保存しようとしたら「このファイルはANCIテキストファイルで保存すると失われてしまうUnicode形式の文字を含んでいます。Unicodeの情報を保存するには、[文字コード]から[Unicode]を選択してください」と出ました。どれがUnicodeの文字なのかを調べる方法を探しましたが、アテになるのが全くありません。また、「[文字コード]から[Unicode]を選択する」という言葉の意味も分かりません。文字コード表を開きましたが、その後詰まりました。 限りなく分かりやすい説明をお願いします!

  • ユニコード

    IMEパッドの使い方、保存のしかた IMEパッドのunicodeを入力したのですが保存をしようと思うとこのファイルはANSIテキストファイルとして保存すると失われてしまうunicode形式文字を含んでます。 unicodeの情報を保存するには、下のキャンセルをクリック、文字コードからunicodeを選択してください。続行しますか?OK キャンセルとでます。OK キャンセルをどちらもおしてみたのですが ?としか保存できませんどのようにすると保存できますか?パソコンしょしんしゃです。よろしくおねがいします

  • Unicodeって・・・

    Unicodeを初心者の人に説明するとしたらなんと説明したら いいのでしょう? どういうところで使われてるものでしょう? EXCELでテキストファイルで保存するとき Unicodeがありますが、 普通のテキスト形式とどう違うのでしょうか? テキストで保存したあとメモ帳などで開くと同じようですが。。。

  • Unicodeについて質問です。

    Unicodeについて質問です。 あるテキストファイルからUnicode文字を検索したいと思っています。 Unicode形式で保存したくないテキストファイルがあるのですが、どうやらどこかにUnicode文字を使ってしまったようで検索に手間取っています。 かなりの文章量のテキストファイルなので目で探す事は非常に困難で、仕方なくUnicodeコード表を元に一文字ずつ検索しているのですがなかなかヒットしません。 アラビア語のような特殊な文字を記入した記憶はないのですが、こちらのコード表(http://nurucom-archives.hp.infoseek.co.jp/digital/unicode-table.html)によると半角数字もUnicode文字となっていたりするようで知らずに入力した可能性が高いです。 できればテキスト貼り付け(方言変換サイトなどのように)でUnicode文字を検索できるサイトか、もしくはフリーソフトのようなものはありませんでしょうか。 Unicodeについて教えていただけるだけでも助かります。よろしくお願いします。

  • テキスト出力時に色を付けるには

    エクセルのマクロで読み込んだセルを以下のコマンドでテキストファイルに出力しています。 Print #1, Format(a, "@"); Chr(9); intime; "/"; outtime; Chr(9); text その際に条件によって特定のテキストにだけ色を付けることはできますでしょうか。 可能でしたら方法を教えてください。

  • UTF-16テキストファイルの作成

    エクセルで作成したデータをUTF-16形式で保存したいのですが、 「名前をつけて保存」でファイルの種類を選ぼうとしても、 該当の形式が見当たりません。 Unicodeテキストで保存してからメモ帳で開いて文字コードを変更しようとしてみましたが、UTF-8しか選択肢がありません。 どなたか方法を知ってる方、教えてください。お願いします。

  • UnicodeでないファイルをUnicode保存

    いつも楽しく勉強させていただいております。環境はWin7Office2010です。 ExcelVBAからFSOを用いてCSV形式のファイルを読み込み、多少の加工をして最終的にはSQLServerに取り込むという作業をしています。 問題はCSVファイルのことなのですが、どうやらUnicodeでないようでFSOで開くと文字化けしてしまうものがあります。 Excelやワードパッドで開くとちゃんと読めます。 StrConv関数でUnicodeに変換しようとしたのになぜかできませんでした。 今回はファイル数が少なかったので、手作業でワードパッドで開き、保存の形式をUnicodeにして事なきを得ましたが、今後同様のファイルを多数処理しないといけないので手作業での変換は難しいです。 そこで、こんなことは可能でしょうか。 ・ExcelVBAで非Unicode形式のファイルを読み、Unicodeで別ファイルに書き出す。 または、 ・ExcelVBAでワードパッドなどを制御し、自動的にファイルを開いてUnicodeで保存しなおす。 ついでといっては何ですが、そのファイルの文字コードが何であるかはどうやって分かりますか。 できればVBAを介して調べる方法があれば教えてくださるとうれしいです。

  • エクセルで、形式を選択で、テキストとUnicodeテキストの違いは?

    エクセル2000で、形式を選択して貼付けで、 テキストとUnicodeテキストの違いは? おなじようなんですが?? よろしくお願いします。

  • HTMLユニコード?の変換

    こんにちは。大変困っていますので助けてください。 日本語の使えないデータベースに日本語を保存するため、unicode形式の→「日本」このような形式で文字を保存してあり、それをexcel+VBA上で日本語に戻したいのですが、unicodeにまったく無知なため四苦八苦しています。 まず、 (1)unicodeにもいろいろな形式があるようで、上記の書き方はとあるサイトではHTMLユニコードとかかれていましたが、これは一般的な読み方なのでしょうか?(http://code.cside.com/3rdpage/jp/unicode/converter.html) htmlユニコードで検索をしてもここ以外ではあまり引っかからず、また &#~;という形式についても調べてもよく分かりません。これはなんと呼ばれる表記方なのでしょうか? (2)そして上記のようなコードをvbaで日本語に直す場合、単純に StrConv(<文字列>, vbFromUnicode) ではうまくいかないのですが、どうやって変換すればいいのでしょうか? どうか知恵をお貸しください。よろしくお願いします。

  • 保存形式としてのUnicode、UTF-8

    「Unicode、UTF-8 違い」などでネットを検索すると Unicode・・・文字コード UTF-8・・・符号化方式 とのことで、同次元のものではないとのこと。 しかし、 さくらエディタ、TeraPadなどのテキストエディタの保存形式に Unicode、UTF-8などがあるのですが、この違いは何でしょうか? 前提として、iPhone/iPadにてテキストファイルを扱おうとすると Gmailの添付ファイル、Dropboxなどで文字化けする(デコードできない)ので どちらかの形式に統一しようと思ったのですが、 あとあと困るといやなので、正確に理解したいと思った次第です。 どうぞよろしくお願いします。

専門家に質問してみよう