Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6756 / 13644 ツリー ←次へ | 前へ→

【43260】ブックを開いて30秒後にマクロを実行 あおがえる 06/10/7(土) 10:23 質問[未読]
【43261】Re:ブックを開いて30秒後にマクロを実行 だるま 06/10/7(土) 11:24 回答[未読]
【43262】Re:ブックを開いて30秒後にマクロを実行 Hiroko 06/10/7(土) 13:29 発言[未読]
【43265】Re:ブックを開いて30秒後にマクロを実行 あおがえる 06/10/7(土) 15:07 質問[未読]
【43270】Re:ブックを開いて30秒後にマクロを実行 [名前なし] 06/10/7(土) 16:13 発言[未読]
【43283】Re:ブックを開いて30秒後にマクロを実行 [名前なし] 06/10/7(土) 22:02 発言[未読]
【43315】Re:ブックを開いて30秒後にマクロを実行 Hiroko 06/10/9(月) 9:40 発言[未読]
【43341】Re:ブックを開いて30秒後にマクロを実行 あおがえる 06/10/10(火) 15:37 お礼[未読]

【43260】ブックを開いて30秒後にマクロを実行
質問  あおがえる  - 06/10/7(土) 10:23 -

引用なし
パスワード
   いつも皆様にお世話になっています。初歩的な質問で申し訳ないのですが。
Aブックを開いて30秒後にAブックのマクロ1を実行、上書き保存をしてAブックを閉じ、次にBブックを開いて30秒後にBブックのマクロ1を実行、上書き保存をしてBブックを閉じ、次にCブックを開いて・・・・・
という動作をさせたいのですがどうすればいいでしょうか?
よろしくお願いします。

【43261】Re:ブックを開いて30秒後にマクロを実行
回答  だるま WEB  - 06/10/7(土) 11:24 -

引用なし
パスワード
   OnTimeメソッドを使ってみたらどうでしょうか。^d^

【43262】Re:ブックを開いて30秒後にマクロを実行
発言  Hiroko  - 06/10/7(土) 13:29 -

引用なし
パスワード
   ▼あおがえる さん:
ブックの状態がわからないので・・・ドライブ名やパス名
シートで5秒間隔で表示サンプルを作りました・・・→
こんな感じかな?っと思います。

Sub My_Mcro01()
Sheets(1).Activate
Application.OnTime Now + TimeValue("00:00:05"), "my_Macro02" 
End Sub

Sub my_Macro02()
Sheets(2).Activate
Application.OnTime Now + TimeValue("00:00:05"), "my_Macro03"
End Sub

Sub my_Macro03()
Sheets(3).Activate
MsgBox "10秒経過しました"
End Sub
      
Procedureにブック名とそのブックを開く、上書き保存を付け加えると
出来るかと思います。

【43265】Re:ブックを開いて30秒後にマクロを実行
質問  あおがえる  - 06/10/7(土) 15:07 -

引用なし
パスワード
   >いつも皆様にお世話になっています。初歩的な質問で申し訳ないのですが。
>Aブックを開いて30秒後にAブックのマクロ1を実行、上書き保存をしてAブックを閉じ、次にBブックを開いて30秒後にBブックのマクロ1を実行、上書き保存をしてBブックを閉じ、次にCブックを開いて・・・・・
>という動作をさせたいのですがどうすればいいでしょうか?
>よろしくお願いします。

すみません質問の仕方が悪かったようです。
上記のコードをマクロ記録で作ってみました
Sub 更新()

  ChDir "D:\Data1"
  Workbooks.Open Filename:= _
    "D:\Data1\Book1.xls"
  Application.Run "'Book1.xls'!Macro1"
  ActiveWorkbook.Save
  ActiveWindow.Close

  ChDir "D:\Data2"
  Workbooks.Open Filename:= _
    "D:\Data2\Book2.xls"
  Application.Run "'Book2.xls'!Macro1"
  ActiveWorkbook.Save
  ActiveWindow.Close

End Sub

上記のコードのApplication.Run "'Book1.xls'!Macro1"を単純にApplication.OnTime Now() + TimeValue("00:00:30"), "'Book1.xls'!Macro1"
と書き換えてみたのですがやっぱり作動しませんでした。
基本的に間違っているようなのですが分かりません、どうかお願いいたします。

【43270】Re:ブックを開いて30秒後にマクロを実行
発言  [名前なし]  - 06/10/7(土) 16:13 -

引用なし
パスワード
   ▼あおがえる さん:
Sub Auto_Open()でできるのでは

【43283】Re:ブックを開いて30秒後にマクロを実行
発言  [名前なし]  - 06/10/7(土) 22:02 -

引用なし
パスワード
   ▼あおがえる さん:
Sub Auto_Open()
  Application.OnTime Now + TimeValue("00:00:05"), "test1"
End Sub
Sub test1()
  MsgBox "おはよう"
End Sub

【43315】Re:ブックを開いて30秒後にマクロを実行
発言  Hiroko  - 06/10/9(月) 9:40 -

引用なし
パスワード
   ▼あおがえる さん:

時間が経過してもう、見ていませんか?
ちょっとトライしました。
また識者がチェックしていただけるから、っと思って
コードを書いてみました。
Ontimeを一旦お預けにして

BookTSとBookA21,A22,A23があるとします。
BookTBの標準モジュールに以下のコードを貼り付け
一度試してみてください。
時間は5秒間隔に設定しています。必要に応じて変更してください。
中断時間を入れて処理していますが・・・

Sub WBOpenCloseTime()

Workbooks.Open ThisWorkbook.Path & "\A21.xls"
StopSc
  Application.DisplayAlerts = False
   Workbooks("A21.xls").Close
  Application.DisplayAlerts = True
my_Macro02
End Sub

Sub my_Macro02()

Workbooks.Open ThisWorkbook.Path & "\A22.xls"
StopSc
  Application.DisplayAlerts = False
   Workbooks("A22.xls").Close
 Application.DisplayAlerts = True
my_Macro03
End Sub

Sub my_Macro03()

Workbooks.Open ThisWorkbook.Path & "\A23.xls"
StopSc
Application.DisplayAlerts = False
  Workbooks("A23.xls").Close
Application.DisplayAlerts = True

End Sub

Sub StopSc()

Dim PauseTime, Start, Finish, TotalTime
  PauseTime = 5        
  Start = Timer        
  Do While Timer < Start + PauseTime
    DoEvents       
  Loop
  Finish = Timer        
  TotalTime = Finish - Start  
End Sub


>いつも皆様にお世話になっています。初歩的な質問で申し訳ないのですが。
>Aブックを開いて30秒後にAブックのマクロ1を実行、上書き保存をしてAブックを閉じ、次にBブックを開いて30秒後にBブックのマクロ1を実行、上書き保存をしてBブックを閉じ、次にCブックを開いて・・・・・
>という動作をさせたいのですがどうすればいいでしょうか?
>よろしくお願いします。

【43341】Re:ブックを開いて30秒後にマクロを実行
お礼  あおがえる  - 06/10/10(火) 15:37 -

引用なし
パスワード
   だるまさん、Hirokoさん、名前なしさん、私のわかりにくい質問にもかかわらずアドバイスをして下さり、どうも有り難うございます。
皆様のアドバイスのおかげでなんとか解決出来そうです、本当に有り難うございました。

6756 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free