連続データから日付一致抽出し別シートへ転記したい

このQ&Aのポイント
  • マスタシートにデータ入力し、ボタンクリックで日付シートが追加される。その日のデータを抽出し日報シートを追加していきたい。別ブックにも同時に保存したい。
  • シートAAAには複数行のデータがあり、月間連続して入力される。マクロボタンをクリックすると、現在の日付のシートが追加される。追加シートのデータはシートAAAから抽出される。
  • 追加シートには日付がわかりやすく表示され、別ブックにも同時に保存される。同日付シートがある場合は上書きされるが、確認のダイアログが表示される。
回答を見る
  • ベストアンサー

連続データから日付一致抽出し別シートへ転記したい

ひとつの処理として実行したいのですが、マクロ組み合わせがわかりません。。。・・どなたか教えてください ●エクセル シートAAA A  B    C     D    E    F 1 2月1日 データ → 2 2月1日 データ → 3 2月1日 ↓ 4 2月2日 5 2月2日 6 2月3日 7 2月4日 8 2月5日 ↓ ・1日の入力は、複数行あります ・このシートAAAはマスタデータとして保存したい。 月間連続して入力されます ・シートAAA内に設置されたマクロボタンで、1日1回(日報) 日付名シートで追加してゆく Private Sub CommandButton1_Click() Worksheets.Add(After:=Worksheets("シートAAA")) _ .Name = Format(Now(), "yymmdd") End Sub ・同日付シートがある場合は、上書き。一応確認のダイアログを表示  し、マクロエラーを回避したい ・追加シート名yymmddのデータは、シートAAA内で抽出された yymmddと一致する全行列データを ・追加日付名シートタブのほかにセル内にもわかりやすく日付を表示させたい ・同時に追加シートyymmddを別ブックにも新規追加転記させたい ・できればシートAAA内のボタン、ワンクリックで処理完了させたい ■簡潔に?。。 マスタシートにデータ入力 ↓ ボタンクリック、 日付シートが追加される マスタシートから、その日だけのデータを抽出し日報シートを 追加していきたい。また別ブックにも同内容で同時書き出し保存 ↓ お願いします

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

  • ベストアンサー
回答No.1

マクロ作成に必要な考え方を書きます。 <準備> (1)日報用紙を作り、Sheets(1)とします。 (2)シートAAAをSheets(2)とします。 (3)新しく作成する日報はSheets(3)とします。  新しい日報はいつもシートAAAの直後に置くというルールにする。 <マクロの構成> (1)シートAAAにて、日報に記述したいデータを収集します。  収集データの保管方法は自分でお考え下さい。(配列 AAA()を利用すると便利です。) (2)日報用紙をコピーし、シートAAAの直後に貼付け、シート名をつけます。そのシート名は、収集データから入力します。 (3)Sheets(3)にて、収集データを入力します。 (4)必要に応じて、ユーザーへの意志伝達を記述します。(例えば、プログラム作動中とか作業終了とか) 以上

zaikoman3
質問者

お礼

ありがとうございます。 まずは、キッチリと設計しないといけないですね。 マクロに頼るのではなく、いろんなパターンがあることも忘れてはいけないですね。

関連するQ&A

  • 条件のあったシートへデータを転記するマクロ

    よろしくお願いします。 ブック内にシート名でマスターシートと在庫日報入力シートの2つがあります。在庫日報シートのA1に日付、A列3行目以降に商品コード、B列3行目以降に各商品名、F列3行目以降に各商品の在庫数量が入っており、毎日更新されます。マスターシートには縦A列3行目以降に日付が入っており、また横1行目(A1,B1,C1....)に各商品名が百以上記載されています。今まで、以下のマクロで在庫日報入力シートの在庫数量をマスターシートの対応するセルに転記していました。(縦の日付を検索し、横の商品名を検索し対応する場所に在庫数量を転記) Private Sub CommandButton1_Click() Application.DisplayStatusBar = True Dim LastR, idxR As Long, trgR, trgC If MsgBox("日付は正しいですか", vbQuestion + vbOKCancel) = vbOK Then With Worksheets("在庫日報入力") LastR = .Range("A65536").End(xlUp).Row trgR = Application.Match(.Cells(1, 1), Worksheets("マスター").Range("A:A"), 0) For idxR = LastR To 3 Step -1 trgC = Application.Match(.Cells(idxR, 1), Worksheets("マスター").Range("1:1"), 0) If IsNumeric(trgR) And IsNumeric(trgC) Then Worksheets("マスター").Cells(trgR, trgC + 1) = .Cells(idxR, 6) Else .Cells(idxR, 1).Interior.ColorIndex = 3 End If Application.StatusBar = "マスターシートに転記中・・・進行状況 " & idxR & "" Next idxR End With Application.StatusBar = False MsgBox "終了しました。(処理件数=" & LastR- 3 & "件)", vbOKOnly: Exit Sub End If End Sub 今までこれで良かったのですが、今度、マスターシートを削除して、各商品名毎にシートを作成します。そのため、それぞれの商品名シートに在庫日報シートのデータを転記するように変えたいのです。商品名シートはそれぞれA列3行目以降に日付が、となりのB列に在庫数が入るようになっています。 在庫日報シートの各商品に対応した商品名シートを見つけて、そのA列から在庫日報と同じ日付を見つけて、その行のB列に在庫日報シートの在庫数量を転記する。というものです。商品名シートは百以上あり名前は文字列です。 今までのマクロは教えてgooで教えていただきながら作りました。すいませんが、またご教授をお願いします。

  • 日付から別のシートにデーターを抽出する。

    大まかに2つの質問があります。 まず、下記の勤務表のE6のセルに月数(この場合6)を入れると「6月度勤務表」と表示しそしてA1セルに平成24年度と同時に表示し、更に、A4以下にその月の1ヶ月分の日付が出るようにしたいのです。 問題は、締めの関係で始まりは毎月21日から翌月の20日迄になるようにしなければなりません。 もう、一つはその日付を検索して、あらかじめ用意している31日分のシート(21日シート、22日シート・・・)に勤務表の出欠勤情報を呼び出し、出勤する人の作業を指示する予定表を一ヶ月分まとめて月初めに作りたいのです。 問題は勤務表の日付が、1日~月末という順序であれば問題はないのですが、締めの関係で21日~月末~翌月の20日という順序で並んでいる日付では、例えば28日で終わるような2月と31日まである3月では、順番にデーターを流し込むと日付がずれてしまいます。 以上の2点について何か良い手法はないものでしょうか? 1点づつの回答でも構いませんので、どうかお教えください。

  • エクセルのシート毎に日付

    業務日報を作成しています。 1シート1日なので、1ヶ月30シート~31シートあります。 1ヶ月1ファイルです。 この全シートのA1に日付を入れたいのですが、毎日入力するとも 限らないので、最初から 2008年8月1日(金)のような日付を 入力したいのです。 その場合、1日分を入力したら2日以降31日まで入力になるような 方法はないでしょうか?

  • 複数のシートからデータを抽出し別シートに纏める

    業務で毎日エクセルを使っています。 予め用意された表にデータを入力し、決まった時間にメールに添付して報告しています。 月に一度、毎日入力したデータを別のシートに纏めるのですが、1日分ずつコピペしており、マクロを使って時間短縮できないかと考えるようになりました。 なにぶん最近マクロという言葉を覚えたのでマクロを組むにまでは至っておりません。 どなたか良いアドバイスをいただければと思い、質問させていただきました。 【前提】 業務で使うPCはWindowsXPでExcelは2003です。 入力する表は決まった形式であり、セルの位置も同じです。 1日最大で5シート程使いますが、日によっては1シートの時も2シートの時もあります。 毎報告時に表が全て埋まることはなく、さっき報告した時は5行だったけど次の報告の時は1行だったりします(逆の場合もあります) 月に最大で110シートほどになりますが、先月は70シート程でした。 【やりたいこと/欲しい結果】 ・表のセルからデータがある行を抽出し、別シートに纏める 具体的なセルは、(1)D5~M14の範囲と、(2)D17~M26の範囲です。 ・シート1からシート100の(1)を日付順にまとめて別シート(例:まとめ1)に ・シート1からシート100の(2)を日付順にまとめて別シート(例:まとめ2)に 不慣れな上、質問を頂いてもすぐに返答できないかもしれませんが、よろしくお願い致します。

  • エクセルのシート間で連続した日付データを作りたい

    オートフィル機能をシート間の串刺しでやりたいと考えています。 現在、日付ごとに1日から31日までの31枚のシートがあります。 1枚目のシートのA1セルに1月1日と入力すると、その後30枚のシートのセルA1にそれぞれ1月2日~31日までの日付が自動で表示できるようにしたいのですが、どのようにすれば楽に処理できるのでしょうか? なお、A2セルには曜日も表示させる予定です。 ご存じの方がいらっしゃいましたら、ぜひお知恵を拝借させて下さい。

  • Excel2003 シートの連続データ

    シート別に日報を書いてます。 月が変わるごとに、シート名を変えて、とても面倒です。 シート1   1月1日と入力するだけで シート2   1月2日 シート3   1月3日 、 、 、 シート31  1月31日 と残り30枚のシートに自動入力できる方法を探しています。 わかる方が居れば教えて下さい。

  • エクセル:別のシートへ抽出したデータをリンクさせたい。

    次のようなシートがあります。(シートAとします。)     A    B    C  … [1] 001  AAA [2] 002  BBB  あああ [3] 003  CCC [4] 004  DDD   [5] 005  EEE  いいい C列の空欄データは除外して、C列にデータが記入されているものだけ別のシートに(シートB)に行ごとリンクさせたいと考えています。 (この場合だと2列と5列です。) シートAには今後もデータが追加される想定で、新しいデータで当てはまるものは自動的にシートBに反映されるようにさせたいのですが…。 マクロ等は詳しくありません。できるだけ簡単にできる方法があればご教授していただきたいと思います。 よろしくお願いいたします。

  • VBAにてシートを別のファイルに追加する方法

    多分全部を検索すると答えがあるのでしょうが、少々急いでおりますので新たに質問をさせていただきます。やりたい事は以下のものです 1.編集するVABはファイルaaa.xlsのものです 2.aaa.xlsに”マスタ”というシートがあります 3.ファイルzzz.xlsにこの”マスタ”シートを追加します 4.追加後、aaa.xlsでの編集作業を続けます(zzz.xlsでの作業はありません) 以上です。よろしくお願いします。

  • 【エクセル】データ用シートを作成し、すでにあるフォーマットへデータを反映させたい。

    お世話になります。 日報を簡単に作成できないか?と言われ、試行錯誤をしている最中です。 日報へは 当日の出荷数・今月の出荷累計・当日の入荷数・今月の入荷累計等 を入力しないといけません。 入力は、PCに触ることがあまりない人もいて、 「データ入力用のシートがあって、それを入力するだけで、 日報ができたら嬉しいんですが」とのリクエストが・・・。 日報にはすでにフォーマットがあります。 新しく「データ入力用」というシートを作成し、そこへ1日から31日までの 出入荷量等の表を作成し、累計も計算できるようにし、 それらのデータを例えば6月1日とフォーマットに日付を入力すると 6月1日のデータが日報のフォーマットへ自動で入力されるというような ことはできるのでしょうか? また、できるのであれば、どのようにしたらいいのか、アドバイスいただけると嬉しいです。 説明が上手にできずに申し訳ありませんが、よろしくお願いいたします。

  • エクセル:シートを増やす際の日付更新について

    エクセルのテクニックはほぼ素人の者ですが、 上司より日報や顧客管理シートを作るよう指示されたため、マクロを少しずつ利用し始めました。 本題の質問なのですが、日報管理に関しては「原本」シートを作成し、「シート追加」のボタンを日々押して新たなシートを作成して蓄積する方法が良いと考え、なんとかそこまでは初心者ながら作成出来ました。 が、日付に関して困っています。 原本には「TODAY関数」を入れており、追加されたシートで関数の入ったセルをコピー → 値として保存の操作で希望の形に出来るのですが、シート名も日付に合わせた形→ActiveSheet.Name = Range("A3") のように設定しても、そもそも(/)が残っているので上手くいきません。 ただの文字列にしようとしてもシリアル値に変わってしまうため、これまた上手くいきません。 追加したシートのシート名を手打ちで打ち直す方法をとればいいだけの話ですが、方法があればご教授頂きたく存じます。 よろしくお願いいたします。

専門家に質問してみよう