エクセルマクロでyy/mm/dd形式のCSVデータの読み込み方を教えてください。

このQ&Aのポイント
  • エクセル2003を使用して、yy/mm/dd形式のCSVデータを読み込む方法を教えてください。
  • 毎日の業務で、売上データのCSVファイルをエクセルで集計する作業を行っていますが、マクロを使用して効率化したいと考えています。
  • CSVファイルを開く際に、日付の表示形式が正しく認識されない問題があります。マクロを使用して、yy/mm/dd形式で表示する方法を教えてください。
回答を見る
  • ベストアンサー

エクセルマクロでyy/mm/dd形式のCSVデータの読み込み方を教えてください。

エクセル2003使っています。 毎日の業務で、売上データのCSVファイルをエクセルで開き、集計する作業を行っているのですが、マクロを使ってもっと楽に作業が出来ないかと素人なりに勉強中の者です。 自分ではあまり書くことが出来ませんので自動記録をやっていたのですが、CSVファイルを開くと、06/12/27のデータが2027/12/27となってしまいます。CSVファイルをそのまま選択してエクセルで開くと2006/12/27と認識してくれるのですが、マクロでこのように表示させるにはどのようにすればよろしいのでしょうか。データは列ごとに項目が分かれている形で、売上、商品名、日付等があります。その中でこの日付がうまく処理できませんので、お分かりの方、是非ご教授お願いします。

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

  • ベストアンサー
  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.1

Openメソッドのパラメータに Local:=True を指定すると良いかと思います。 例えば、こんな感じです。 Sub CsvOpen()  Workbooks.Open Filename:="C:\Data\日付テスト.csv", Local:=True End Sub

109mit
質問者

お礼

ありがとうございまた。 おかげでちゃんとした日付で表示されるようになりました。

関連するQ&A

  • エクセル CSV形式ののマクロについて

    販売管理ソフトの売上データーをエクセルにエクスポートすると、 常に同じ場所にCSV形式で保存されるのですが、売上データーを使うのに 必要の無い列があったり 表が大きすぎるので 見やすい形にするのに 列の非表示や列幅を変更したりするマクロを記録したのですが、マクロが見つかりません。 CSV形式では 記録したマクロは使えないのでしょうか? また、このマクロの使用によって 社内の他のパソコン(30台位)に影響が出ないように出来ますでしょうか? と言うのも、 私自身マクロについてあまり詳しく無いのですが、弊社には私以上の知識を持った人が居ないため、以前同じ様なマクロをエクセルファイルで作成したら 他のパソコンにも伝染し「ウィルスに感染しています」のメッセージがエクセルを開くたびに出てきて 大ブーイングを浴びてしまいました。 そのときは おそらく会社としてウィルス対策をしていなかったのかも知れませんが 現在はウィルル対策もしているはずで、マクロの付いたエクセルファイルを使っている人もいる様なので(専務のファイルにマクロボタンの様な物を見た事があるので)大丈夫だとは思うのですが、心配です。 素人の説明で解り難いかもしれませんが 宜しくお願いします。

  • エクセルマクロでファイルを開いて保存したいです。

    エクセルマクロでファイルを開いて保存したいです。 エクセルファイルでファイル名「編集」という物を開きます。 このSheet1には中央にコマンドボタンが作成して有ります。 このボタンをクリックして以下の作業をマクロで行いたいです。 1.エクセル標準の「ファイルを開く」のメッセージボックスが開く 2.ここは使用者が作業をしてもらう   マイドキュメントだったり、マイネットワークだったり、   (ファイルの種類はCSVにする)   処理をしたいCSVファイルを探してもらい選択後、開くをクリック   例えば20100922.CSVを選択し開くをクリック 3.クリックと同時にそのファイルが展開されて、「編集」のエクセルファイルの   Sheetにシート名「集計」が作成されそのシートにCSVファイルの全内容がセルA1から貼り付く。   さらに登録してあるマクロモジュールで編集処理がされ   マクロを引き継がず、シート「集計」だけを   ファイル名は固定でそのファイル名の後ろに作成日(システム日付)を入れて   参照したCSVファイルの保管場所に保存する。   ファイル名例:売上20100923.xls(売上は固定) 4.エクセル「編集」のファイルからシート「集計」を削除する。 5.メッセージBOXで「編集終了」と表示 次回エクセルファイル「編集」を開くと、コマンドボタンだけである。 また作成された「売上20100923」はマクロがないから開くときに マクロのメッセージは出ない。というようにしたいです。 NO.2のファイルを選択する作業は作業者にしてもらいますが シート1のコマンドボタン1回を押すだけでNO.1~NO.5まで完結させたいです。  NO.3のマクロ処理はマクロの記録でモジュールができています。 このマクロの作成方法と、そのマクロが出来たら その文のどこに作成済みの処理文を入れればいいのかわかりません。 よろしくお願いします。 ここでつまづいています。この後この選択したファイルの全内容が シートの集計に展開されません。 Private Sub CommandButton1_Click() Call 集計 End Sub Sub 集計() FullPath = Application.GetOpenFilename("CSV,*.CSV") If FullPath <> "False" Then Sheets("Sheet1").Select Sheets.Add ActiveSheet.Name = "集計" With ActiveSheet.QueryTables.Add(Connection:="CSV;" & FullPath, Destination:=Range("A1"))   マクロの記録で作成したマクロ   シート"集計"をマクロを引きつかずファイル名売上&システム日付で保存   シート"集計"を削除する

  • エクセルのマクロの記録でcsvファイルを開いたら日付が変わった

    エクセル2000のマクロの記録で「xxx.CSVファイルを開く」を作ってオート実行したところ、ある日付の列、2008/7/15 などがすべて2001/7/15、2025/7/1などとんでもない日付に変わってしまいます、手動で開くと正常です。一度手動で開いてファイルをxxx.xlsで保存してマクロを記録し、オートで実行すると正常です。セルの書式を見ると日付になっています、どこに問題があるのでしょうか。よろしくお願いします。

  • エクセルのマクロについて

    エクセルのマクロについて教えてください。 毎月、データをダウンロードし、VLOOKUP関数などを使って、 必要項目を入れ、ピポットテーブルで合計を出すという 作業をしています。マクロを使ったら、簡単にできるのでは ないかとやってみましたが、マクロで登録しても 毎月集計をするデータの件数が異なるため、 VLOOK関数で入力されるのが、そのマクロで登録したときの ものまでで、残りのセルが空欄になっていたり、 ピポットテーブルの集計は、データの範囲を選びなおしたり しないといけませんでした。 いい方法はないでしょうか。 マクロに作業を記録して、そのシートではなく、 ほかのファイルのシートで 実行する場合は、そのマクロを登録したときのファイル(シート)を 毎回開かなければならないのでしょうか。 基本的なことがわかっていません。 教えてください。

  • 複数CSVファイルをExcel形式1つにまとめたい

    VBA初心者です。 似たような質問・回答がありますが、どうも私の意図するところと異なるので、 新たに質問させていただきます。 どうぞお願いします。 仕事場で、基本1日1ファイル取得している複数のCSVファイルを、 1週間に一度Excelファイルに一週間分のデータを追加し、 最終的には1か月毎に1つのExceファイル(1シート)に集計してます。 全ファイルとも内容は同じで、1シートで作成されており、 タイトル行は1行目、2行目以降データ(行:データ数はファイル毎に異なる)、 列数はA-IV列といった構成になります。 新しい1つのファイルにまとめる際には、 B列とG列のみ抽出し、一行目にタイトル行、2行目からデータ、 最終行に次のファイルのデータと、いうように複数のファイルのデータをつなげて 1つのファイルにしたいのです。 ちなみに出来上がったExcelファイルとしては、 A列に元CSVファイルのB列データ、C列に元CSVファイルのG列データ、 B列に各データがどのCSVファイルの物か分かるように、 各ファイル名の日付にあたる後ろ部分を表示させたいのです。 ファイル名から日付を拾えない場合は、 ファイルをまとめる前に、列を挿入し、 C列にデータ日付の項目を作り、そこに日付を入力し、 まとめる際に、B・C列+G列を抽出、といった形で、まとめられたらと思ってます。 *各Exceファイルのタイトルの後部分がデータの日付を表す (タイトル例:0803abcde2013_08_03.xls) B列2行目以降に、それぞれ抽出したデータのファイル名から、 日付にあたる部分を書き出し(8月3日と言ったように)表示させたい。 場合によっては、前部分を抽出するパターンもあるので、そちらもお願いします。 *今後、他の何種類かの複数CSVファイルでもファイル毎に (こちらも全ファイルとも内容は同じ)同様に1カ月毎にまとめたいので、 違う条件でも抽出できるように、応用できたらと、考えております。 (抽出する列がB列とI列のみ、A~C列+F列など) VBAで作業したいと考えてます。色々とお手数ですが、よろしくお願いします。 また、他にお勧めのサイトや、参考になる質問がありましたら、 合わせて、教えていただけると幸いです。

  • EXCELファイルへCSVファイルから月間データをマクロで入力する

    EXCELファイルへCSVファイルから月間データをマクロで入力する お世話になります。 EXCELで月間の報告書を作成しています。 ひと月の作業内容を1日ずつ記載します。 そして、現在それとは別にグループウェアを使用しており、そちらにはスケジュールをCSVでエクスポートする機能があります。 ですので、グループウェアからCSVで出力されたデータをそのまま報告書の作業内容の列へ挿入できるようなマクロを作りたいと思っています。 ただ、CSVで出力されたものと報告書では月間の行の使い方が違うのでどのようにしてやろうかと悩んでいます。 CSVファイルの内容で使用したいのは「予定詳細」で、EXCELのE列に挿入したいと思っています。 エクスポートしたCSVの画像と、報告書のEXCELの画像を添付します。 説明が難しくてすみませんがお知恵をいただければと思います。 よろしくお願いします。

  • Excelのマクロを使ってのオートフィル

    Excelのマクロを使ってのオートフィルについて教えて下さい。 類似の質問があったのですが、決まったセルからのものが多くわかりませんでした。 マクロはまだ始めたばかりです。 やりたいことはExcelの2つのシートに別のcsvファイルの数字を入れることです。 ExcelのSheet1のD1セルに日付を表す数字が入っています。 Sheet2と3には2行目に月の日付がずらりと並んでいます。 1列目には記録番号が入っています。 それぞれのシートにSheet1のD1セルと同じ日付の列を見つけて、 その下の行から1列目の記録番号を元に検索したcsvファイルのデータを引っ張ってきたいのです。   Sheets("Sheet1").Select Cells(3, (Sheets("Sheet2").Range("D1")).Select と最初に入れるセルを探しても違う列に飛んでしまったりします。 又、下のセルまで数式もコピーできずに止まったままです。 VBAまでは手が出せずに悩んでいます。どうか教えて下さい。よろしくお願いします。

  • 項目毎に新規CSV形式、ファイル名をつけて保存

    お世話になります。 エクレルの項目毎に新規CSVファイルで、ファイル名をつけて保存したいです。 (1)添付図のようなフォーマットを、D列+CSVで保存を行う。 ・山本株式会社.csv ・佐藤有限会社.csv ・株式会社鈴木.csv ・有限会社田中.csv (2)新規ファイル内容 A列:支店番号(元データのE列) B列:支店名(元データのF列) C列:売上(元データのG列) マクロを使って上記作業は可能でしょうか? どうぞよろしくお願いいたします。

  • エクセルファイルの1レコード(1行)を1csvファイルへ変換マクロ

    エクセルファイルの1レコード(1行)を1csvファイルへ変換し、エクセルファイルにあるレコード数分だけあるフォルダに自動作成するマクロを教えて下さい。 因みに、csvファイル名は、エクセルデータの『a列.csv』となるようにしたいです。 【例】 本日2007/11/13 ○○.xls A列 B列 C列 111 1 356 13 1 2 ・ ・ ・ ・ ・ ・ 111.CSV "2007/11/13(火)","1","356,"","","" 13.CSV "2007/11/13(火)","1","2,"","","" 変換後のcsvの中身は 1列目に、本日の日付 2列目に、1 3列目に、変換元のエクセルファイルの3列目 4、5、6列目に空白 という形式です。 どなたかお分かりになるかた、ご教授願います。

  • エクセルのマクロ機能について

    もう一度 助けてください エクセルの集計表である列の移動 並べ替えをエクセルのマクロ機能でつくりました ボタンを押すだけで うまくいっていたのですが データーが増え行を増やそうと 前のマクロを削除して また最初から作ろうとしたところ 記録できません 静的変数が64KBを超えたとかでます 編集 削除しようにも実行とキャンセルしか使えません いろいろほん(VBA)を見ましたが 私のレペルでは100年無理です 簡単なエクセルのマクロにも 範囲があるんですか あるひとつのシートだけマクロを残しています 手作業の集計や決まった作業はたいへんです

専門家に質問してみよう