En mi opinion la numero 1 (IsEXE1) es la mejor de todas.
Código
Option Explicit Private Declare Function GetModuleHandle Lib "kernel32.dll" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long Private Sub Form_Load() MsgBox IsEXE0 MsgBox IsEXE1 MsgBox IsEXE2 MsgBox IsEXE3 End Sub Private Function IsEXE0() As Boolean On Error GoTo IDE Debug.Print 1 / 0 IsEXE0 = True IDE: End Function Private Function IsEXE1() As Boolean Static bEXE As Boolean If Not bEXE Then bEXE = True Debug.Assert IsEXE1() Or True IsEXE1 = bEXE End If bEXE = False End Function Private Function IsEXE2() As Boolean IsEXE2 = Not (App.EXEName = App.Title) End Function Private Function IsEXE3() As Boolean If GetModuleHandle("vba6") = 0 Then IsEXE3 = True End If End Function