You can try this code:
' https://social.msdn.microsoft.com/Forums/en-US/93674f48-299e-4880-b77f-5f7bc66b2e75/names-of-currently-running-applications?forum=isvvba
Public Function IsProgramOpen(ByVal program_name As String) As Boolean
' Arnelgp
'
' Example:
'
' test if Outlook is already running
'
' ? IsProgramOpen("OUTLOOK.EXE")
'
' some common program names:
'
' "OUTLOOK.EXE" to test for Outlook is already running
' "MSACCESS.EXE" to test if MS Access is already running
' "EXCEL.EXE" to test for Excel
' "WINWORD.EXE" to test for Word application
' "POWERPNT.EXE" to test for Powerpoint
'
' etc.
'
Const THIS_PC As String = "."
Dim objWMIService, colItems, objItem
Dim sName As String
Set objWMIService = GetObject("winmgmts:\\" & THIS_PC & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Process", , 48)
program_name = UCase(program_name)
For Each objItem In colItems
sName = UCase(Trim$(objItem.Name))
If sName = program_name Then
IsProgramOpen = True
Exit For
End If
Next
End Function
on immediate window (VBA) you test:
?IsProgramOpen("OUTLOOK.EXE")