web-dev-qa-db-ja.com

ユーザー選択範囲の取得

VBAを使用してさらに処理するために、ユーザーのマウス入力を介して選択されたセル範囲を取得するにはどうすればよいですか?

33
Talguy

Selectionオブジェクトをループして、何が選択されたかを確認できます。 Microsoftのコードスニペット(http://msdn.Microsoft.com/en-us/library/aa203726(office.11​​).aspx)は次のとおりです。

Sub Count_Selection()
    Dim cell As Object
    Dim count As Integer
    count = 0
    For Each cell In Selection
        count = count + 1
    Next cell
    MsgBox count & " item(s) selected"
End Sub
28
Miyagi Coder

SelectionはVBA内の独自のオブジェクトです。それはRangeオブジェクトによく似ています。

ただし、選択と範囲はすべて同じプロパティとメソッドを共有するわけではありません。そのため、使いやすくするために、範囲を作成して選択範囲と同じ値に設定するだけでよい場合があります。

Dim myRange as Range
Set myRange = Selection

詳細については、 MSDNの記事 をご覧ください。

33
Michael

これは、「選択範囲を取得する」という意味によって異なります。範囲を取得することを意味する場合address( "A1:B1"など)の場合、SelectionオブジェクトのAddressプロパティを使用します。Michaelが選択オブジェクトはRangeオブジェクトに非常に似ているため、ほとんどのプロパティとメソッドはそれ。

Sub test()
    Dim myString As String
    myString = Selection.Address
End Sub
12
Peter Majko