する質問をすることでしか得られない、回答やアドバイスがある。Subattachmentクリップ0気になる質問をクリップするクリップした質問は、後からいつでもマイページで確認できます。クリップした質問に回答があった際、通知やメールを受け取ることができます。自分も答えを知りたい質問者以外のユーザにも役立つ評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。質問の評価を上げたことを取り消します低評価-評価を下げられる数の上限に達しました評価を下げることができません1日5回まで評価を下げられます1日に1ユーザに対して2回まで評価を下げられます質問の評価を下げるteratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。コメントをしてください。送信する質問の評価を下げる機能の利用条件この機能を利用するためには、以下の事項を行う必要があります。タイマー処理」などでググればいくつか出てくると思います。自分が使ったことがある方法として、タイマーイベントを繰り返し発生させるやり方を紹介します。SubMacro1を実行すると5秒後にsubChangeが実行されるようタイマーがセットされます。subChangeでは目的の処理(このサンプルではセル値の加算)を行った後にさらに5秒後のタイマーをセットしています。現在MouseUp時に行っている画像やラベルの変更処理をメソッド化し、タイマーイベントとMouseUpイベントで同じ処理を呼び出すようにすれば目的の動作になると思います。上記サンプルはユーザーフォームを使わずExcelシート上で動作するものでしたが、フォーム表示中は動作しないようでした。Microsoftの技術情報にAPIを利用する方法がありましたので、別案として追記させていただきます。"タイマーを開始できませんでした。"タイマーを停止できませんでした。Sub'↓標準モジュールから呼び出すためPublic関数にしています。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。19:06左右ボタンの処理が同じでよいのであれば、メソッド化はそれで大丈夫です。処理を分ける必要がある場合はcolorword関数に引数を用意し、Buttonの値を渡してあげて、中で処理分岐してあげてください。あと上記はMouseUpイベントしか実装できていないので、前述のタイマーイベントも作成してcolorword関数を呼び出すようにすればいいと思います。※タイマーイベントは何も考えないと無限に処理を繰り返すことになるので、終了させる方法(例えば10回処理したら次回はタイマーセットしない等)もあわせて検討し、実装してください。左右ボタンの処理が同じでよいのであれば、メソッド化はそれで大丈夫です。処理を分ける必要がある場合はcolorword関数に引数を用意し、Buttonの値を渡してあげて、中で処理分岐してあげてください。あと上記はMouseUpイベントしか実装できていないので、前述のタイマーイベントも作成してcolorword関数を呼び出すようにすればいいと思います。※タイマーイベントは何も考えないと無限に処理を繰り返すことになるので、終了させる方法(例えば10回処理したら次回はタイマーセットしない等)もあわせて検討し、実装してください。13:45ユーザーフォーム上での動作だったのですね。確かにフォーム上から利用するとタイマーセットでエラーにならないのに時間になっても処理は開始されないようです。代案として、APIを利用した方法を追記させていただきました。参考になれば幸いです。ユーザーフォーム上での動作だったのですね。確かにフォーム上から利用するとタイマーセットでエラーにならないのに時間になっても処理は開始されないようです。代案として、APIを利用した方法を追記させていただきました。参考になれば幸いです。20:55先に提示したOnTImeでは次回の実行時刻を設定するため、処理を行うたびに「次は現在時刻から5秒後に処理する」という設定を毎回行っていました。別案として提示したAPIのタイマーについては、SetTimerで発生間隔を指定しています。このため、一度SetTimerをしておけば、KillTimerされるまで自動で繰り返しTimerProc処理を実行してくれます。タイマー処理中にフォーム名やコントロール名間違いなどでエラーが発生すると、Excelが強制終了してしまうようです。いま一度コード誤りがないか確認し、念のため保存をしてから実行することをお勧めします。私の環境(Windows7/Excel2010)では問題なくタイマーの動作を確認できましたので、がんばってみてください。先に提示したOnTImeでは次回の実行時刻を設定するため、処理を行うたびに「次は現在時刻から5秒後に処理する」という設定を毎回行っていました。別案として提示したAPIのタイマーについては、SetTimerで発生間隔を指定しています。このため、一度SetTimerをしておけば、KillTimerされるまで自動で繰り返しTimerProc処理を実行してくれます。タイマー処理中にフォーム名やコントロール名間違いなどでエラーが発生すると、Excelが強制終了してしまうようです。いま一度コード誤りがないか確認し、念のため保存をしてから実行することをお勧めします。私の環境(Windows7/Excel2010)では問題なくタイマーの動作を確認できましたので、がんばってみてください。15:36ありがとうございます。やってみます!!ありがとうございます。編集Excelが強制終了してしまうのは、(メモリ不足とかハード的な要因でなければ)おそらく処理中のどこかでエラーが発生しているからではないかと思います。デバッグ実行という機能はご存知でしょうか?処理を1ステップずつ実行したり、ソースコード内の任意の位置にブレイクポイントを設定しておくことで、その処理を通過する際に一時中断することができます。関数の先頭付近にブレークポイントを設定(F9)しておき、F8でステップ実行してエラーの箇所を特定してみてください。目安として、起動直後にエラーとなるのであればForm_Load、ボタン押下直後であればボタンのクリックイベント、タイマー開始5秒後のエラー発生であればTimerProcが怪しいので、そのあたりにブレイクポイントを設定してエラーの発生箇所を探してみてください。Excelが強制終了してしまうのは、(メモリ不足とかハード的な要因でなければ)おそらく処理中のどこかでエラーが発生しているからではないかと思います。処理を1ステップずつ実行したり、ソースコード内の任意の位置にブレイクポイントを設定しておくことで、その処理を通過する際に一時中断することができます。関数の先頭付近にブレークポイントを設定(F9)しておき、F8でステップ実行してエラーの箇所を特定してみてください。目安として、起動直後にエラーとなるのであればForm_Load、ボタン押下直後であればボタンのクリックイベント、タイマー開始5秒後のエラー発生であればTimerProcが怪しいので、そのあたりにブレイクポイントを設定してエラーの発生箇所を探してみてください。"タイマーを開始できませんでした。"タイマーを停止できませんでした。Sub'↓標準モジュールから呼び出すためPublic関数にしています。"タイマーを開始できませんでした。"タイマーを停止できませんでした。'↓標準モジュールから呼び出すためPublic関数にしています。10:46だいぶ目的の動作に近づいてきましたね。表示されなくなってしまったのは、LがPublicな変数ではないからだと思います。以前作成したcolorwordメソッドは乱数を生成し画面に反映させる機能として作成しましたよね。今回、乱数生成をTimerProc内で行うように変更してしまったようですが、TimerProcは単純に実行したい処理(colorword)を呼び出すだけにしておき、colorwordメソッドは以前のようにやりたい処理をまとめた機能にしておけばいいと思いますよ。目的の動作に近づいてきましたね。表示されなくなってしまったのは、LがPublicな変数ではないからだと思います。以前作成したcolorwordメソッドは乱数を生成し画面に反映させる機能として作成しましたよね。今回、乱数生成をTimerProc内で行うように変更してしまったようですが、TimerProcは単純に実行したい処理(colorword)を呼び出すだけにしておき、colorwordメソッドは以前のようにやりたい処理をまとめた機能にしておけばいいと思いますよ。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。10:23横からすみません。VBAをお使いかと思われます。VBAのフォームでは使えません。VBAをお使いかと思われます。VBAのフォームでは使えません。0WordVBAにて複数のPDFファイルをExcelファイル一覧表の順番通りに結合したい。頂いたご意見への回答は行っておりません。