• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:データを時系列で表示させたい)

データを時系列で表示させる方法を教えてください

このQ&Aのポイント
  • 日次毎の製造表を作っている場合、ひな形の表からシートに記録する方法を知りたいです。具体的には、日付、会社名、商品名、製造個数をシートに時系列で記録したいです。
  • 表のひな形には日付、会社名、商品名、製造個数の枠があり、一日の作品数に応じて空白行を無視して記録したいです。
  • 自分のレベルではコピー&ペーストしか方法が思いつかないため、より効率的な方法(マクロなど)を教えていただきたいです。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

質問文章が長いが、短くかけるのでは。 シート1に入力したデータを、シート2のデータ最下行の次に、日々累積していきたい というだけでしょう。 ーー ただ誰でもやりたいとぶつかるケースなんだが ーー (1)そのためには、累積するキッカケ(1日の入力の終わりを)を伝える「イベント」というもののVBAの考え方。 (2)シート1の最終行を捉えるコード=>毎日この質問コーナーには出ている常套方法だが (3)シート2の最終行を捉えるコード。(2)と同じ。 さえ判れば簡単。 ただ付帯して、他シートの参照、コピーなども使用経験が要る。 この質問は丸投げだが、まあコード例を書いておく。 ーーー Sheet1にコマンドボタンを1つ貼り付け。 ダブルクリックして、VBE画面に出てくるコードの2行(Private・・とEnd)の間へ Private Sub CommandButton1_Click() d1 = Worksheets("Sheet1").Range("A100").End(xlUp).Row MsgBox d1 d2 = Worksheets("Sheet2").Range("A65536").End(xlUp).Row MsgBox d2 Worksheets("Sheet1").Range("A2:F" & d1).Copy Worksheets("Sheet2").Range("A" & d2 + 1) End Sub となるよう中間行をコピペ。 ーー 例データ  初日の入力 氏名 年齢 住所 a 12 北区 a 23 新宿区 d 43 品川区 f 18 港区 ーー コマンドボタンをクリック Sheet2は 初日なので上記と同じ 氏名 年齢 住所 a 12 北区 a 23 新宿区 d 43 品川区 f 18 港区 ーー 次の日の入力 Sheet1 氏名 年齢 住所 cc 23 川口市 ddff 25 杉並区 fds 41 江東区 入力完了後、コマンドボタンをクリック Sheet2 氏名 年齢 住所 a 12 北区 a 23 新宿区 d 43 品川区 f 18 港区 cc 23 川口市 ddff 25 杉並区 fds 41 江東区 と累積される。 ーーー コードの最後にシート1の入力範囲の値!を空白にするコードを入れるほうがよいかも。今回略。 ーーー コードは行数も少なく、簡単そうに見えるが、小生なりの経験が詰まったものです。VBAは簡単だと思わないこと。

nango1
質問者

お礼

imogasiさん、ありがとうございます。 想像してた通りのが出来ました。 助かりました(^_^)

その他の回答 (1)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

何故か今日は同じようなアドバイスがしています。 シート2に  A  B    C    D    日付 会社名 商品名 製造個数 B列、C列には別途 一覧表を準備して入力規則を設定 日付は、入力作業をおこなったら自動で当日の日付がはいる 残りは、手入力で個数を入れる シート1には 日付を入れると その日に作った物の一覧表が雛形に表示される。 つまり、最初からシート2に入力した方が楽だと思います。

nango1
質問者

お礼

今回はimogasiさんのやり方でやってみたいと思います。 わかりづらい質問だったと思いますが、回答ありがとうございました。

関連するQ&A