• ベストアンサー

(VBAにて)日付でデータを抽出するやり方

一度質問をしたのですが言葉足らずで説明不足でしたので、再質問させて頂きます。 (一度見た方も、もう一度お付き合い願います。) 全くマクロを知らないのですが、上司にマクロ作成を依頼され困っています。(無茶な...。) 下記に内容を記しますので、教えて下さい。 お願いします。 (概要) Excelで「元データシート」にて管理している障害管理表のデータを、 「まくろシート」を作成して「元データシート・D列:発生日時」をキーにして 任意の「開始月:yyyy/mm」と「終了月:yyyy/mm」をそれぞれ指定したセルに入力して、コマンドボタンを押したら、「sheet3」シートにその指定した範囲内のみのデータを表示するようにして欲しい。 ・sheet1について →・「元データ」にシート名を変更しています。  ・「元データ」には障害を管理しているデータが入力されています。    (管理表はこんな感じです)→項目名:3行目・データ:4行目~  ・セルA3~Y3が項目名(セルD3の項目名→発生日時)     ・セルA4~Y303がデータ(セルD4~D303→yyyy/mm/dd hh:mm:ss) ・sheet2について →・「まくろ」にシート名を変更しています。  ・ セルA2(開始月)とセルB2(終了月)に任意の年月(yyyy/mm)を入力してセルA5にある「コマンドボタン」を押す  ・ キーは「元データシート・D列:発生日時」のデータ部分です。      ・sheet3について →・コマンドボタンを押した結果、「sheet3」にマクロの実行結果を反映する。 (A1~Y1行目に項目名が・A2行目~Y(X)行目にデータが表示される) ・A4で印刷するのでA4用紙のサイズに設定する。 以上です。 宜しくお願いします。

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

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

>一度質問をしたのですが QNo.3385541 (VBAにて)日付でデータを抽出するやり方 http://okwave.jp/qa3385541.html こちらですよね? 今回の条件を当てはめて、書き直して実行してみては? >全くマクロを知らないのですが、上司にマクロ作成を依頼され困っています。 そもそも、そのような依頼が何故出たのか不思議ですけど。

tatuya24_2006
質問者

お礼

回答ありがとうございました。 途方に暮れていましたが、なんとかメドがつきました。 私も依頼されて困りはてました。 しかも短期間で。 あまり普段話さないので、どういう意図があるのか 聞きにくいです。 2度も質問内容を見て下さって ありがとうございました。

その他の回答 (1)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

前回の質問も拝見しました。閉じていませんでしたし回答に対する補足もお礼も全くなしでしたね。 今回の質問と前回の質問はほとんど違いませんね。すると回答(ヒント)はもう出ているのではないですか? >全くマクロを知らないのですが それでマクロを作らされるのは大変だと思いますが、今回の再質問は実際のシート構成に合わせて、まるまるマクロを書き直してくれと言っているように受け取れます。 まして仕事で使うものを給料をもらって作るのですよね。果たしてボランティアで快く書き直してくださるかどうか… やはり自分で書き換えてみる努力をして、その上でわからない点を再質問するのがよいのではないでしょうか

tatuya24_2006
質問者

お礼

回答ありがとうございました。 質問を2度も見て下さって感謝しております。 足りない頭を絞って何とかメドがつきました。 本来勉強しながら学ぶのが最良なのは当然ですが、 あまりに提出期間が短く、つい回答を求めてしまいました。 ありがとうございました。

関連するQ&A

  • (VBAにて)日付でデータを抽出するやり方

    ド素人なのですが、上司にマクロ作成を依頼され困っています。 下記に内容を記しますので、教えて下さい。 お願いします。 ・VBAを使ってExcelで管理してある管理表(下記参照)を 「発生年月日」をキーにして 「開始月:yyyy/mm」と 「終了月:yyyy/mm」をそれぞれ入力して、コマンドボタンを押したら  その指定した範囲内のみのデータを別シートに表示するように  して欲しい。 (例) 開始月:2007/8 終了月:2007/11 →2007年8月~2007/11月分の全データが別シートに表示される) ・管理表はこんな感じです。(大体、月に4件ぐらいあります)   発生年月日      件名    内容      完了日   (yyyy/mm/dd) (障害件名)  (障害内容)  (yyyy/mm/dd) よろしくお願いします。

  • Excel VBAについて

    Excel VBAについて ExcelのセルA1に日付データ(yyyy/mm/dd hh:mm)が入っています。 このエクセルファイルを開いている間、セルA1の日付(時分)が更新されたらマクロを実行するようにしたいのですが、どのようにしたらよいのでしょうか。 セルA1の日付データが更新されるタイミングは決まっていません。 セルA1の日付データが更新されたらマクロ実行というのが難しいのであれば、 10秒おきにマクロを実行というようなことができないでしょうか。 ご教授願います。

  • VBAでのデータ並び替え、条件判断について

    Excel2003、VBA6.5でマクロに挑戦しているVBA初心者です。 学生時代にプログラムはかじった事があるのですが、マクロは勝手が分からず、 以下のようなマクロを組みたいのですが、そもそもプログラムはどこの ウィンドウに書くのか?という辺りから調べ出す始末のため、皆様の お知恵をお借りしたく、投稿しました。 【目的】 Sheet1に貼り付けられたデータを、精査(並び替え、条件判断)し、結果をSheet2に出力させたい。 Sheet1(入力データ) 1行目は項目名 データA1,データB1,データC1,データD1,データE1 データA2,データB2,データC2,データD2,データE2 … … データA11,データB11,データC12,データD11,データE11 データA12,データB12,データC12,データD12,データE12 ※データEのみ、整数型で後は文字データになります。  また行数というか、データ量は20~30行程度を想定してます。 Sheet2(出力データ) 1行目は項目名 日付,データB1+データC1の文字列を結合,固定値2,条件判断結果1(データD1より条件判断) 日付,データB2+データC2の文字列を結合,固定値2,条件判断結果2(データD2より条件判断) … ※Sheet1のデータ1行は、すべてが必要でありません。一部のみがあればOKです。  上記の例だと、Sheet1のデータAとEはSheet2では不要です。 ※日付…マクロを走らせた日付をMM/DD形式で出力させたい ※条件判断結果…(データD1がAMだったら09:00、PMだったら13:00、PM2だったら15:00という値を返すようにしたい) 流れを考えてみましたが、 1)データ型を宣言して、 2)1行を配列に読み込む 3) a)データB列、C列の文字列を結合  b)データD列の条件分岐 4)配列からデータを書き出す 5)Sheet1の行が空白だったら処理完了 という感じかと思っているのですが、具体的にマクロにできず(関数をうまく使えず)、困っています。 Findメソッドか、Vlookupあたりで必要になるデータだけ、Sheet1で検索した結果をSheet2に埋めて 行く形でもできるのかな、とも思いましたが、こちらも具体的にマクロにできません。 特に処理スピードにこだわるわけではないですが、あとあと見返して勉強およびメンテできるような、 シンプルなカタチ(1行にコマンドを詰め込んだ複雑な形ではなく)にしていただけると助かります。 どうぞご教授いただけませんでしょうか。 よろしくお願いいたします。

  • VBAを利用しオートフィルタで日付抽出でエラー

    会員管理表を作っています。 集計シートと入金管理シートがあり、入金管理シートに入金日を 入力させ集計シート上でオートフィルターを実行し、表示された データだけを入金管理シートに抽出し印刷するというマクロを 作っています。 問題は、入金管理シートに"2007/4/27"と入力し、このセルを Stringで宣言した変数に格納すると値が"2007/04/27"となります。 オートフィルタでこの変数を使用すると、当然2007/04/27で検索され ますが、集計シートの日付は"2007/4/27"と表示されていてヒット しません。月や日付の04や05の0が入らないように変数にセット する方法はありますか?ちなみにどちらの書式設定は、日付で yyyy/m/dを指定しています。教えてください。 集計シートはこんな感じです。入金日でフィルタをかけてます  A    B   C    D 会員番号 会員名 入金日   入金額 0001   ぐうた 2007/4/27 1,000 0002   ぐうこ 2007/5/1  500 管理シートはこんな感じです。入力時には04と入力せず4と入力 しています。 【2007/4/27】入金データ A     B   C 会員番号 会員名 入金額 0001   ぐうた 1,000

  • データ抽出のコピーの仕方を教えてください。

    エクセル2007で表を作っています。 シートAに、1行目が項目で2行目以降データです。350行ほどあります。 シートAのそのデータにフィルタを使って、3件ほど、抽出しました。 シートBに抽出したデータと1行目の項目を列幅やセルの色などそのままコピーしたいのですが、 コピー→貼り付けだと、書式がコピーできません。 項目と抽出したデータをそのまま、まるっとコピーできないでしょうか?

  • VBAのデータ抽出について

     列  A   B   C 行1 番号  色   形  2  1   白   丸  3  2   赤   三角  4  1   赤   丸  5  3   黄   四角 (1)Excel Sheet1にコマンドボタン1があり、それをクリックするとUserForm1が表示されます。 (2)UserForm1には「番号」「色」「形」の各コンボボックス1,2,3が配置されています。 (3)各コンボボックス1,2,3に表示されるのは、Sheet1の各列のデータです。 (4)コンボボックス1,2,3のうち1つ選択→その条件に合うデータを抽出。  コンボボックス1,2,3のうち2つ選択→その2つの条件に合うデータを抽出。  コンボボックス1,2,3のうち3つ選択→その3つの条件にあるデータを抽出。 (5)Sheet1のコマンドボタン2をクリックすると、Sheet1は元のデータ一覧に戻る。 というようなプログラムを組みたいと思っています。 (4)のデータ抽出、(5)の戻し方がよくわかりません。 どなたかご教授下さい。

  • データ抽出について

    エクセル初心者です。 エクセル2003を使っています。 sheet1に元データとなる表があります。 ・データセル内は数値データです。 ・行方向へは200程度 ・列方向へは1500程あります。  A   B    C    D   E     F  1日付 項目1 項目2 項目3 項目4 項目5 ・・・ 2 3 4 5 6 この元データからsheet2へ日付をキーにして行データを抽出したいのです。 抽出先のsheet2のA列に予め目的の日付データのみ1200程入っています。 最初Vlookupでやり始めたんですが無理と分かりました。 フィルタオプションで試みたのですが、「検索条件範囲」の式の書き方が 分からず困っております。 OKWaveの関連したQAを参考に試行錯誤を続けていましたが、進展がありません。 お詳しい方よりのご回答をお待ちしております。

  • VBA フィルターで抽出したデータを別のファイルの

    VBA フィルターで抽出したデータを別のファイルのシートのセルにヘッダー行とフッター行のあるシートに挿入したい お世話になります。 excel のフィルターで抽出したデータを別のファイルのシートに抽出したデータと同一フォーマットの入っている原紙がありその原紙をコピーしたシートのヘッダー行(A1-A8)の後、9行目からフッター行の手前、52行めまでに貼り付けするを、フィルターで抽出した分繰り返したいのです。原紙 のシートはコピペでしたに20枚ほど作ってあります。 マクロの記述でコピペを繰り返せば作れそうな気はしますが、汎用性が無いので、また私の頭も固いので。 宜しくお願いします。

  • EXCELでの行の抽出

    sheet1に   A    B    C    D 1 日付 金額  備考  コード 2 01  1000 あいう    1 3 10  2000 えおか    3 4 20  3000 きくけ    4 5 30  4000 こさし    1 . . . という感じで元データ(100行ほど)が入っています。 これを元にしてsheet2に   A    B    C    D 1  1 2 日付 金額  備考  コード 3 01  1000 あいう    1 4 30  4000 こさし    1 . . . というふうに表示したいのです。 sheet2のセルA1に入っているコードと一致するコードが入っているsheet1の行を抽出してsheet2に行の隙間なく表示させたいのです。 こんなことはできるのでしょうか? メニューからコマンドを選択して・・・という方法ではなく、計算式かマクロで実現したいのです。 エクセル2000、Win98です。よろしくお願いします。

  • エクセルのデータ抽出

    会社で注文のあった業者のリストをエクセルで 作ってて450行くらいあります。 各項目には会社名や内容や価格などありますが その中には空白のセルや行もあります。 そこからA列に自分が抽出したい行に印をいれて フィルタをかけたところ、空白があるためか すべてを抽出できません。1行1行抜き出すのもいいのですが 今後、データも増えることを考えると 何かいい方法で抽出したいのですが、 どうしたらいいでしょうか? やはりマクロをつかうのでしょうか? すみませんがよろしくお願いいたします。

    • ベストアンサー
    • Mac

専門家に質問してみよう