• ベストアンサー

VBAでスクリプトを一時的に止めたい

BellBellの回答

  • BellBell
  • ベストアンサー率54% (327/598)
回答No.2

途中でハングアップ、及びメモリエラーと言うことなので。 開いたワードファイルを閉じる処理入れています? ワードの外部操作がわからないですが、印刷を実行したあと、印刷終了まで待機する方法ありますか?あるとして、それ使ってます? イメージとして下のような感じです。 ループ開始 ファイルオープン 印刷(印刷終了まで待機) ファイルクローズ ループ終了 ちなみに、ワードの印刷終了を待つ方法を探している最中に、下のようなソフトを見つけました。 印刷終了を待つ方法は見つかりませんでしたが。 http://www.vector.co.jp/soft/win95/writing/se299164.html

参考URL:
http://www.vector.co.jp/soft/win95/writing/se299164.html
dogs59
質問者

お礼

ありがとうございます。 指摘されている件についてもよくわかっていないのですが、 ループ開始 (これはあります。当然ですね) ファイルオープン (これもあります) 印刷(印刷終了まで待機) (印刷終了までの待機命令がわからないので、時間を指定して止めておこうと思っています) ファイルクローズ (ここもあります) ループ終了    紹介していただいたソフトを見てみたのですが、確かにファイルを次から次へとプリントアウトするには良いようですが、私の場合、それは、スクリプトの一部で、他の作業と連動しているためちょっと用途と合わないようです。  No.1の方の回答についてもそうですが、なかなか思った通りにいかないものですねぇ。

関連するQ&A

  • エクセル2007です。VBA不具合について教えてください。

    不具合ついてですが、任意のセルに何か入力中の時にA1の表示が停止してしまうことです。 入力中でもこれを回避する方法がありましたら是非お知恵を拝借したいと思います。よろしくお願いします。 現在の環境は以下のとおりです。 セルA1は=now()で秒まで表示。 横軸に日付(B2=2010/1/18~I2=2010/1/25)の8日、縦軸に時間(A3=0~A27=24)の24時間割があるシートです。 日付と時間(HOUR)がマッチしたリアルタイムセルのみを緑色(条件付き書式にて)に塗りつぶすスケジュール表を作成中です。 標準モジュールは次のとおりです。 Sub Auto_Open() Application.OnTime Now + TimeValue("00:00:01"), "timer" End Sub Sub timer() With Worksheets("Sheet1") If .Cells(1, 2) <> "" Then Exit Sub .Cells(1, 1).Calculate End With Application.OnTime Now + TimeValue("00:00:01"), "timer" End Sub

  • ontimeのリセット方法

    簡単な問題を出すexcelを作っています。 問題を出した時点でタイマー(ontime)を出し、 1分間だけ猶予を持たせ、 回答が出ればリセットをする。 間に合わなければ「残念でした」を出そうとしています。 Sub start8() Application.OnTime Now + TimeValue("00:01:00"), "timeout8" End Sub Sub reset8() Application.OnTime Now + TimeValue("00:01:00"), "timeout8", , False End Sub Sub timeout8() "残念でした。" End Sub 見よう見まねで上記の通り書きましたが、 分からないのは、これだとresr8の引き金を引いてから、1分後のように思います。 ここはどのように書けばいいのでしょうか。 Application.OnTime Now + TimeValue("00:00:00"), "timeout8", , Falseのように書いてみましたが、 エラーになります。 制限時間内にリセットボタンを押せば何事もなかった、という風にやりたいのです。 宜しくお願いします。

  • Excel2003 VBAでタイマーを組んでマクロを走らせたいのですが

    Excel2003 VBAでタイマーを組んでマクロを走らせたいのですが、以下のエラーメッセージが出ました。 マクロ "C:\aaa\Timer.xls'!Record1'が見つかりません。 マクロは、Timer.xlsブックのThisWorkbookに記述しています。 ---------------------------------------------------------------------- Sub timer1() 指定時刻 = TimeValue("09:00:00") 終了時刻 = TimeValue("11:00:00") Application.OnTime 指定時刻, "Record1" End Sub ---------------------------------------------------------------------- Sub Record1() Dim sh1, sh2 If TimeValue(Now) >= 終了時刻 Then '終了時刻になら終わる MsgBox "終了時刻になりました。" Application.CutCopyMode = False Exit Sub End If Set sh1 = Worksheets("1") Set sh2 = Worksheets("2") sh1.range("G5:G506").Copy 'コピー sh2.range("Q5:Q506").PasteSpecial Paste:=xlValues Selection.Offset(0, 2).Select '2行ずらす 指定時刻 = Now + TimeValue("00時05分00秒") '5分後 Application.OnTime 指定時刻, "Record1" End Sub ---------------------------------------------------------------------- どこを直せばよろしいのでしょうか? よろしくお願いします。

  • VBA 制限時間を、一時停止させたい

    Excel VBAでの質問です。Excel2007使用です。 ユーザーフォームに制限時間と、制限時間を一時停止させるコマンドボタンを作りたいです。制限時間(60分)は、下ので実行できたのですが、一時停止ができるか、わかりません。 Private Sub 制限時間_Click() Dim myTime As Date Dim myLImit As Date myLImit = Now + TimeValue("1:00:00") Do While myLImit > Now DoEvents myTime = myLImit - Now 分表示.Caption = Minute(myTime) & "分" 秒表示.Caption = Second(myTime) & "秒" Loop msgbox "終了です。" Unload Me End Sub できれば、ボタンを押すとmsgbox"一時停止"を表示させ、表示させている間は、制限時間を一時停止させたいです。制限時間、一時停止ができれば、違うコードでもかまいません。 どうぞよろしくお願いします。

  • エクセル時間毎ごとにマクロを実行するやり方。

     初めまして、よろしくお願いします。より正確な指定時間毎にマクロを実行させるやり方を考えています。  1分毎ごとにマクロを実行する nextTime = Now() + TimeValue("00:01:00") Application.OnTime nextTime, "時間毎ごとに実行" というやり方は解るのですが、 Application.OnTime TimeValue("09:00:00"), "時間毎ごとに実行"  この指定時間("09:00:00")に実行するマクロを利用し ("09:01:00")、("09:02:00")、("09:03:00")、("09:04:00")、("09:05:00"),・・・・・の時間、秒が00になると("hh:ss:00")マクロを実行されるやり方は有るのでしょうか。  もし有るのでしたら、よろしくお願いします。

  • 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で出した数字の分表示について

    Public Sub Jikoku() Range("A1").Value = Format(Now(), "hh:mm:ss") Application.OnTime Now + TimeValue("00:00:01"), "Jikoku" End Sub このVBAをつかって時間を出してセルの書式設定で mm表示で時間だけ表示しようとすると 例えば9:32:26だとしても01と表示されてしまいます。 mm:ssだと32:26と出るのですが、分だけだとうまくいきません。 原因が分かる方いらっしゃいますでしょうか? 原因かどうかわかりませんが年数表示が1900年となってしまいます。 PCの設定は2014年なのですが、、

  • OnTimeの取り消しについて

    ヘルプには次のように記述がありますが、指定時刻に 実行させるプロシージャーの取り消しはサンプルの手順 で動作しますが、何秒後・・・を指定した場合のサンプル はうまく取り消せません。"実行時エラー '1004'"と なります。 この場合、どのように記述すればいいのでしょうか? 使用例 次の使用例は、現在から 15 秒後に my_Procedure を実行します。 Application.OnTime Now + TimeValue("00:00:15"), "my_Procedure" 次の使用例は、午後 5 時に my_Procedure を実行します。 Application.OnTime TimeValue("17:00:00"), "my_Procedure" 次の使用例は、前の使用例で設定した OnTime メソッドの設定を取り消します。 Application.OnTime EarliestTime:=TimeValue("17:00:00"), _ Procedure:="my_Procedure", Schedule:=False

  • VBAでスクリ-ンセーバーを起動させない方法

    会社のパソコンですが、スクリーンセーバーが設定されていて、一定時間がたつと自動的に起動します。 この設定は変更ができないようにされています。 今般、そのうちの一台に社内での案内用のデータを記載したエクセルのファイルを常時表示させようと思います。 そうなるとスクリーンセーバーがじゃまになります。 設定を解除できるとよいのですが、社内ルールで設定は変えられません。 しかたなく、人間が手でキーボード等を打ち込むかわりにマクロで画面を動かせばスクリーンセーバーは起動しないのではないかと考え、下記のコードを書いてみました。 Sub kidou() Call jikkou01 End Sub Sub jikkou01() Application.SendKeys "{PGDN}" Application.OnTime Now + TimeValue("00:00:10"), "jikkou02" End Sub Sub jikkou02() Application.SendKeys "{PGUP}" Application.OnTime Now + TimeValue("00:00:10"), "jikkou01" End Sub コードはちゃんと動くのですが、スクリーンセーバーはやはり立ち上がってしまいます。 なにかよい方法はないでしょうか?

  • エクセルVBA 10分後にエクセル自動終了&カウン

    どなたかご教授お願い致します。 ・エクセルの当該ブックを、起動10分後に自動終了(保存しない)させる ・開いている間は、10分のカウントダウンを「分:秒」でA1セルに表示する 以上を実行したいのですが、VBAは全く素人ですので、うまくいきません。 見よう見まねで、以下のようなことをしましたが、結局ダメでした。 何卒、よろしくお願い致します。 ThisWorkbook Workbook Open Private Sub Workbook_Open() test01 Application.OnTime Now + TimeValue("00:10:00"), "終了" End Sub 標準モジュール Module1 Sub 終了() ThisWorkbook.Close Savechanges:=False Application.Quit End Sub Sub test01() With Sheets("バックアップ").Range("A1") .Value = Time .NumberFormatLocal = "mm:ss" End With Application.OnTime Now + TimeValue("0:00:01"), "test01" End Sub