例文を使って繰り返し業務を時短

【マクロ・VBA】インプットボックスで行・列・表の範囲を指定する 

エクセル、マクロ、VBAのインプットボックスで行・列・表の範囲を指定する方法 VBA

インプットボックスのそれぞれの使い方

InputBox関数
InputBox関数は、ユーザーに値の入力を求めるための基本的なインプットボックスです。以下は、InputBox関数の使い方の例です。

Dim inputValue As String
inputValue = InputBox("Please enter a value")

Application.InputBoxメソッド
Application.InputBoxメソッドは、InputBox関数に加えて、入力された値の型や範囲などを指定できるため、より高度な入力処理を実現できます。以下は、Application.InputBoxメソッドの使い方の例です。

Dim inputRange As Range
Set inputRange = Application.InputBox("Please select a range", "Range Selection", Type:=8)

上記の例では、”Please select a range”というメッセージが表示され、ユーザーが選択したセル範囲がinputRange変数に格納されます。Type:=8は、選択範囲をセル範囲として指定するためのオプションです。

UserForm
UserFormは、VBAのフォーム機能を利用した、より高度なインプットボックスです。ユーザーに対してより複雑な情報を要求する場合に使用されます。以下は、UserFormの使い方の例です。

  1. UserFormを作成する。
  2. ユーザーからの入力を求めるコントロール(テキストボックス、コンボボックス、ラジオボタンなど)を配置する。
  3. ユーザーからの入力を受け取るためのOKボタンを配置する。
  4. ユーザーからの入力をキャンセルするためのCancelボタンを配置する。
  5. UserFormを表示するためのVBAコードを作成する。

以上のように、UserFormを作成して、ユーザーからの入力を求めるコントロールを配置し、OKボタンやCancelボタンを配置して、ユーザーからの入力を受け取るVBAコードを作成することで、高度な入力処理を実現できます。

インプットボックスで選択したセルを含む表全体を選択

InputBoxを使ってセル範囲をユーザーに選択させ、選択された範囲の表を選択するためのサンプルコードです。

Sub インプットボックス_表の選択()

Dim rng As Range

On Error Resume Next

Set rng = Application.InputBox(prompt:="セルを選択", Type:=8)

On Error GoTo 0

If rng Is Nothing Then Exit Sub
    rng.CurrentRegion.Select        
    MsgBox rng.Address(False, False) & "を含む表を選択" 

End Sub

まず、変数rngを宣言しています。この変数は、選択されたセル範囲を格納するために使用されます。また、エラー処理のためにOn Error Resume NextとOn Error GoTo 0の2つのステートメントを使用しています。

次に、Application.InputBoxメソッドを使用して、ユーザーにセル範囲を選択するよう促します。Type:=8は、セル範囲を選択することを指定するためのオプションです。

次に、Ifステートメントを使用して、ユーザーがキャンセルボタンをクリックした場合の処理を行います。rngがNothingの場合は、Subを終了します。rngがNothingでない場合は、選択された表を選択し、選択した表のアドレスをメッセージボックスで表示します。

最後に、End Subステートメントでサブルーチンを終了します。

このVBAコードは、セル範囲の選択と表の選択に関する基本的なVBAコードです。これを応用することで、より複雑な処理を実現することができます。

備考)表の選択:rng.CurrentRegion.Select

インプットボックスで左上のセルから最終セルの範囲を選択する

このVBAコードは、InputBoxを使ってセル範囲をユーザーに選択させ、選択された範囲の表を選択するためのサンプルコードです。

Sub インプットボックスで左上のセルから最終セルの範囲を選択する()

Dim rng As Range
On Error Resume Next
Set rng = Application.InputBox(prompt:="表の左上のセルを選択", Type:=8)

On Error GoTo 0

If rng Is Nothing Then Exit Sub
    
    Dim LastCell As Range
    Set LastCell = Cells(Rows.Count, 2).End(xlUp).End(xlToRight)
    
    Range(rng, LastCell).Select
    MsgBox rng.Address(False, False) & "を含む表を選択"

End Sub

まず、変数rngを宣言しています。この変数は、選択されたセル範囲を格納するために使用されます。また、エラー処理のためにOn Error Resume NextとOn Error GoTo 0の2つのステートメントを使用しています。

次に、Application.InputBoxメソッドを使用して、ユーザーにセル範囲を選択するよう促します。Type:=8は、セル範囲を選択することを指定するためのオプションです。

次に、Ifステートメントを使用して、ユーザーがキャンセルボタンをクリックした場合の処理を行います。rngがNothingの場合は、Subを終了します。rngがNothingでない場合は、選択された表を選択し、選択した表のアドレスをメッセージボックスで表示します。

最後に、End Subステートメントでサブルーチンを終了します。

インプットボックスで指定する行を含むセルを選択する

このVBAコードは、InputBoxを使用してユーザーに行を指定してもらい、その行を含むセルを選択するためのサンプルコードです。

Sub インプットボックスで指定する行を含むセルを選択する()

Dim rng As Range
On Error Resume Next
Set rng = Application.InputBox(prompt:="指定する行を含むセルを選択", Type:=8)

On Error GoTo 0

If rng Is Nothing Then Exit Sub
    rng.EntireRow.Select
    MsgBox rng.Address(False, False) & "を含む行を選択"
  
End Sub

最初に、変数rngを宣言します。この変数は、選択されたセル範囲を格納するために使用されます。また、エラー処理のためにOn Error Resume NextとOn Error GoTo 0の2つのステートメントを使用しています。

次に、Application.InputBoxメソッドを使用して、ユーザーに行を含むセルを選択するよう促します。Type:=8は、セル範囲を選択することを指定するためのオプションです。

次に、Ifステートメントを使用して、ユーザーがキャンセルボタンをクリックした場合の処理を行います。rngがNothingの場合は、Subを終了します。rngがNothingでない場合は、選択された行を含むセルを選択し、選択した行のアドレスをメッセージボックスで表示します。

最後に、End Subステートメントでサブルーチンを終了します。

このVBAコードは、行の選択に関する基本的なVBAコードです。これを応用することで、より複雑な処理を実現することができます。

インプットボックスで指定する列を含むセルを選択する

Sub インプットボックスで指定する列を含むセルを選択する()

Dim rng As Range
On Error Resume Next
Set rng = Application.InputBox(prompt:="セルを選択", Type:=8)

On Error GoTo 0

If rng Is Nothing Then Exit Sub
    rng.EntireColumn.Select
    MsgBox rng.Address(False, False) & "を含む列を選択"
 
End Sub

インプットボックスで指定する列を含むセルを選択する(パート2)

このVBAコードは、InputBoxを使用してユーザーに列を指定してもらい、その列を含むセルを選択するためのサンプルコードです。

Sub インプットボックスで指定する列を含むセルを選択する2()  

Dim rng As Range
On Error Resume Next
Set rng = Application.InputBox( _
        prompt:="処理する列を含む「セル」を一箇所 選択してください", _
        title:="セル選択ダイアログ", _
        Type:=8)

rng.EntireColumn.Select

End Sub

最初に、変数rngを宣言します。この変数は、選択されたセル範囲を格納するために使用されます。また、エラー処理のためにOn Error Resume Nextステートメントを使用しています。

次に、Application.InputBoxメソッドを使用して、ユーザーに列を含むセルを選択するよう促します。Type:=8は、セル範囲を選択することを指定するためのオプションです。また、titleオプションを使用して、選択ダイアログボックスのタイトルを指定することもできます。

次に、rng.EntireColumn.Selectステートメントを使用して、選択された列を含むセルを選択します。このステートメントを使用することで、選択された列の全体が選択されます。

最後に、End Subステートメントでサブルーチンを終了します。

このVBAコードは、列の選択に関する基本的なVBAコードです。これを応用することで、より複雑な処理を実現することができます。

コメント

タイトルとURLをコピーしました