• ベストアンサー

VBAで今の時刻から最新の設定時刻のプログラムを起動させたい

VBAでアプリケーションをつくっています。 時刻をいくつか設定し、その時刻ごとに印刷をかけさすというものです。 それを起動させる人間が何時に起動させるかが定まらないんですが、何時に起動しても、起動した瞬間に、その時刻に印刷されているべきものが印刷できるように(つまり、起動した瞬間、過去になっている時刻で一番新しい時刻の印刷ができるように)するには、どう組んだら良いのでしょうか。 「この時刻以前」というような意味の関数ってあるのでしょうか。 面倒な質問かと思いますが、何か良い方法がありましたらお願いいたします。

noname#101292
noname#101292

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

  • ベストアンサー
  • Kyuun
  • ベストアンサー率77% (14/18)
回答No.1

このVBAアプリケーションは、Excelでしょうか?それともAccessでしょうか? □□□ 処理イメージ □□□ 9:00 11:00 14:00 と、登録されている場合、現時刻が13:00であれば、11:00を取得したい。 このように、受け取りましたが、あっていますでしょうか? であれば ■Excelの場合  1.各時刻は、シートに登録されていると想定します  2.フィルター機能を使用し、起動時刻以下のみにする  3.一番最後の時刻を取得する   ※コードはマクロの記録を参照してください ■Accessの場合  1.各時刻はテーブルに登録  2.集計クエリで、「Where条件」と「最大」の2つの項目を指定  3.「Where条件」に <=現時刻 を指定する ではいかがでしょう? 見当違いでしたらごめんなさい

noname#101292
質問者

補足

丁寧なご回答をありがとうございます。 言葉足らずで申し訳ありません、Excelです。 私の質問の意味はおっしゃる通りです。 時刻は、現在はプログラムの中に書かれているもので実行していますが、 おっしゃるようにシートに登録してあるもので動かせれば 何よりだと思っています。 いかんせん、シート内容から日時を取得して プログラムに組み込む方法がわからなくて・・・。

その他の回答 (1)

  • Kyuun
  • ベストアンサー率77% (14/18)
回答No.2

No1です。 では、こんな感じではいかがでしょう? (マクロの記録を使って、一部手直ししたものです。) sheet1のA列に時刻を登録しました。 Function Get_Time() As String Sheet1.Activate Selection.AutoFilter Field:=1 '-- 「すべて」にしておく Selection.AutoFilter Field:=1, Criteria1:="<=" & Format(Now(), "hh:mm"), Operator:=xlAnd Range("A1").Select Selection.End(xlDown).Select Get_Time = Format(ActiveCell.Value, "hh:mm") End Function

noname#101292
質問者

お礼

ありがとうございました。 勉強して理解しようとしていたため お礼が遅くなりすみませんでした。 参考にさせていただきます。

関連するQ&A

  • VBでVBAを起動

    こんにちは、VB初心者です。 VB6.0を使用しています。 VBからエクセルのVBAを起動させたいと思っています。 過去ログを参考にして下のようにして実行してみたのですが、 「実行時エラー'1004':マクロ'Keisan'が見つかりません。」 と、エラーが出てしまいVBAを起動することができません。 (ExcelVBAの関数(?)名はKeisan()です。) どうすればエラーを出さずに VBからVBAを起動させることができるのでしょうか? 何か参照し忘れていたり Callの以前に何かを宣言をしておかなければいけないのでしょうか? ******** Dim Wbook As Excel.Workbook Dim Exap As Excel.Application Set Wbook = GetObject("C:\テスト.xls") Set Exap = Wbook.Application     Call Exap.Run("Keisan")

  • Excel VBAでセルに書いた時刻を取得したいのに・・・

    ExcelのVBAで、OnTimeを使い、 定時に印刷させるプログラムを組んでいます。 今までOnTimeの時刻設定に直接時刻を入れ込んでいたのですが、 ワークシートに登録した時刻を使うようにしたいと思い、 次のようにしたのですが、 Setのところの変数名で「オブジェクトが必要です」エラーが出ます。 ・・・何が悪いのでしょうか? Dim routinetime1 As String Dim routinetime2 As String Dim routinetime3 As String Set routinetime1 = Range("A1").Value Set routinetime2 = Range("B2").Value Set routinetime3 = Range("C3").Value Application.OnTime TimeValue(routinetime1), "印刷プロシージャ" Application.OnTime TimeValue(routinetime2), "印刷プロシージャ" Application.OnTime TimeValue(routinetime3), "印刷プロシージャ" よろしくお願いいたします。

  • 時刻設定

    JAVAでアプリケーションを作成しています。質問内容としてはOSが持っている時刻をJAVAから設定できないかなと思い、調査中です。時刻の収得などはカレンダークラスなどで収得できますが、設定の方法が分かりません。ご存じの方がいましたら教えてください。 <環境> j2sdk1.4.2_05 windowsXP

    • ベストアンサー
    • Java
  • パソコン起動時に毎回時刻の設定

    電源が落ちる症状がでた為、内蔵電池CR2032を新品に取り替えたのですが、 毎回ピープ音が連発しF1を押し、時刻設定をしF10キーを押し save and exit? が出ますので、OKをクリックしすれば何事も無かったかのように 普通にPCは立ち上がります。 以前は内蔵電池を変えた時に一度だけ 時刻を設定すれば普通に起動していましたが、今回は毎回設定しなければならず、 手を焼いています。時刻設定の方法が違うのかもしれないと思いますので、 御教授頂きたく質問しました。宜しく御願い致します。 Windows XP です。

  • 年月日時刻の設定

    PowerbookG3/Pismo 突然起動しなくなりました。バックアップ用内蔵バッテリーがあやしいと考えてオークションでバッテリーを入手、交換しまた。無事起動したのですが、現在時刻の設定を何度設定しても起動のたびに過去に戻ってしまうのです。なにがまずいのでしょう。お分かりになるかた、宜しくお願いします。

    • ベストアンサー
    • Mac
  • Excel VBA 時刻でのDo~Loopの抜け方

    いつもお世話になっております。 Excel VBA 時刻でのDo~Loopの抜け方を教えてください。 下記のような記述で、時刻(時間)の条件を満たした時 ループを抜けるように設定したのですが、 時刻が「8時」とか「15時」というように 時間でしか対応しません。 「何時何分」という設定にも対応するためには どのように記述すればよいか教えてください -------の部分は何らかの記述が入っているものとしてください。 ↓このように記述しました Do Until MyHour > 15 MyHour = Hour(Now) ------------------- -------------------- -------------------- Loop どうぞ、よろしくお願いします。

  • エクセルVBAでの設定方法について

    エクセルVBAでの設定方法について COUNTA関数を使ってシート2で、特定の条件を満たすものを、シート1で数字として返す、という設定をエクセルVBAで作りたいんですけど、シートに設定すべきなのか、普通に作るべきなのかわかりません。どういうふうに設定すべきか教えてください。

  • ノートパソコンの日付と時刻の設定

    日立のFLORA220WNS4を中古で購入し、Windows2000をクリーンインストール、必要なドライバもインストールし、他は何ら問題なく動作しているのですが、時刻がいつも狂うので困っています。 いつも初期状態(1970年とか)に戻るのではなく、また、でたらめな日付・時刻になるのでもなく、なぜか、起動する毎に前回手動で設定した日付・時刻になってしまうのです。 例を挙げると、(1)windowsを起動し、日付と時刻の設定で、現在時刻にあわせる(例えば17時00分とする)(2)10分間作業する(表示時刻は17時10分)(3)パソコンを再起動すると、なぜか時刻は17時00分に戻っている(4)そこで再度時刻を正しく(17時10分)に設定する(5)10分間作業する(表示時刻は17時20分)(6)再起動すると、表示される時刻は17時10分・・・ この繰り返しです。 他の質問で見るような、マザーボードの電池切れとは思えないので、一体何が原因なのか、まったくわかりません。 どなたかお知恵をください。

  • 起動したままでも時刻がずれます

    パソコンの時刻が起動したままでもずれてしまいます。 インターネット時刻設定で今すぐ更新を押すと、「同期中にエラーが発生しました。」というメッセージが表示されるものの時刻は正しくなります。 しかし、そのまま使用していると10分~20分くらいで時刻がおかしくなります。 おかしくなった際の日時はその時によってバラバラですが、1週間近く前の日にちになることもあります。 現在のパソコンを購入してから数ヶ月でこの症状が発生し半年ほど経過した現在も継続しております。時刻がずれる以外は特に問題なく使用できております。 (拙い知識で組み立てたWindows8のデスクトップパソコンです。) インターネットで色々と検索してみましたが、起動時にずれるという内容は見つけられるものの、このような内容のものは見つけられず、原因がわからずずっと困っておりましたので、思い切って質問させていただきました。 他にも確認したい事項がありましたら追記させていただきます。 よろしくお願いします。

  • ADDZESTのDMZの時刻設定

    以前の車から新しいくるまに移し替えてから時間ずれたまま設定できずにいます…。 説明書もなく、操作方法が分からないのですが、時刻設定の方法をご存じの方いらっしゃいましたら、教えて下さい。