Macro en Excel para identificar si es 32 bits o 64 Bits

Tengo un problema con una macro. Resulta que no se como hacer al abrir un archivo de excel para que me detecte si es un excel de 32 bits o 64 bits. Cuando lo abro en un archivo de 32 bits me funciona bien, pero me toco crear otro en 64 bits si debo abrirlo en 64 bits.

Esta es una instrucción que tengo cuando se abre el programa:

Public CIERRE As String

'Para 32 bits
Declare Function GetVolumeInformation& Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal pVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long)

'Para 64 bits
'Declare PtrSafe Function GetVolumeInformation& Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal pVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long)

Cuando abro el de 32 bits, no tengo problema, pero si abro y es de 64 bits, debo entrar al código, colocar la comita en la instrucción de 32 bits y quitarla en la de 64 bits.

¿Hay alguna opción que me permita que el sistema lo detecte automáticamente y no tenga que estar haciendo esto manualmante?

1 respuesta

Respuesta

Esta sería una opción:

Option Explicit

Sub EsOffice64Bits()
'adaptada x Elsamatilde
#If VBA7 And Win64 Then
MsgBox "Tienes instalado Office de 64 bits.", vbInformation, "INFORMACIÓN"
#Else
MsgBox "Tienes instalado Office de 32 bits.", vbInformation, "INFORMACIÓN"
#End If
End Sub

En lugar del mensaje debes colocar la declaración que necesites, por ej:

#If VBA7 And Win64 Then

Private Declare PtrSafe Function GetVolumeInformation& Lib -------------------

Else

Private Declare Function GetVolumeInformation& Lib -------------------

End If

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas