Excel VBA 質問スレッド №2032 (未解決)
スクロール
投稿者 : 石川 投稿日時 : 2024/10/22(Tue) 10:24:34 OS : Windows 11 EXCEL : Excel 2021
MSGボックスガ表示されているときに、エクセルをスクロールしたい。
MSGボックスガ表示されているときに、エクセルをスクロールしたい。
スポンサーリンク
[返信 1] Re : スクロール
投稿者 : らたたた 投稿日時 : 2024/10/22(Tue) 10:45:42
ユーザーフォームでメッセージを出せばいいんじゃないですか
ユーザーフォームでメッセージを出せばいいんじゃないですか
[返信 2] Re : スクロール
投稿者 : higeru 投稿日時 : 2024/10/22(Tue) 15:00:06
もしメッセージの要因となったセルが見えるようにスクロールしたい、ということなのであれば、
Application.Goto 当該セル、True
としてからメッセージを出す、というのもありかと。
もしメッセージの要因となったセルが見えるようにスクロールしたい、ということなのであれば、
Application.Goto 当該セル、True
としてからメッセージを出す、というのもありかと。
[返信 3] Re : スクロール
投稿者 : 石川 投稿日時 : 2024/10/23(Wed) 11:38:31
■[返信 2] higeruさん(2024-10-22 15:00:06)の記事
> もしメッセージの要因となったセルが見えるようにスクロールしたい、ということなのであれば、
>
> Application.Goto 当該セル、True
>
> としてからメッセージを出す、というのもありかと。
ご回答ありがとうございます。ただ、確認したい箇所が複数ありますので、スクロールする必要があります。
■[返信 2] higeruさん(2024-10-22 15:00:06)の記事
> もしメッセージの要因となったセルが見えるようにスクロールしたい、ということなのであれば、
>
> Application.Goto 当該セル、True
>
> としてからメッセージを出す、というのもありかと。
ご回答ありがとうございます。ただ、確認したい箇所が複数ありますので、スクロールする必要があります。
[返信 4] Re : スクロール
投稿者 : anonymous 投稿日時 : 2024/10/30(Wed) 08:29:01
> MSGボックスガ表示されているときに、エクセルをスクロールしたい。
MsgBox表示中は閉じるまでユーザーアクセスは無視される仕組みなので、無理です。
既に指摘があるようにMsgBoxの代わりにUserFormを使用し、
Modeless指定で開くことにより、
Excel本体に対するユーザー操作が同時に可能となります。
コードはこんな感じ。
<<標準モジュール>>
<<UserFormモジュール>>
'UserFormには、
'・ラベルコントロールを置き、メッセージを表示しておく。
'・コマンドボタンコントロールを置き、
' スクロールを使った確認が終了したらコマンドボタンを押してUserFormを終了させることを促す
以上
> MSGボックスガ表示されているときに、エクセルをスクロールしたい。
MsgBox表示中は閉じるまでユーザーアクセスは無視される仕組みなので、無理です。
既に指摘があるようにMsgBoxの代わりにUserFormを使用し、
Modeless指定で開くことにより、
Excel本体に対するユーザー操作が同時に可能となります。
コードはこんな感じ。
<<標準モジュール>>
Public flag As Boolean Sub test() flag = False 'MsgBoxの代わりに、要件をラベルに書いたUserFormを表示させる UserForm1.Show vbModeless 'vbModeless指定することにより、 'UseForm実行中に画面操作(セル操作も含む)が可能となる Do Until flag = True 'FlagがTrueになるまでループすることにより、それ以降の処理実行を待機させる DoEvents DoEvents Loop '以下に、次の処理を書く MsgBox "終了" '単なる例 End Sub
<<UserFormモジュール>>
'UserFormには、
'・ラベルコントロールを置き、メッセージを表示しておく。
'・コマンドボタンコントロールを置き、
' スクロールを使った確認が終了したらコマンドボタンを押してUserFormを終了させることを促す
Private Sub CommandButton1_Click() Unload UserForm1 flag = True End Sub '直接閉じられても支障ないようにしておく。 Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) flag = True End Sub
以上
当掲示板について
- Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
- 記事内ではHTMLのタグは使用できません。
- 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
- Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
- Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
( 処理日時 : 2025-07-05 17:47:40 )