Вопрос № 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