То, что вы пытаетесь сделать, - это запустить команду через командную строку.Просто случается, что эта команда запускает java
, что касается кода VBA, она может выполнять все, что понимает оболочка.
Ниже приведен пример кода для запуска команды через оболочку в VBA (обратите внимание, что существует множество способов, и эти примеры очень легко найти в Интернете, я просто использую первый, который нашел):
Dim wsh As Object
Set wsh = VBA.CreateObject("WScript.Shell")
Dim waitOnReturn As Boolean: waitOnReturn = False
Dim windowStyle As Integer: windowStyle = 1
wsh.Run "cmd.exe /S /C " & yourCommand
... где yourCommand
- буквенная строка, которую вы запускаете в командной строке.Теперь все о конкатенации строк в VBA.Следуя вашему примеру (и добавляя имя пользователя непосредственно из VBA):
user = Environ("UserName")
yourCommand = "java -Djavax.net.ssl.trustStore=zzzz.keystore com.router.router.router.Router -user:" & user
(обратите внимание, что я заменил %USR%
- который просит оболочку получить имя пользователя - на переменную user
, которую я 'мы определили в VBA, хотя в этом конкретном примере функция Environ
запрашивает переменные окружения, поэтому она все еще запрашивает ее в оболочке).