
お世話になっております。
エクセルVBAにより、メッセージボックスを表示させた場合についてお尋ねいたします。
マクロ上にて、にある項目をINPUTBOXにて対象の列を選択して、それをMSGBOXにて”はい”もしくは”いいえ”にて確認する形式にしているのですが、選択した列が画面上見えない場合もあるのですが、その場合画面をスクロールして対象列が正しいのかを確認したいのですが、MSGBOXがアクティブになっており、スクロールさせる事ができなくて
困っております。そもそもできるのかどうかすら
わからないので、エクセルの仕様上それはできないのであれば、しょうがないのですが、もし可能であれば
ご教授ください。
宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
>画面をスクロールして対象列が正しいのかを確認したい
もちろん、自作 Msgbox フォームを作って Modeless 表示してもよいのですが、手間がかかりますね。
今回の件では、「入力のときにスクロールできれば、確認しながら選択できるのでOK」みたいです。それでしたら、
1. Input関数ではなく、Inputメソッドの Type:=8 を使う
2. UserFormなら RefEditコントロール を使う
でクリアできそうです。サンプルコードを示しますが、長いのはコードの中に解説を書いているためですから、とりあえず、コピー&ペーストして動作させて見て下さい。
入力のときに、スクロールさせて確認できます。
Sub Sample()
InputColumn:
'入力--------------------------------------------------------
'Inputメソッドを利用
'[キャンセル]ボタン--> Nothing になるので Setステートメントで
'エラーが発生する。そこで On Error Resume Next でエラーが発生
'しても処理を続行させる
'------------------------------------------------------------
On Error Resume Next
Set rngCol = Application.InputBox( _
Prompt:="列を選択します", Type:=8)
If rngCol Is Nothing Then Exit Sub
On Error GoTo 0
'正しくRangeがかえされた場合、複数範囲判定 --------------------
'判定方法1:rngCol.Addressの値にカンマが含まれれば連続していない
'判定方法2:rngCol.Columns.Count>1 なら複数列を選択している
'------------------------------------------------------------
If InStr(1, rngCol.Address, ",") > 0 _
Or rngCol.Columns.Count > 1 Then
MsgBox "複数範囲が選択されています", vbCritical, "中止"
Set rngCol = Nothing
GoTo InputColumn '再入力へ
Else
Set rngCol = Columns(rngCol.Column)
End If
'確認 -------------------------------------------------------
'列全体を選択
rngCol.Select
'確認メッセージ
intRes = MsgBox("この列でよろしいですか?", _
vbYesNoCancel + vbInformation, "確認")
Select Case intRes
Case Is = vbNo
Set rngCol = Nothing
GoTo InputColumn '再入力へ
Case Is = vbCancel
Set rngCol = Nothing
Exit Sub '終了
Case Else
End Select
'それ以降の
MsgBox "選択されたのは" & vbCrLf & _
"列:" & rngCol.Address & vbCrLf & _
"列番号:" & rngCol.Column
End Sub
No.1
- 回答日時:
>エクセルの仕様上それはできない
メッセージボックスの仕様です。
自分で同様のフォームを作成して、
UserForm1.Show vbModeless や UserForm1.Show 0
として起動すると、シートの操作が可能になります。
参考URL:http://park11.wakwak.com/~miko/Excel_Note/11-01_ …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/04/21 13:46
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- Visual Basic(VBA) エクセル365のVBAで困っています。どう修正したらよいか添削をお願いします 2 2023/05/03 17:35
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Excel(エクセル) エクセルのマクロの有効について 4 2023/08/03 11:40
- Excel(エクセル) 【エクセル」 特定のセルで条件抽出した列を、別シートに上から詰めて表示したい。 8 2022/04/08 16:00
- Excel(エクセル) エクセルVBA 任意のセルの選択時、指定のセルの値を表示 1 2023/04/21 08:13
- Visual Basic(VBA) tatsumaru77様 昨日回答して頂いたものです。 すみませんが、昨日の質問で1つ補足があります 1 2022/05/15 15:06
- Visual Basic(VBA) Excel(VBA) 特定の条件に該当する行の値、書式を同じセルにコピ&ペーストしたいです 1 2022/05/21 18:18
このQ&Aを見た人はこんなQ&Aも見ています
-
マクロを実行中に、msgbox を表示させたまま、ワークシートを上下左右に移動表示させたい。
Excel(エクセル)
-
メッセージボックスで1025文字以上を扱う
Visual Basic(VBA)
-
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
-
4
Excel VBA 空白セルがあったらメッセージボックスで知らせたい
Visual Basic(VBA)
-
5
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
6
エクセルVBAで、MsgBox やInputBox は、画面の中央以外に表示させたい。
Excel(エクセル)
-
7
VBA 別ブックからコピペしたいのですが、軽くしたいです
Visual Basic(VBA)
-
8
ユーザーフォーム上にアイコンの表示
Visual Basic(VBA)
-
9
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
10
ある範囲のセルから任意の値を検索して、その隣のセルの値を取得するという関数はありますか?
Excel(エクセル)
-
11
VBAでEmpty値って何ですか?
Excel(エクセル)
-
12
Excel VBAで、ユーザーフォームをモードレス表示している間、処理を止めるには?
Visual Basic(VBA)
-
13
エクセルVBAで一つ上の階層を指定して保存したい
Excel(エクセル)
-
14
配列で格納したものをmsgboxで表示する方法について
Access(アクセス)
-
15
エクセルのシート名変更で重複した時のvbaの処理
Visual Basic(VBA)
-
16
保存ブックを開かずコピーペーストするマクロ作成について
Excel(エクセル)
-
17
VBAにて別ワークブック上の実行したマクロのメッセージボックスを操作
Visual Basic(VBA)
-
18
VBA別シートの最終行の次行へ転記したい。
Visual Basic(VBA)
-
19
エクセルVBA 作業後に選択範囲を解除する方法
Excel(エクセル)
-
20
VBA実行後に元のセルに戻りたい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
Excel 条件による複数行への値...
-
エクセル 同じ値を探して隣の...
-
Excel2000のセル内の文字列の数...
-
【VBA】特定列に文字が入ってい...
-
Excel_VBAでこんなこと出来ます...
-
エクセル(勝手に太字になる)
-
「B列が日曜の場合」C列に/...
-
エクセル 時間帯の重複の有無
-
Excelの関数等について教えて下...
-
いまさらですけど流列とは・・
-
セル内の左側2文字を消す方法
-
エクセル 文字数 多い順 並...
-
Excel、市から登録している住所...
-
VBAでセル入力の数式に変数を用...
-
エクセルで文字が混じった数字...
-
Excelのグループ化、右か左の選...
-
【エクセル】指定した文字以外...
-
2つのエクセルのデータを同じよ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
EXCELで 一桁の数値を二桁に
-
エクセルで最初のスペースまで...
-
2つのエクセルのデータを同じよ...
-
エクセルで文字が混じった数字...
-
エクセル(勝手に太字になる)
-
エクセル 文字数 多い順 並...
-
Excelで半角の文字を含むセルを...
-
「B列が日曜の場合」C列に/...
-
エクセルで、列の空欄に隣の列...
-
Excel 文字列を結合するときに...
-
Excel、市から登録している住所...
-
【VBA】特定列に文字が入ってい...
-
エクセルのセル内の文字の一部...
-
エクセル 同じ値を探して隣の...
-
お店に入るために行列に並んで...
-
エクセルの並び変えで、空白セ...
-
文字列に数字を含むセルを調べたい
-
エクセルの項目軸を左寄せにしたい
おすすめ情報