• ベストアンサー
  • すぐに回答を!

VBAでエクセルでCSVの文字化けを変換し複数取込

お世話になっております。 使用環境:OFFICE365 エクセルVBAでフォルダに入っている複数のCSVを結合して取り込みたい。 その際、文字化けの回避もしたい。 C:\Users\ユーザー\Desktop\資料\CSV 上記「CSV」の中に複数データがあります。 そのまま開くと文字化けする状態です。 エクセルのシート「取り込み」に上記CSVを結合して取り込みたいです。 どうかご教示お願いいたします。

共感・応援の気持ちを伝えよう!

  • 回答数4
  • 閲覧数144
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1
  • oboroxx
  • ベストアンサー率40% (317/786)

VBAでの対応は難しいのではないかなと思います。 次のようなソフトを使ってCSVファイルのエンコードを変更して(恐らくもともとはUTF8なのかなと思いますが、日本のオフィスはSHIFT-JIS出ないと文字化けします)、保存して、参考URLのVBAをつかって、一つのファイルにするしかないのかなぁと思います。 わからなければ補足してください。

参考URL:
https://www.oborodukiyo.info/ExcelVBA/2019/XVBA-MergeFiles

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • EXCELのCSV取り込み

    EXCELでCSV取り込みをしたいのですが、どうもうまくいきません。 シート”work"に表示させたいです。よろしくお願いいたします。 マクロの記述を教えていただけたら幸いです。

  • エクセル マクロでのエクセルファイル取込について

    エクセルで別のエクセルファイルをマクロで取込み、取込したデータを自動で任意の場所にデータが入力されるようなものを作りたいと考えています。 csvデータの取込は作ることが出来たのですが、エクセルファイルをcsvデータのように取込することは出来ないでしょうか? 出来ないとしたら、取込したいエクセルファイルを一度csvで保存してからcsvとして取込するというやり方で対応するしかないでしょうか? 出来れば、取込したいエクセルファイルのシートが複数にわかれていて、全シートの情報を取込したいと考えているので、エクセルのままで全シート取り込めれば・・と思います。 何か上記の方法でなくとも、最善の方法(一番工数が少なく済む方法)があれば教えていただきたいです。 よろしくお願いします。

  • エクセルVBAでCSVを読み込んで別ファイルにまとめたいです。

    エクセルVBA初心者の者です。 マクロの記録でできたコードをいじって、 なんとか動くものができるレベルです。 Aというフォルダに20~40行程度の内容のCSVファイルが 数百個あります。開けてみないと何行あるのかわかりません。 そのAフォルダのCSVの内容をエクセルで開いて、別のエクセルファイルの一枚のシートにまとめたいのです。 最初にCSVファイル名を一枚のシートのA列に書き出すところ まではやれたのですが、それを順番に読み込んでコピペの 流れができません。 CSVファイル名読み込み 読み込んだファイル1つめCSV開く CSVの20~40行をコピー 別のエクセルファイルのシートに貼り付け 1つめCSV閉じる ↓ 読み込んだファイル2つめCSV開く 繰り返し こういうやり方じゃない方がいいのかもわかりません。 もしかして考え方も違うのでしょうか? サンプルコード教えていただけるとありがたいです。 よろしくお願いします。

その他の回答 (3)

  • 回答No.4

ざっくりとした流れで、 1.CSVの名前をセルに取得 ※「取り込み」とは別に「ファイル名」というシートでも作っておく 2.取得した名前でファイルを1つづ指定してUTF-8にする 3.「取り込み」シートの記載事項の末尾を探し 4.取得した名前でファイルを開いて、中身をコピー&ペースト 5.開いていたファイルを閉じる という処理でいける気がします。 2.の文字コード変更ですが、エクセル側のオプション設定をしたうえでUTF8からSJIS変換するやり方がこちらです。以前、こちらを参考にしたらできました。 https://vbabeginner.net/vba%E3%81%A7utf-8%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92shift-jis%E3%81%AB%E5%A4%89%E6%8F%9B%E3%81%99%E3%82%8B/

共感・感謝の気持ちを伝えよう!

  • 回答No.3
  • oboroxx
  • ベストアンサー率40% (317/786)

No.1です。 ファイルのエンコードの変換ソフトのアドレスを書くのを忘れてました。

参考URL:
https://www.oborodukiyo.info/Soft/ConvertFileEncoding/ConvertFileEncoding

共感・感謝の気持ちを伝えよう!

  • 回答No.2
  • WDY
  • ベストアンサー率29% (102/348)

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • excel取り込み csv文字化け簡単に開ける設定

    Excel2007でCSVファイル(自社システムからダウンロードしたもの)を取り込む際の、文字化け等の修正について、 ・テキストで開いてコードを修正したり(→Shift JIS)、 ・ソフトを開いてから、データの取り込みで設定していく方法(2000以前は毎回そうしていたものですが) 以外に、何か方法はありますでしょうか。CSVのダブルクリックですぐExcelで適切に開ける形がベストです。 OSの関係なのか、Excel等のソフトの設定上の問題なのか、よくわかりませんが最近、CSVのダブルクリックですぐ取り込めない状況が、いくつかの環境下(ソフトをバージョンアップした、OSをアップグレードしたなど)で発生しています。

  • エクセルの複数シートをCSVファイルに変換したい

    エクセルの複数シートをCSVファイルに変換したい

  • エクセルの複数シートをCSVファイルに変換したい

    エクセルの複数シートをCSVファイルに変換したい

  • excel vbaで複数のcsvファイルの読み込み

    100シート分のcsvファイルのデーターを一つずつ読み込んでexcelにコピーして使用してますが莫大な時間がかかって困ってます。 vbaを使用して作業を簡素化出来る事は出来ないでしょうか? ------------------------------------------ ※ csvの概要 excelで1枚のcsvファイルを開くとA列の11行目から65536行まで数値データがあります。 ※ vbaできたらよいなと思う仕様 そこで、複数のcsvファイルを選択して読み込むとCSV_データと言うSeetのA列の10行目から1枚目のcsvファイル、B列の10行目から2枚目のcsvファイルと言う風に選択した分のcsvを列に続けて数値データを貼り付けしてくれるvbaをご教授していただけると大変助かります。 不躾で申し訳ございませんが宜しくお願い致します。 excel2003 ------------------------------------------

  • エクセルVBAを教えてください

    エクセルVBAを教えてください Gmailの「CSV 形式でユーザー リストをダウンロード」で作成されたCSVを開くと 氏名が文字化けしています それを手作業で 1.メモ帳で開き 2.「名前を付けて保存」で「文字コード=ANSI」で上書き保存して閉じる をしていますが、手間なのでエクセルVBAで自動化したいと思っています エクセルVBAのコーディングを教えてください ネットで探したのですが見つからなくて… ※ファイルの選択などのコーディングは分かりますので、固定のファイル名で結構です 宜しくお願いします

  • CSVファイルの取り込みについて

    CSV取り込み方法について 教えていただきたくお願いいたします。 エクセルのマクロ・VBAの組み方について デスクトップ上の000という名前のCSVファイルを、作業しているエクセルファイルのLoadという名前のシートに貼り付けたいと思っています。 CSVファイルはエクセルで開くと1行に11列の項目が展開されています。 貼り付ける項目はこのようになります。 (CSV) →(エクセルのLoadシート) 1列目(A行)→B行へ 2列目   →C行へ 3列目   →D行へ 4列目   →E行へ 5列目   →F行へ 9列目   →G行へ 10列目  →H行へ 11列目  →I行へ (6.7.8列目は使いません) 最後にLoadのシートのA行に”=B&E”とい式を入力したいと思っています。 まだ初心者なので勉強中なのですが、仕事上急遽必要になりましたのでお願いいたします。

  • エクセルVBAで複数CSVを抽出、ブックへの出力

    エクセルVBAで複数のCSVファイルからファイル名と 任意のセル8箇所を自作した計算シートに抽出。 別ブックにCSVファイル名 計算結果4種類を出力する。 というvbaを作りたいのですがどうすればよいでしょうか? CSVファイルが1700ほどあり、大変困っています。 申し訳ありませんがご教授願います。 ーーーーーーーーーーーーーーーーーーーーーーーーーーー 詳細 CSV読み込みセル8箇所:B2、D2、F2~P2 自作計算シートへの貼り付け箇所:G3~G10 計算結果セル抽出箇所:C8~F4 出力の理想系は CSVファイル名、計算結果1、2、3、 4の順で file01 ○○ ○○ ○○ ○○ file02 ○○ ○○ ○○ ○○ ・・・ ・・ のようになれば大変嬉しいです。 お力をお貸しください よろしくお願いいたします。

  • VBAで複数のCSVの読み込み

    http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_050.html こちらのサイトの「古くからあるステートメントの方法」を参考にしてCSVファイルを選択してエクセルのシート上にCSVの情報を貼れたのですが、 例えばグローバル変数を2つ作り、別プロシージャから2つの違うCSVファイルパスをそれぞれ受け取り、↑の方法で1つのシートに2つのCSV情報を貼るにはどのようにすればよいですか? AファイルとBファイルがあったとしてシートの中身を A A A B B B のように横につなげるようにしたいです。

  • Excelのシートをcsv形式に変換するには。

    Excelのシートをcsv形式に変換するには。 こんにちは。 複数のシートがあるエクセルファイルを、一度にcsv形式に変換したいのですが、 なにかいい方法または、フリーソフトはありますでしょうか? よろしくお願いいたします。

  • csvファイルをvbaで読み込みたいけど文字化け

    エクセル2007です。 http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_020.html を参考にcsvファイルをシートに書きだそうとしてるのですが、 リンク先のサンプルコードのの Input #intFF, X(1), X(2), X(3), X(4), X(5) の部分で、 ファイルにこれ以上データがありません。(Error 62) と言うエラーになってしまいます。 元のcsvファイルは、サンプル通り5項目(A列~E列)にしてみましたが エラーになってしまいます。 なので、 http://officetanaka.net/excel/vba/error/execution_error/error_62.htm を参考に、 Sub Sample1() Dim buf As String Open "C:\Users\test\Downloads\test.csv" For Input As #1 Do Until EOF(1) Line Input #1, buf Loop Line Input #1, buf Close #1 End Sub としてみたところ、やっぱり同じエラーになって、 ?bufをしたら、 ヨS_蘰 gqが返ってきました。 文字化けしてるようですが、フィールド(1行目)に日本語が入っていますが それが原因なのでしょうか? 日本語が入ってるcsvファイルをvbaで書き出す事は不可能なのか教えてください。