web-dev-qa-db-ja.com

Excel VBAは、マウスでユーザーが選択した範囲の範囲を取得します

これはusedrangeの問題ではありません。
たとえば、Excelで、ユーザーがマウスを使用して範囲(空の場合もある)を選択するとします。たとえば、B4:C12

そして、この後、範囲の選択を解除せずにユーザーがマクロを押すと、マクロはB4:C12を通知する必要があるとしましょう。

誰かが例を示すことができますか?

マクロは、次の行に沿ったものである必要があります。

Sub showrng()
    MsgBox SelectedRange.Address(ReferenceStyle:=xlA1)
End Sub
8
sdfg
Sub macro1()
  MsgBox Selection.Address(ReferenceStyle:=xlA1, _
                           RowAbsolute:=False, ColumnAbsolute:=False)
End Sub

HTH!

12
Dr. belisarius
Sub macro1()
  MsgBox Selection.Address
End Sub

または

Sub macro1()
    Dim addr as String
    addr = Selection.Address
    msgbox addr

    ' Now, as we found the address, according to that... you can also do other operations

End Sub
3
Ajitabh Ranjan

選択には複数の独立した範囲を含めることができるため、次のコードは問題のより完全な解決策を示しています。

Public Sub SelectionTest()
Dim r As Range
Dim s As String

  Select Case Selection.Areas.Count
  Case 0:
    MsgBox "Nothing selected."
  Case 1:
    MsgBox "Selected range: " & Selection.Areas(1).Address(False, False)
  Case Else
    s = ""
    For Each r In Selection.Areas
      s = s + vbNewLine + r.Address(False, False)
    Next r
    MsgBox "Selected several areas:" & s
  End Select

End Sub
1
wribln