Открыть файл — предупреждение безопасности при запуске файла .bat в vba excel

#excel #vba

#excel #vba

Вопрос:

У меня возникла проблема с поиском / пониманием того, как решить следующую проблему при запуске .bat файла в VBA в Excel . Я получаю Open File - Security Warning приглашение при попытке выполнить его.

Проблема в том, что у меня нет прав администратора, поэтому я не могу настроить, чтобы .bat файлы игнорировались в этом приглашении, а этот .bat файл я создал сам, поэтому я не понимаю, почему мой компьютер помечает его как потенциально опасный.

Если бы кто-нибудь мог объяснить обходной путь и почему возникает такая проблема, несмотря на то, что это пользовательский сгенерированный .bat файл, я был бы очень признателен. Под обходным решением я подразумеваю изменение кода, с которым мне в настоящее время приходится сталкиваться для решения этой проблемы, без обращения к администраторам.

Ниже приведен фрагмент кода, относящийся к проблеме, спасибо:

 sub test()
'some stuff

    Open MY_FILENAME For Output As #FileNumber
    Print #FileNumber, FileContents
    Print #FileNumber, "exit"
    Close #FileNumber

    'run batch file
    Dim wsh As Object
    Set wsh = VBA.CreateObject("WScript.Shell")
    Dim waitOnReturn As Boolean: waitOnReturn = True
    Dim windowStyle As Integer: windowStyle = 1
    Dim rtn As Integer
    rtn = wsh.Run(Chr(34) amp; MY_FILENAME amp; Chr(34), windowStyle, waitOnReturn)
end sub
  

Я должен добавить, что если запустить оболочку подобным образом, у меня не возникнет проблем:

 rtn = Shell(MY_FILENAME, vbNormalFocus)
  

За исключением того, что код будет продолжать выполняться, несмотря на то, что оболочка не закрывается и не завершает свое выполнение. Мне нужно, чтобы оболочка остановилась, пока она не выполнит свою задачу.

Комментарии:

1. Вы собираетесь показать нам и пакетный файл тоже? или вы удовлетворены тем, что содержимое пакетного файла никоим образом не влияет на проблему, о которой сообщается? Например, устанавливается ли текущий каталог пакетного файла внутри самого себя? или вы ожидаете, что он будет использовать любой текущий каталог в VBScript? Кстати, если вы уверены, что содержимое пакетного файла не имеет значения, не могли бы вы, пожалуйста, удалить тег batch-file, поскольку специалистам по пакетным файлам не обязательно видеть вашу проблему или участвовать в ней.

2. @Compo, приносим извинения, командный файл работает нормально. Я просто подумал, что если командный файл был создан мной, возможно, эксперты в этой области поймут, почему утверждается, что он поступает из неизвестного источника, когда я создал его в коде vba. Я удалю тег.