• ベストアンサー

Application.OnTimeで引数付き関数を呼び出したい

Application.OnTimeで引数付き関数を呼び出したいのですが、可能でしょうか? 例を挙げると、   Sub Procedure1 (index as integer)       MsgBox index   End Sub を、呼び出してみたいです。 詳しい方、よろしくお願いいたします。

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

  • ベストアンサー
  • hotosys
  • ベストアンサー率67% (97/143)
回答No.1

こんなのはどうでしょうか? Application.OnTime Now + TimeValue("00:00:02"), "'Procedure1(100)'" Application.OnTime Now + TimeValue("00:00:03"), "'Procedure1(200)'"

tysdtyhsdy
質問者

お礼

できました! 助かりました。 どうもありがとうございました。

関連するQ&A

  • Excel VBA onTime関数のプロシージャ引数に、引数(変数)つきのプロシージャを呼び出す方法を教えてください。

    現在ExcelVBAで一定時間ごとにメッセージを出すツールを作成しています。 その際にonTime関数を使っていますが、その引数のひとつである呼び出すプロシージャに「引数(変数)つきのプロシージャ」を設定しようとしています。 サイトを探してみたところ、引数にシングルクオーテーションで囲むなど書いてあったのですが、変数を引数としたプロシージャを設定すると、「プロシージャが見つかりません」のエラーがでます。 どなたかお力を貸してくれませんでしょうか。 ちなみに僕のコードは以下の通りです。(簡略化) ------フォーム Private Sub cmbOk_Click() Call メッセージ実行(txtTime.Text, txtContent.Text) End Sub ------ThisWorkbook Private Sub メッセージ実行(ByVal time As String, ByVal content As String) Dim starttime As Double MsgBox time & "毎に" & vbCr & content & vbCr & "を表示します。", vbInformation Unload frmSet starttime = Now + CDbl(TimeValue(time)) Application.OnTime starttime, "'expressContent" & time & content & "'" End Sub ------標準モジュール Dim starttime2 As Double Sub expressContent(ByVal time2 As String, ByVal content2 As String) MsgBox "content2", vbInformation starttime2 = Now + CDbl(TimeValue(time2)) Application.OnTime starttime2, "'expressContent" & time & content & "'" End Sub よろしくお願い致します。

  • Application.OnTime Nowの変数

    他のプロシージャに1秒後に変数を渡すテストをしました。 Sub test01() Dim ws As Worksheet Set ws = ActiveSheet Application.Wait Now + TimeValue("0:00:01") Call AAA(ws) 'ただしく渡される End Sub Sub test02() Dim ws As Worksheet Set ws = ActiveSheet Application.OnTime Now + TimeValue("00:00:01"), "AAA(" & ws & ")" 'エラー End Sub Sub AAA(ByVal ws As Worksheet) MsgBox ws.Name End Sub Application.OnTime を使ったほうがエラーになるのはなぜでしょうか? どうやれば正しく渡せるうのでしょうか?

  • 関数の引数

    こんにちわ。 ご存知の方、ご教授してもらえないでしょうか? VB.net2005を使っているのですが 関数の引数に変数をセットして、別関数で 引数に対してデータをセットすることは可能でしょうか? C言語でいうところのポインタを引数に渡し ポインタアドレスに書き込むような処理はVB.netでは 可能なんでしょうか? 下記のような事は試したのですが、うまく出来ませんでした(。。; public sub test1() dim mojiretu as string test2( mojiretu ) msgbox(mojiretu) end sub public sub test2( str as string) str = "文字列" end sub

  • Application.OnTime の使い方

    エクセルのマクロで、過ぎた時間の背景を グレーにする予定表を作ろうとしてます。 試しに一秒ごとにグレーにしようと以下のものを書いてみたのですが 1セルしかグレーになりません。 理想としては1秒、2秒、3秒ごとに一つずつセルを変えたいです。 range * i で型の問題がある気がするのですが、 なにかアドバイスあればよろしくお願いします。 以下は関数のページです。 TimeValue http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/script56/html/vsfcttimevalue.asp OnTime http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/vbawd10/html/womthOnTime.asp ---------------------------------------------------- Sub timer() Dim range As Integer For i = 1 To 100 range = TimeValue("0:00:01") my_time = Now + (range * i) Application.OnTime my_time, "setBg" Next End Sub Sub setBg() Cells(Second(Now), 1).Interior.ColorIndex = 16 End Sub

  • OnTime 使用時のプロシージャへの引数の与え方、その記述方法を教えて下さい。

    初心者ですが、宜しくお願いします。 Application.OnTime EarliestTime:=TimeValue(time_ptn), Procedure:="my_func" 上記コードの、末尾のプロシージャの指定において、 Dim prm1 As String, prm2 As Long Function my_func(prm1,prm2)    ~内容~ End Function または、 Sub my_func(prm1,prm2)    ~内容~ End Sub というプロシージャを指定したいのですが、 末尾の書き方が分からず困っております。 「Procedure:="my_func(prm1,prm2)"」 「Procedure:= my_func(prm1,prm2)」 のようにやっても、うまくいきません。 正しい書き方をどなたか教えて下さい。

  • 引数付のFuncitonプロシージャと引数付のSUBプロシージャの違い

    親プロシージャに数値を渡すときに、引数付のFuncitonプロシージャと引数付のSUBプロシージャは、結果を見ると同じ動きをするように思います。 このような場合、両者には、どのような違いがあるのでしょうか? Sub 親プロシージャ() Cells(1,MyNOend)=123 end Sub ・子プロシージャ Function FMyRowCnt(MyNOend As Integer) MyNOend = TMYKanriBkWs1.Range("D1").CurrentRegion.Rows.Count End Function Sub FMyRowCnt(MyNOend As Integer) MyNOend = TMYKanriBkWs1.Range("D1").CurrentRegion.Rows.Count End Sub 以上 よろしくお願い致します。

  • Application.OnTime が動作するタイミング(vba)

    まず10秒たってからtest2222と表示させて、次にtestと表示させるプログラムを以下のように作成したのですが、なぜか先にtestが表示されて、次にtest2222が表示されます。 なぜなのでしょうか? 分かる方がいれば教えてください。 よろしくお願いします。 Sub aa() Application.OnTime Now + TimeValue("00:00:10"), "kara" MsgBox "test" End Sub Sub kara() MsgBox "test22222" End Sub

  • VBAのOnTimeの停止について

    下記コードで右上の×ボタン(エクセルアプリではなくbookを閉じる×です)でCLOSEした場合は停止されるのですが、 ThisWorkbook.Closeで閉じた場合MsgBox "timer cxl"は呼ばれるのですがタイマーがキャンセルできず10秒後に閉じたbookが勝手に開かれMsgBox "chk"が呼ばれてしまいます。 エクセルは2003、WIN10です。 どなたか何か原因や回避策があればご教授お願い致します。 //標準モジュール Public timer As Date Public timerFlag As Boolean Sub chk() timerFlag = False MsgBox "chk" End Sub //ThisWorkbook Private Sub Workbook_Open() timer = Now + TimeValue("00:00:10") timerFlag = True Application.OnTime timer, "chk" MsgBox "open" End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) If timerFlag Then Application.OnTime timer, "chk", , False MsgBox "timer cxl" End If MsgBox "close" End Sub

  • EXCELのApplication.OnTimeは予約のことですか?

    こんにちは、VBAの初心者です。 Application.OnTimeとは目覚し時計をセットするみたいに 時間になったら実行させたいタスクの「予約をする」ことですか。 ---------------- 例えばThisWorkbookに Sub ThisWorkbook_Open()  Application.OnTime TimeValue("09:00:00"), "A"  Application.OnTime TimeValue("10:00:00"), "B"  Application.OnTime TimeValue("11:00:00"), "C" End Sub 標準モジュールに Sub A()  Beep End Sub Sub B()  Beep End Sub Sub C()  Beep End Sub --------------- と書けば、Workbookを開いた時に「3つのタスクが予約された」と考えて良いのでしょうか。 その場合、11時前にEXCELを終了させたら 最後のタスクは自然消滅するのでしょうか、それともエラー扱いになるのでしょうか。

  • Functionプロシージャの便利さがわかりません

    私はVBAコードを作る時は、もっぱらsubプロシージャーを使ってしまうのですが、 http://excelvba.pc-users.net/fol5/5_4.html を参考に、 Functionプロシージャとsubプロシージャの違いを確認してみたのですが、 Functionプロシージャの便利さがわかりません。 *********************************** Sub Test() SubプロシージャとFunctionプロシージャのテスト i = 1 Call Subプロシージャ(i) i = Functionプロシージャ(i) MsgBox "Functionプロシージャ結果:" + CStr(i) End Sub Sub Subプロシージャ(ByVal i As Integer) MsgBox "Subプロシージャ結果:" + CStr(i) End Sub Function Functionプロシージャ(ByVal i As Integer) As Integer i = i + 1 Functionプロシージャ = i End Function *********************************** Functionプロシージャは、 (ByVal i As Integer) As Integer のように、、二回もデータ型(Integer)の指定をしなくてはいけないのでしょうか? リンク先の説明には、 「SubプロシージャとFunctionプロシージャの違いは Subプロシージャが引数を受け取るのみに対して Functionプロシージャは引数を受け取り、 戻り値を返すという関数としての役割を果たすことができる点です。」 と記載されてますが、 それはSubプロシージャでも出来てますよね? サンプルコードにおいてのFunctionプロシージャの便利さを教えてください。

専門家に質問してみよう