![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
質問No.773038にて 回答No.5で 実際にやってみると 確かに動作は抜群に質問通りですが
文字化けして エクセルに貼られています。
肝心の テキストデータの保存方法が悪いのか 検討が付きません。
私個人は アプリから csv 変換用があり やっているのです。しかし エクセルにて手作業にて
テキストファイルウィザードで カンマやタブの区切り・・・ 元のファイルは 932 日本語(シフト JIS)
フィールドの区切りは セミコロンとしてやり セルにしてやると 確かに問題なく 文字化けしません
何故 VBAでやると 文字化けするのか 原因がわかりません。
どなたか 文字化けに出会った人はいませんか?
対応策があれば ご教授願います。
No.5ベストアンサー
- 回答日時:
No2No4です。
試しに以下のコードで開いてみてください。新しいファイルで開きます。
Sub Example()
Dim FileName As Variant
FileName = Application _
.GetOpenFilename("テキスト ファイル(*.csv;*.txt),*.csv;*.txt")
If FileName = False Then Exit Sub
Workbooks.Open FileName:=FileName, Format:=4
End Sub
やはり テキストデータの保存方法の種類なのか 構文がまずいのか 悩殺しまして やはり 構文がまずかったようです。
人によって こんなに差が出るとは 思いませんでした。
お世話かけまして ありがとうございました。
今後もよろしく!!
No.4
- 回答日時:
> カンマ区切りではなく 文字化けしてセミコロン区切りになっています。
失礼しました。
Ary = Split(InData, ";")
にすると文字化けは別として区切りは正常になります。Trimも不要だと思うので外しました。
あと、もとのデータが2行で一塊なのかどうか、1行で一塊でしたら
Const RwSet As Integer = 2
の2を1にする必要があります。1ならFor~nextが不要なのですが元のコードを利用するという事で。
No.3
- 回答日時:
どんなデータが文字化けするのかもう少し情報がないと原因はつかみにくいですね。
質問773038の解答で行っていることは、2行(指定行)で1データの半角スペースで区切られたテキストファイルを読んで、1行(の位置)にしてExcelに貼り付けています。無条件の貼り付けです。質問者様はsplit関数の区切り文字にセミコロンを指定されている?
例えば、メモ帳に「1-2-3;02E02;0001;1/30;10 AM」と入力して、これをコピーしてExcelに貼り付けて区切り位置ボタン>「区切り位置指定ウイザード」で区切り文字をセミコロンにして他は何も指定しないで区切ってみてください。
「2001/2/3 | 2.00E+02 | 1 | 1月30日 | 10:00 AM」
のように「文字化け」するはずですが、属性を指定していないのでExcelの仕様になります。質問773038のモジュールで行われているのはこれと同じです。
>手作業にて~セルにしてやると 確かに問題なく 文字化けしません
どんな手作業かわかりません。列の属性を指定していませんか?
>対応策があれば ご教授願います。
業務でテキストファイルを読むときは、ウィザードで「列のデータ形式」を指定しています。
この場合は、テキストファイルの方が複数行で1データを表しているはずなので、テキストファイルの複数行を1行にするプログラムを作り、1行単位にしたファイルに対して、Excel側では区切り位置ボタン>「区切り位置指定ウイザード」で各列の「列のデータ形式」を指定すればいいでしょう。
外していたらすいません。
この回答への補足
メモ帳に「1-2-3;02E02;0001;1/30;10 AM」と入力して、これをコピーしてExcelに貼り付けて区切り位置ボタン>「区切り位置指定ウイザード」で区切り文字をセミコロンにして他は何も指定しないで区切ってみてください。
そうすれば2001/2/3 | 2.00E+02 | 1 | 1月30日 | 10:00 AM になります 確かに その通りに表示です
それに、列の属性は指定していません。
ほかの方法を 考えます
検討して下さってありがとうございます。
No.2
- 回答日時:
質問No.773038の回答にあるVBAでは区切りはスペースであるという前提で作成されています。
カンマ区切りのCSVで実行すると文字化けするかどうかは別として正常にデータが区切られないと思います。カンマ区切りでしたら
Ary = Split(Trim(InData), ",")
に変更する必要があります。
この回答への補足
カンマ区切りではなく 文字化けしてセミコロン区切りになっています。
Title;Artist;Album;Track;Year;Length;Size;LastModified;Path;Filename;r0s0M0;「丙0・ヒ0;14.01g燈・・ュ0・ー0;1;2014;283;4.31
こんな感じです
No.1
- 回答日時:
状況がよくわかりませんが、エクセルVBAでテキストを読み込む場合、そのファイルの文字コードはシフトJIS前提だと思います。
もし読み込むファイルの文字コードが、UTF-8とか、UNICODEであれば、それをプログラムで指定してあげないと、文字化けします。
検索で”VBA 文字化け”とすれば、いろいろ情報が得られます。
また、VBA内にて、処理のどの段階で文字化けしているか、デバックしてみるのもいいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Excel(エクセル) 文字化け。メモ帳でUTF-8に変換後、エクセルへ貼り付けたいです。 3 2022/08/14 07:21
- Excel(エクセル) CSVファイルがカンマ区切りにならない。対処法を教えていただきたいです。 仕事でSMS一斉送信ができ 2 2022/07/01 21:24
- Visual Basic(VBA) エクセルVBAでメールの自動作成の モジュールを作ったのですが、txtファイルから読み込んだ本文が文 2 2022/07/20 15:01
- Visual Basic(VBA) VBAで出力したCSVファイルの先頭にカンマを挿入したい 5 2022/10/14 12:20
- Visual Basic(VBA) VBAでエクセルをtxtに変換するとエクセルでカンマを含む文字数字がtxtでは「""」付にならないよ 1 2022/08/27 12:17
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- Visual Basic(VBA) Excel VBA 書式変更で困ってます。 オートフィルターの日付フィルターを用いて データの絞り込 2 2022/07/26 22:16
- その他(プログラミング・Web制作) ゲームを日本語化しようとすると文字化けしてしまいます。 2 2022/08/19 15:36
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CSVファイルの中で、「 , 」カ...
-
エクセルで数値を全角文字(カ...
-
EXCELからCSVにすると余計なカ...
-
マクロを使ってフォルダー内に...
-
カンマ区切りの数字をCSVフ...
-
何故、日本は未だに数字を3桁...
-
3桁ごと?4桁ごと?コンマの...
-
C#で、テキストボックスの入力...
-
CSVの定義
-
WORDで改ページすると時々グレ...
-
[VBA][Excel]クリップボードか...
-
Excelについて質問です。 セル...
-
データにカンマが入ったCSVデー...
-
VBAでtxtファイルを読み込む際...
-
【VBA】エクセルで値のみクリッ...
-
エクセルにペーストする際にカ...
-
カンマ区切り
-
VB2005のTextBoxでカン...
-
Excel 桁区切りの カンマ シ...
-
エクセルの1セル内の文字列操作。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CSVファイルの中で、「 , 」カ...
-
エクセルで数値を全角文字(カ...
-
EXCELからCSVにすると余計なカ...
-
マクロを使ってフォルダー内に...
-
カンマ区切りの数字をCSVフ...
-
データにカンマが入ったCSVデー...
-
カンマ区切り
-
WORDで改ページすると時々グレ...
-
CSVの定義
-
C#で、テキストボックスの入力...
-
3桁ごと?4桁ごと?コンマの...
-
[VBA][Excel]クリップボードか...
-
何故、日本は未だに数字を3桁...
-
PHP カンマをエスケープしたい...
-
ひとつの命令を複数行に記述
-
「カンマ」と「コンマ」は同じ...
-
VB2005のTextBoxでカン...
-
JPY ¥1,500.00は日本円でお幾ら?
-
パス区切りの文字について
-
メッセージボックスの数字をカ...
おすすめ情報