Вопрос № 1:
Примерно так
Public Sub Macros1()
Dim rng As Range
Set rng = ActiveWindow.ActiveCell
MsgBox rng.Address
End Sub
т.е передавать не надо, а можно получить текущую активную ячейку
выбери что тебе больше подходит из следующего
ActiveCell
Application.ActiveCell
ActiveWindow.ActiveCell
Application.ActiveWindow.ActiveCell
Вопрос 2: В нужном листе пишешь макрос
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Debug.Print Target.Address
If Target.Address = "$A$7" Then
MsgBox "Ура! Мы в нужной ячейке"
End If
End Sub