• ベストアンサー

エクセルVBA  「本日」の日付を検索したいのですが

お世話になります。 シートを開いたときに、日付列を検索して本日と同じ日付(日付列に本日と同じ日付がなければ、前日や前々日など、近い日)の一番最初のセルをアクティブにしたいのです。 素人なのですが、教えていただけるでしょうか。 理由ですが、 エクセルで文書受付簿をつくり、利用しています。 受付簿であるシート名 台帳  で受付記録をしているのですが、 別シート  コピー用『前年度』データ   というものを作ってあります。 それは、前年度の受付内容をコピーしたものであり、必要なセルをダブルクリックするとシート  台帳  の最終行に貼り付けるようにVBAを組んでいます。 (毎年同じ件名の文書が来る場合は、ダブルクリックするだけで入力できるので、手間が省けます) 同じ件名の文書は、だいたい同じ時期に来るので、シート  コピー用『前年度』データ   を開いた際に、日付列を検索して本日と同じ日付(日付列に本日と同じ日付がなければ、前日や前々日など、近い日)の一番最初のセルをアクティブにしたいのです。 ただし、まったく同じ日に去年も同じ件名の文書がくるわけではないので、同じ日を抽出するのではなく、検索してセルをそこに合わせるということをしたいのです。 コピー用『前年度』データ   の状況は、 A列は日付です。この日付は、表示は「月日」のみですが、数式バーには2006/4/5と表示されるように、年の情報も入っています。年は無視して、月日だけで検索したいのです。 一日に20件以上受付するので、日付も同じ日が20行近く続いて次の日の受付データに変わります。その日のまとまりの中で、一番上の行に合わせたいのです。 B列は相手先が入っています。 C列は文書の件名が入っています。 つたない説明ですが、お分かりいただけたでしょうか? よろしくお願いいたします。

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

  • ベストアンサー
  • fly_moon
  • ベストアンサー率20% (213/1046)
回答No.3

こんにちは。横から失礼します。 私もNayuta_Xさんの意見に賛成です。 確かにVBAでやれますが、その必要があるとは思えないし、どうしてもやりたいなら自分で試行錯誤されてから解らない部分を質問されてはどうですか? >A列の日付は、ほとんど日付順に並んでいます。 >現在は、手動で本日の日付近辺をスクロールして表示させています。 それなら、毎日スクロールして目的のセルをアクティブにして保存すれば少しのスクロールで済むんじゃないですか?そういう手間を全て省きたいならVBAを勉強するっていう手間を惜しまないで下さい。

pocorino
質問者

お礼

確かにおっしゃるとおりです。 VBA辞典を参照はしてみたものの、うまくいかなかったもので質問させていただきました。 もう少し調べて、解決しなければ再度質問したいと思います。 ありがとうございました。

その他の回答 (2)

  • Nayuta_X
  • ベストアンサー率46% (240/511)
回答No.2

追加です。 VBAに、こだわっていませんか?。 エクセルなら、データ⇒並べ替え で、簡単に出来ますよ。

pocorino
質問者

補足

ありがとうございます。 A列の日付は、ほとんど日付順に並んでいます。 現在は、手動で本日の日付近辺をスクロールして表示させています。 その操作の手間を省こうと、VBAなら・・・と思った次第なのです。

  • Nayuta_X
  • ベストアンサー率46% (240/511)
回答No.1

いまいち内容が解らないです。 >エクセルで文書受付簿をつくり、利用しています< >別シート コピー用『前年度』データというものを作ってあります< とありますが、これらの関連が、不明です。 それとも、これらに関係なく シートを開いたら 今日の日付 または、最新の日付の入った セルをアクティブにすれば、良いのでしょうか??。 それだと、>台帳 の最終行に貼り付けるようにVBAを組んでいます。< が、問題になりそうですね。(見ずらくなりそう) 同じ年月日が、複数あったら どうしたいのですか?。 私だったら、新しいものは、常に 一行目に挿入する方法を考えます。 そうすれば、検索などせずに シートを開けば、直ぐに 解ることですから。

pocorino
質問者

補足

つたない説明で申し訳ありません。 私のイメージでは、 このシート "コピー用『前年度』データ" を開いたときに、 A列にあらかじめ入力されている日付を検索し、パソコンの"本日"と同じ列にセルを合わせて欲しいのです。 (他のシートとの関連はないと思いましたが、念のため質問文に入れてしまいました) 同じ月日が多数あるので、その場合は一番上のセルをアクティブにしたいのです。 また、同じ月日が無い場合は、その近い日(前日や前々日など)をアクティブにしたいのです。 年は去年の年ですので違うのですが、月日だけを検索の対象としたいのです。 この説明でよろしいでしょうか。 よろしくお願いいたします。

関連するQ&A

  • EXCEL VBAで文字列の検索とコピー

    検索したい文字をinputboxで入力して、A列を検索して、検索文字を含むセルをコピーして、そのコピーしたデータを、別のシートに貼り付ける、次に該当したセルをさっきコピーしたデータの次の行に貼り付けて・・・。とデータが入力してある最終行までの繰り返し、をやりたいのですが、ご指導の程、説明が下手ですが宜しくお願いします!

  • エクセルで本日の日付の行に色をつけたい

    エクセルで民宿の予約表を作成しています。 Bの列に日付、横にFからAXまで部屋番号となっています。 条件付書式を使って本日の日付に色をつけることは出来たのですが、 日付のセルだけでなく"日付の行"に色をつけたいのです。 エクセル技道場というサイトで"本日の日の列に色をつける" http://www2.odn.ne.jp/excel/waza/cformat.html#SEC30 という"行"ではなく"列"のやり方がのっていたので、このやり方が使えないか試してみましたがうまくいきません。 どなたかご教授願います。

  • Excel VBA

    Excel VBAについて シート1にはデータが入ってます。 G列に日付、L列に商品名、N列に件数。 シート2には集計結果を入力したいです。 セルB2に、日付が10月1日から15日までで、商品名がAの件数の合計。 セルB3は、日付が10月16日から末日まで、セルB4は、日付が11月1日から15日までと半月毎に集計を半年後の末日まで繰返し、B2の数行下には、商品名Bの集計行を作り、その数行下には商品名Cの集計行を作りたいです。 これまでは関数SUMIFSで集計していましたが、複数店舗分のシートの更新・メンテナンスが大変なので、VBAでの集計を考えいろいろ調べてるのですが、方法が思い付かないので、ご教授ください。

  • エクセルVBA初心者です。マクロを組んでください。

    エクセルVBA初心者です。組んで欲しいマクロがあります。 Sheet 1に13桁を入力するセル sheet 2に検索したいデータ 手順としては、 Sheet 1のセルにデータを入力 →13桁以上でマクロが開始(されるように設定します) →Sheet 1のセルと同じ数列をSheet 2の列Aから検索 →該当のセルを含む行をSheet 3にコピー →Sheet 1の入力セルの少し下にもコピー (確認用) というのを一回一回ずつやりたいです。 できれば作業中マウスやキーボードを触りたくないので、そのために、マクロの終わわりには入力セル内の消去、マクロの始まりには確認用でコピーした行の削除もつけて下さい。 検索するSheet 2には同じデータが含まれているので、出来ればひとつずつSheet 3にコピーしたいので組み込んで頂けると幸いです。 よろしくお願いいたします。

  • エクセルVBAでご教示ください

    シート1のB5にNo、C5に住所、D5に電話・・・・・CXまで入力したものをコピーして シート2のB列の同じNoの行に貼り付けるVBAをご教示ください。 おこないたいことは、シート2に1500ほどある台帳で、修正をのある行データをシート1に No入力で呼び出し、修正して、修正したデータを元台帳に戻すということを行いたいのです。 No入力で呼び出すVBAは何とか出来ていますが、シート2の同じNoの行に貼り付けるVBAが わかりません。 どなたか、よろしくお願いいたします。

  • エクセルマクロで日付検索について

    エクセルのマクロで日付を検索するマクロについて質問です。 ブックAのシート1のA列に A1 2017/3/13 A2 2017/4/1 A3 2017/4/19 A4 2017/5/16 A5 2017/7/17 A6 2017/9/5 というような日付が入っています。 ブックBのシート1のA1セルに2017/6/3と入力してマクロを実行した際に その日付に一番近い一つ前の日付を探し、見つけた日付のB列のセルを ブックBのシート1のA2セルに表示したいです。 今回の例であれば2017/6/3に対してブックAのシート1のA列はA4セルが当てはまり その当てはまったA4セルの1つ横のB4セルの内容をブックBのシート1のA2セルに表示するということです。 よろしくお願いします。

  • Excelの日付をコピーし、貼り付けると1日ずれます

    Excelに入っている日付データをコピーし、別のファイル、又は別のシートのセルに貼り付けると、不思議なことに、日付が1日ずれた形でコピーされてしまいます。 例えば 2005.9.22 10:00:00 と入っているセルをコピーし、貼り付けると 2005.9.23 10:00:00 と貼り付けられてしまうのです。 但し、これが同じシート内の場合は同じ日付でペーストされます。 どうやっても1日ずれてしまうので、困っています。 どうすれば同じ日付が貼り付けられるでしょうか?

  • エクセルの指定日付をアラート表示したい

    エクセルの指定したセルに日付(未来日)が入っています。その日付になったらアラート表示をしたいのですが、これは可能でしょうか? 【したい事】 (1);Sheet1にSheet2~Sheet10までのデータのサマリー情報があります。 (2);Sheet2~Sheet10のC列に日付(過去日・本日・未来日)が入っています。 (3);(2)のC列に入っている未来日日付が本日になったら、(1)のサマリーデータにアラート表示をしたいです。Sheet1内のSheet2名情報にアラートされていれば問題ないです。 表現の仕方も解らず、ちんぷんかんぷんで誠に恐れ入りますが、宜しくお願い申し上げます。

  • vba初心者です。どなたか教えて下さい。

      独学でエクセルVBAを勉強している熟年おじさんです。  色んな参考例を見ながらヒントになる事例を探していますが、中々、似た例が見つからず  困っています。手がかりでも掴めたらと思います。どなたかご指導下さい。   同一BOOK内の2つのシートに同じ行と列に同じ項目内容が入っています。その一枚目のシートの行と列を検索して同じ行と列に該当するデータを、二枚目のシートの同じ行列のセルにコピーするのです。   それだけのことですが、もうひとつの条件は、一枚目のシートには毎日新しいデータが入ってきて  その二枚目シートのデータを日単位で色分けしたいのです。従って、二枚目のシートには、日単位で 空いているセルにデータが蓄積されていき、空白セルが埋め尽くされていきます。   この場合、各シートのデータが同一セルにダブルことは絶対にありません。 一枚目シート                 二枚目シート     行⇒ A B C D E F G          行⇒ A B C D E F G 列 A1 2 6 1 9 23 7 90          列A1 2 6 1 9 23 7 90     B5 11 8 18 34 67 9 34          B5 11 8 18 34 67 9 34    C9                       C9   U9                        U9  ・・・翌日データ追加・・・    P5                        P5        上記はシートイメージですが、行は品名で列は工程名で、中のデータは測定値です。    2枚のシートには全く同じ品名と工程名が入っていて、毎日、入ってくる一枚目シートには    その日のデータしか入ってきません。それを、二枚目のシートの空いたセルにコピーして    いきます。データは毎日追加すのですが、同一セルにダブルことはありません。    以上よろしくお願いします。

  • エクセルでのデータのあいまい検索のVBAについて

    VBAかマクロで作成したいと思いますが、あいまい検索ができずに困っております。 どなたかご教授お願いできますでしょうか? 一応画像を添付しておりますが大変見にくく申し訳ないです。  一つのファイルで2枚のワークシートを使用してデータのあいまい検索をしたいと思っております。 画像1の方のワークシートがSheet2になっていてこちらの”I”の列に入力しているデータが画像2になりますが登録商品リストの”G”の列に含まれているかを検索したいと思います。 その結果は”Sheet2”の緑色の部分”I”のセルにデータがあれば”*”をJのセルに表示したいと思います。 登録商品リストには長いもので桁数が30桁近いものもありますがこの桁数を8ケタくらいまでの一致でSheet2のIの列のデータと照合して結果をJに表示できればと思っております。何卒ご教授くださいますようお願いいたします。 照合するデータにつきましては、その日によって件数が違いますので、Sheet2のI列にあるデータが200件くらいの時もあれば2000件くらいの時もございます。 登録商品リストは登録するたびに量が増えていくので照合件数も増えていくことになりますので、どちらも1行指定でできればべすとだとおもっております。

専門家に質問してみよう