¿Cómo saber la Dirección física o MAC de mi PC en una macro excel vba?

Quisiera crear una macro excel que solo pueda ser abierto de acuerdo a las dirección física de la PC que la use y que este registrada en el excel de caso contrario el excel se cierre.

2 Respuestas

Respuesta
2

Puedes poner el siguiente código en un módulo:

Sub ObtenerAddress()
'Por.Dante Amor
    MiAddress = GetMACAddress
    Select Case MiAddress
        Case "00:11:22:33:44:55", "66:77:88:99:aa:bb"
        Case Else: ActiveWorkbook.Close False
    End Select
End Sub
'
Function GetMACAddress() As String
'Referencia: http://pdevoir.blogspot.mx/2013/08/excel-vba-function-for-getting-mac.html
    Dim objVMI As Object
    Dim vAdptr As Variant
    Dim objAdptr As Object
    Dim adptrCnt As Long
    Dim adres As String
    adres = ""
    Set objVMI = GetObject("winmgmts:\\" & "." & "\root\cimv2")
    Set vAdptr = objVMI.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
    For Each objAdptr In vAdptr
        If Not IsNull(objAdptr.MACAddress) And IsArray(objAdptr.IPAddress) Then
            For adptrCnt = 0 To UBound(objAdptr.IPAddress)
                If Not objAdptr.IPAddress(adptrCnt) = "0.0.0.0" Then
                    GetNetworkConnectionMACAddress = objAdptr.MACAddress
                    Exit For
                End If
            Next adptrCnt
             'MsgBox "Your MAC Address is: " & GetNetworkConnectionMACAddress
            adres = GetNetworkConnectionMACAddress
        End If
    Next
    GetMACAddress = adres
End Function

En el evento Open de tu libro, pon lo siguiente:

Private Sub Workbook_Open()
    Call ObtenerAddress
End Sub


INstrucciones para poner la macro en los eventos ThisWorkbook

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a ThisWorkbook
  4. En el panel del lado derecho copia la macro

'.[Sal u dos. Dante Amor. No olvides valorar la respuesta. 
'.[Avísame cualquier duda

Esta excelente! Pero me resulta la dirección física LAN, quisiera saber la dirección física Ethernet. Muchas Gracias

Respuesta
1

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas