- ベストアンサー
Word VBA。各マクロの間に待ち時間を指定するには?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 >(1)文書の読み込み >(2)書式変更 >(3)文字の置換 >(4)文書の保存 これ自体に、Waiting は必要ないような気がしますね。なぜ必要なのか分りません。どこかに、バッファがあふれそうなんていうことがあるのでしょうか?単に、DoEventsでも入れておけばよいような気がしますし、記録マクロで、ループを使わないので、メモリを押し上げてしまっているのでしょうか? API関数で負担を軽くするには、こんな方法がありますね。 Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Sub WaitingTestMethod() Beep '実行 DoEvents Sleep 2000 Beep '実行 End Sub
その他の回答 (4)
- taocat
- ベストアンサー率61% (191/310)
再びこんにちは。ポカしました。(^^; Wordですね。 WordVBAには、waitメソッドはありませんので、回答したコードはそのままは使えません。 使う前にexcelのobject libraryへの参照設定が必要になり、かつコードも数ステップ増えます。 初心者ということですので面倒なことはパスするということでNO.3の回答はスルーしてください。 エスセルで似たようなことをしたい時はOKです。 以上です。
お礼
回答ありがとうございました。 まず、お礼が遅れたことを謝ります。 済みませんでした。 インターネットを使って調べる場合、エクセルだと割と探しやすいのですが、ワードだとなかなか難しいので、こちらでお聞きしました。 できれば、Word2003でExcelのobject libraryへの参照設定の方法を詳しく教えていただけないでしょうか。 実はよくわかっていません。 Microsoft Excel 11.0 Object Library と Microsoft Office 11.0 Object Libraryは既に参照設定しているのですが、Waitを実行すると"メソッドまたはデータメンバが見つかりません"とコンバイルエラーが出ます。 オブジェクトプラウザで検索すると、出てくるのはExcelとOfficeなので、その辺だとは思っているのですが、何を参照設定すればWaitメソッドが使用できるようになるのでしょうか。
- taocat
- ベストアンサー率61% (191/310)
こんにちは。 >"処理待ち"、もしくは"指定時間待ち"のWaitを指定したいのですが そうです。解決策のひとつは、そのWaitメソッドです。(^^; で、マクロを2秒間停止するには Application.Wait Now + TimeValue("00:00:02") としてもできますね。 詳しくは、Waitメソッドのヘルプをご覧あれ。 以上です。
- -yellowtail-
- ベストアンサー率65% (43/66)
こんにちは。 以下の方法はどうでしょうか? >”ここに2秒待ちを設定”←この部分はどうやって記述するのでしょうか。 Application.OnTime Now + TimeValue("00:00:2"), "書式変更" 2秒後に"書式変更"というマクロを実行します。 Callで呼び出す必要はないので1行で済みます。 試してみてください。
お礼
回答ありがとうございました。 まず、お礼が遅れたことを謝ります。 済みませんでした。 Application.OnTime Now + TimeValue("00:00:2"), "マクロ" の形を早速試してみたところ、無事動きました。 ただ、 Application.OnTime Now + TimeValue("00:00:2"), "マクロ(1)" Application.OnTime Now + TimeValue("00:00:2"), "マクロ(2)" の形では、反応してくれません。基準になる時間の問題かと思って時間の間隔をズラしてみたりしたのですが、どうもうまくいきません。 ただし、 Application.OnTime Now + TimeValue("00:00:2"), "マクロ" で記述した各マクロを、Call文で呼び出せば目的は達せられるのではないかと思います(未確認)ので、とりあえずは大丈夫かなと…。
- imogasi
- ベストアンサー率27% (4737/17068)
回答がつきませんね。WordVBAとうたって驚かせるせいもあろうが、非才の私には内容が理解できない。 Waitを入れるのは、マシンの処理が、人間の動作に比べ早すぎて、待ちを入れるケースを想像しますが、本件ではコンピュター処理に時間がかかるから人間が待つという逆のケースらしいが、ウエイトは遅れるコンピュターに待ちを入れてどうするのと思ったのですが、大いなる勘違いでしょうか??何分待ってくださいというメッセージを画面に出したいということですか。その時間の幅の算出はどうするのですか。そのことそのものが質問ですか。 時間がかかる処理は具体的に何ですか。普通は全レコード数がわかっている場合で、今何レコード目を処理しているかで、プログレスバーなど表示してますね。プログラムを実行する前に、そのプログラムの処理時間などわからないと思いますが。データ数にも関係しますから。
お礼
回答ありがとうございました。 でも、わかりにくい説明だったようで、申し訳ありません。 もう少しちゃんと説明すると、 (1)文書の読み込み (2)書式変更 (3)文字の置換 (4)文書の保存 という一連の流れがあって、それぞれを一括で処理するためのマクロをつくりたいのです。 ちなみに(1)~(4)の処理はVBA化しています。 あとはつなぎ合わせるだけなのですが、(1)~(4)の各マクロの間に、"2秒の待ち時間"を指定して、次の処理にうつるようにさせたいのです。 希望する形、 Sub 全体処理() 文書読み込みVBA 部分 ”ここに2秒待ちを設定”←この部分はどうやって記述するのでしょうか。 Call 書式変更 ”ここに2秒待ちを設定”← 〃 。 Call 文字の置換 ”ここに2秒待ちを設定”← 〃 。 Call 文書の保存
関連するQ&A
- VBAを時間指定で自動実行
就業時間内(9時~6時)でエクセルVBAを指定時間に自動実行させたいです。 エクセルはパソコン起動した朝に、開いておきます。(バックグラウンド) 指定時間になったらVBAを自動実行させたいのです。 指定時間は例えば、 10時11分 10時16分 10時21分 などです。最初の時間から5分間隔で実行。 こういう事はできるのでしょうか?VBAでできるのか? それ以外の方法があるのか?よくわかりません。 詳しく教えてください。
- ベストアンサー
- Visual Basic
- ワード内の色がついた文字をマクロ(VBA)で削除したい
お世話になります。 色指定で置換処理を実行するマクロを作成したいと思っています。 置換¥オプション¥書式¥色指定で空白と置換 の作業を 「マクロを記録」の状態で実行したのですが、マクロに記録されません。。。 VBAに追記する形、どのような形でもいいのでマクロで色指定も含めた置換方法を教えていただけないでしょうか? 何卒よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- VBAについて教えて下さい。
VBAについて教えて下さい。 昨年度まで担当者として色々と処理を行なっていた人が転勤となり、今のところ不便はないのですが、今後の事を考えると少しでも知識をつけていきたいと感じています。現在利用しているVBAの記述に関しては、少しずつ色々と調べて解読?・理解をしていくつもりです。 そこでWinのVBA記述についてお聞きいたします。 特定のexcelファイルを使った人(ユーザー名)と日時を、特定のファイルに記録していきたいと考えています。日時をtxtファイルに記録(追記)する方法はネット等に出ていましたが、ユーザー名を記録する方法が分かりませんでした。※探し方が悪いのかもしれませんが・・・。 今のところVBA自体に関して殆ど分からない状態です。 お時間のある方、お時間の空いている時で結構ですので、何卒ご教授頂きたいと思います。 宜しくお願い致します。
- ベストアンサー
- Visual Basic
- エクセルVBAで一つ上の階層を指定して保存したい
お世話になります。 VBA初心者なりにマクロの自動記録などで作業しておりますが、自動記録でできない作業を一つ教えてください。 現在作業しているフォルダは、Activeworkbook.Pathなどで指定できますが、その一つ上の階層に保存したいという場合、どう指定すればよいのでしょうか? 自動保存だと"Documentos and Settinng~"などから始まるファイルパスになりますが、ファイルを保存するフォルダは各人によってまちまちですので、自分が保存したフォルダの一つ上という指定をしたいのです。そのような方法があれば教えてください。 よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- Excel VBA インポートファイル名指定したい
Excel VBA 初心者です。 スイッチを押すと、テキストファイルのインポートダイアログを開いて、外部データの取り込みをしたいと考えています。 指定セルにインポートを設定+シートにマクロ実行スイッチを配置+マクロの自動記録の記述を参照してマクロを登録し、そのスイッチを押す事で、正常にインポート作業を行なう事ができました。 しかし不明点が2箇所ほどあります。 1.ダイアログを開いたとき、ファイル拡張子を指定したいのですが、どうすれば指定できますか? 2.ダイアログを「キャンセル」で閉じると、「実行時エラー1004:アプリケーション定義またはオブジェクト定義のエラー」と表示されるのですが、解決方法はどうすればいいですか? ※マクロの自動記録を参照して記述したマクロ処理 Sub Macro1() Sheets("HIN").Select Range("A1").Select ActiveCell.Offset(2, 0).Select Selection.QueryTable.Refresh BackgroundQuery:=False Sheets("Sheet1").Select End Sub 環境:EXCEL2000、VB6.0 以上、宜しく御願い致します。
- ベストアンサー
- Visual Basic
- MS-WordのVBAで図形サイズの指定(100%)方法
MS-WordのVBAで図形サイズの指定(100%)方法 Word2000です。VBAは知らない(嫌い)ですが、時々必要になり、通常はマクロ記録したものを多少手直ししたりして使用しています。今回の問題ではマクロ記録すると100%ではなく、ある特定のサイズを指定したように記録されます。100%で指定するには、どのようなコードになるのでしょうか?
- ベストアンサー
- その他MS Office製品
- VBAでセル指定するとき("A1")←半角?
VBAでセルを指定するとき、 例えばA1のセルを選択するときにRange("A1")と書きますよね。 このときに「A」は半角で入力したのですが、これは全角の「A」でもいいのでしょうか。 実際に全角にしてVBAを組んでも、問題なく処理できました。 ただ「全角にしても問題なく処理できたからいいや」というのではモヤモヤしてしまい、 全角でも問題なく処理できるという記述があるテキストやサイトを探しているのですが 見つかりません。 セル指定するときに全角、半角は関係ないのでしょうか。
- 締切済み
- Excel(エクセル)
- エクセルのマクロとVBAについて
まだあまり多用していないのですが、エクセルでは使っていくアイコンを指定することで(それを利用することで)、マクロを組みそれがエクセルのVBAで記述されるということですが、その逆エクセルのVBAで記述したプログラムを動作に対応したアイコン等の流れで示すことは出来るのでしょうか?もしあったらどのような方法でしょう?
- 締切済み
- その他(インターネット・Webサービス)
- VBAとマクロの違い
こんばんは。エクセル初心者です。 VBAとマクロの違いについて教えてください。 VBAというのは、プログラミング言語のことで よろしいのでしょうか? そのVBAで記述されたものをマクロとよぶ といったイメージでよろしいのでしょうか? たとえば、あるエクセルにはいってるマクロを 実行する、ということを作業マニュアルに記述 する場合 「○○マクロを実行する」というのが 正しいのでしょうか?それとも 「VBAを実行する」というのが正しいのでしょうか? まったく見当違いのご質問だったら申し訳ありません。 教えてください。
- ベストアンサー
- オフィス系ソフト
お礼
回答ありがとうございました。 まず、お礼が遅れたことを謝ります。 済みませんでした。 教えていただいたSleepを使った方法ですが、確認できました。 どうもありがとうございました。 使わせていただきます。