• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:複数EXCELのセルデータを違うセルに移したい)

複数EXCELのセルデータを違うセルに移したい

このQ&Aのポイント
  • 複数のエクセルのファイルを1つのファイルの1枚のシートにする方法を教えてください。
  • 現在、一枚のシートに日付ごとに項目が入っており、項目の前の列にそれぞれ日付をつける方法を教えてください。
  • または、複数のEXCELファイルから1つのファイルの1枚のシートにする方法を教えてください。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

元のCSVファイルの1つをふつーにエクセルで開いて見てみると、必ず ○C3セルに「日付」のデータが記入されている ○C4セルのデータは要らない ○C5セル以下の「不定数」のセルが必要 ということですね。 ついでに ○コピーしたいのはC3以下だけ。それ以外のA列やB列、D列以右は全く不要 という事で間違いないのですね。 それからご相談に書かれていませんが、エクセルに集約したあとは、C列のグループ先頭の日付のデータは通常は不要なので、 ●C5以下の必要なデータだけをC列にコピーする ●その隣のB列にC3の日付をずらり転記する 事にします。 オマケで、前回回答のマクロは各CSVの先頭行にタイトル行が記入してある前提で書いていましたので、それもやめにします。 sub macro2()  dim myPath as string  dim myFile as string  worksheets.add before:=worksheets(1) ’さっき調べたパスを下記に記入する。最後の¥を消してしまわないよう注意する  mypath = "c:\Users\<UserName>\Documents\元データ" & "\"  myfile = dir(mypath & "*.csv")  do until myfile = ""   workbooks.open mypath & myfile   with thisworkbook.worksheets(1)    range("C5:C" & range("C65536").end(xlup).row).copy .range("C65536").end(xlup).offset(1)    range("C3").copy .range(.range("B65536").end(xlup).offset(1), .range("C65536").end(xlup).offset(0, -1))   end with   workbooks(myfile).close false   myfile = dir()  loop end sub

photosyrup
質問者

お礼

keithinさん>ありがとうございます。無事できるようになりました。今まで何日もかかっていた無駄な作業が一瞬で出来て本当にうれしく思います。本当に感謝です。ありがとうございます。

photosyrup
質問者

補足

keithinさん>こんな動物に何度も本当にありがとうございます。感謝の限りです。  申し訳ありません。また説明の仕方がへたくそでして間違えている部分がありました。 ○コピーしたいのはC3以下だけ。それ以外のA列やB列、D列以右は全く不要 のところですが列はCからM列まででした。説明不足で申し訳ありません。勉強になります。 ●C5以下の必要なデータだけをC列にコピーする ●その隣のB列にC3の日付をずらり転記する のところはkeithinさんが言われてる通りにしたいです。本当にありがとうございます。

関連するQ&A

専門家に質問してみよう