Home » エクセルマクロ・Excel VBAの使い方 » Applicationオブジェクト » Application.InputBoxでType:=8指定時にセルを1つだけ選択してもらうには

Application.InputBoxでType:=8指定時にセルを1つだけ選択してもらうには

動作検証バージョン:Windows版Excel(バージョン1904 ビルド11601.20178)

Application.InputBoxでType:=8指定時にセルを1つだけ選択してもらうには

Applicationオブジェクトの持つInputBoxメソッドを使って、マクロの実行中にセルを選択してもらうコードをご紹介しています。

これに関連した
「vba application inputbox type8 選択 1セルだけ」
という検索キーワードでアクセスがありました。

[スポンサードリンク]

マクロ実行中にセルを1つだけ選択してもらうサンプル

以下のSubプロシージャが参考になるでしょう。

Sub ApplicationのInputBoxメソッドでセルを1つだけ選択してもらう()
 Dim rng As Range
 Do
  On Error Resume Next
  Set rng = Application.InputBox( _
    Prompt:="セルを1つだけ選択してください。", _
    Type:=8)
  On Error GoTo 0
  If rng Is Nothing Then Exit Sub
 Loop Until rng.Count = 1

 MsgBox rng.Address(False, False)
End Sub

上記のSubプロシージャを実行すると、セルが1つだけ選択されて[OK]ボタンがクリックされるまで、
「セルを1つだけ選択してください。」
という指示のインプットボックスが表示され続けます。

サンプルマクロで行っている処理

Application.InputBoxメソッドの、引数Typeに8を指定して、セル参照だけが可能なインプットボックスを表示し、
  Set rng = Application.InputBox( _
    Prompt:="セルを1つだけ選択してください。", _
    Type:=8)

その戻り値を、Range型のオブジェクト変数rngに、代入しています。
  Set rng = Application.InputBox( _
    Prompt:="セルを1つだけ選択してください。", _
    Type:=8)

インプットボックスの[キャンセル]ボタンがクリックされたときに、実行時エラーが発生するのを回避して、Subプロシージャを終了する部分は、
  On Error Resume Next
  Set rng = Application.InputBox( _
    Prompt:="セルを1つだけ選択してください。", _
    Type:=8)
  On Error GoTo 0
  If rng Is Nothing Then Exit Sub

Application.InputBoxメソッドを使う場合の、定番の処理です。

以上のような処理を「RangeコレクションのCountプロパティが1を返すまで」という条件の、
  Do
  Loop Until rng.Count = 1
Do~Loop文の中に入れています。

最終更新日時:2019-05-16 14:38

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Applicationオブジェクト » Application.InputBoxでType:=8指定時にセルを1つだけ選択してもらうには

「Applicationオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.