• ベストアンサー

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), "印刷プロシージャ" よろしくお願いいたします。

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

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

取り合えず、Set は余計だと思います。 あと、セルの内容にもよるのでしょうが、 routinetime1 = Range("A1").Text じゃないとエラーになるかも。

noname#101292
質問者

補足

ありがとうございます。 おっしゃる箇所を直したら、とりあえずその部分は動きました! (他とのかねあいでまたトラブルが起きてトホホなんですけど・・・) セルから日付を取得するだけでこんなにつまずくなんて~。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

>Setのところの変数名で「オブジェクトが必要です」エラーが出ます。 Set は、(HELP から引用) "オブジェクトへの参照を、変数またはプロパティに代入します。" "代入されるオブジェクトと同じ種類の<b>オブジェクトでなければなりません</b>。" (<b></b>は、私の註) ようするに、 Set を使う場合は、routinetime1 は、右辺と同じオブジェクトでないとダメだということです。(String は、オブジェクトではなく値型なので必要ない)

noname#101292
質問者

補足

たびたびご回答いただき、本当にありがとうございます。 そうですか・・・今までよく理解せず使っておりました。 大変勉強になりました。ヘルプもうまく使えるようになりたいです。