• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA初心者です。)

VBA初心者必見!エクセルの日付を日付順に別シートに並べるやり方を教えてください

このQ&Aのポイント
  • VBA初心者のために、エクセルで日付を日付順に別シートに並べる方法を教えてください。既存のシートから日付を取得し、別シートに並べて表示する方法を教えてください。
  • エクセルのシート1には、名前と記号と日付があります。これらの情報を日付順に別シートに並べたいと考えています。奇数列に日付、偶数列に名前と記号を並べて表示する方法を教えてください。
  • VBA初心者のために、エクセルの日付を日付順に別シートに並べる方法を教えてください。日付が横に並んでいるため、そのままでは抽出できません。VBAを使って、日付を取得し、別シートに日付順に並べて表示する方法を教えてください。

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

  • ベストアンサー
  • sumer45
  • ベストアンサー率17% (52/294)
回答No.2

こういう事でしょうか? 但し、B列は無視してありますんで細かいところは直してください また この掲示板にVBEからこぴぺするとインデントが崩れます Sub test() Dim r As Long Dim c As Integer Dim Endrow As Long Dim atai As Variant Dim Ws1 As Worksheet Dim Ws2 As Worksheet Set Ws1 = Worksheets("Sheet1") Set Ws2 = Worksheets("Sheet2") r = 1 Do Until Ws1.Cells(r, 1).Value = "" c = 3 Do Until Ws1.Cells(r, c).Value = "" atai = Ws1.Cells(r, c).Value Endrow = Ws2.Cells(65536, 1).End(xlUp).Row + 1 Ws2.Cells(Endrow, 1).Value = atai Ws2.Cells(Endrow, 2).Value = Ws1.Cells(r, 1).Value Ws2.Cells(Endrow, 3).Value = Ws1.Cells(r, 2).Value c = c + 1 Loop r = r + 1 Loop Set Ws1=Nothing Set Ws2=Nothing End Sub

stools
質問者

お礼

早速の回答ありがとうございます。 色々と本を読みながら変えてみたりしましたが、 これは日付が出るようになっているのでしょうか? どうやっても日付がでないです… 勉強不足で申し訳ありません。

その他の回答 (2)

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.3

VBA初心者ということですが、ある程度は理解できるということでしょうか? #2さんの回答は理解できますか? 一応、マクロを使わない回答を。 「日付がたて1列であればできる」とのことなので、日付がたて1列の表を作る方法です。 ちなみに、日付の個数は、問題文から、E列からH列までの最大4つとしています。 セルJ5に =INDEX($B$5:$B$7,INT((ROW()-5)/4)+1,1) セルK5に =INDEX($C$5:$C$7,INT((ROW()-5)/4)+1,1) セルL5に =INDEX($E$5:$H$7,INT((ROW()-5)/4)+1,MOD((ROW()-5),4)+1) と入力して、J5:L5を下にコピぺすると、日付がたて1列の表ができます。 そのままだと中身が計算式なので、並び替えを行うと値も変わってしまいます。 その対策として、表全体をコピーして、「形式を選択して貼り付け」で「値」を貼り付けます。 すると、表の中身は計算式ではなく、値になるので、並び替えをしても値は変わりません。 元のデータで、日付が4つ未満の場合、日付の無いところは、たて1列の表では、1月0日になってしますが、そこは工夫して何とかしましょう。

stools
質問者

お礼

お返事が遅くなり、すみません。 #2さんの回答はすべて理解できたわけではありませんが、 なんとなく理解できる程度です。 マクロでできなかった時は、nattocurryさんの回答でがんばろうと思いましたが、 また色々と調べできました。 マクロを使わない方法も教えてくださり、ありがとうございました。

  • kuma56
  • ベストアンサー率31% (1423/4527)
回答No.1

Sheet1の情報をいったんどこかスペースに  B(名前)C(記号)E(日付) 5 ばなな  a  4/2 6 ばなな  a  5/3 7 ばなな  a  6/6 8 みかん  b  4/8 9 みかん  b  5/7 こんな感じにばらして一本にしてやれば可能では?

stools
質問者

お礼

早速の回答ありがとうございます。 どこかスペースにはしないで、できればいっきにやりたいのです。

関連するQ&A