Уважаемые! Не знаю где искать и у кого спросить. Проблема следующая: В отдельном каталоге D:\ARC лежат архиватор RAR.exe, архив ARC.rar, файл с комментариями COMMENT.txt Из Excel запускаю макрос, содержащий: [vba]
Код
GetArhive = Shell("D:\ARC\Rar.exe C -zD:\ARC\COMMENT.txt D:\ARC\ARC.rar", vbHide)
[/vba] Комментарии из текстового файла успешно вставляются в архив. Из OutLook делаю тоже самое. Но ничего не происходит. Аналогичная картина получается, если вставлять комментарии через: [vba]
Код
Set objShell = CreateObject("Wscript.Shell") objShell.Run ...........
[/vba]
Помогите пожалуйста разобраться. В чем различие Екселя и Аутлука в этом процессе? Может какие настройки или библиотеки нужно подключить?
PS Задавал вопрос на Планете (http://www.planetaexcel.ru), но ответа нет. Видимо там только Excel
Уважаемые! Не знаю где искать и у кого спросить. Проблема следующая: В отдельном каталоге D:\ARC лежат архиватор RAR.exe, архив ARC.rar, файл с комментариями COMMENT.txt Из Excel запускаю макрос, содержащий: [vba]
Код
GetArhive = Shell("D:\ARC\Rar.exe C -zD:\ARC\COMMENT.txt D:\ARC\ARC.rar", vbHide)
[/vba] Комментарии из текстового файла успешно вставляются в архив. Из OutLook делаю тоже самое. Но ничего не происходит. Аналогичная картина получается, если вставлять комментарии через: [vba]
Код
Set objShell = CreateObject("Wscript.Shell") objShell.Run ...........
[/vba]
Помогите пожалуйста разобраться. В чем различие Екселя и Аутлука в этом процессе? Может какие настройки или библиотеки нужно подключить?
PS Задавал вопрос на Планете (http://www.planetaexcel.ru), но ответа нет. Видимо там только ExcelSVM
Сообщение отредактировал SVM - Пятница, 01.09.2017, 09:18
Код макросов нужно обрамлять спецтегами - Правка поста - выделить код - кнопка # И ссылку на Планету нужно дать (зачем нам ссылка на саму Планету, мы все ее знаем, нужно ссылку на тему с этим вопросом на Планете, чтобы посмотреть, что там отвечали И до кучи прочитайте Правила форума, там еще много интересного написано
Код макросов нужно обрамлять спецтегами - Правка поста - выделить код - кнопка # И ссылку на Планету нужно дать (зачем нам ссылка на саму Планету, мы все ее знаем, нужно ссылку на тему с этим вопросом на Планете, чтобы посмотреть, что там отвечали И до кучи прочитайте Правила форума, там еще много интересного написано_Boroda_
Везде, где мы работаем с приложением без передаваемых в макрос параметров напрямую (которые в скобках после названия) - мы должны создать ссылку на приложение
Полного кода нет, можно только попробовать угадать
Везде, где мы работаем с приложением без передаваемых в макрос параметров напрямую (которые в скобках после названия) - мы должны создать ссылку на приложение
Полного кода нет, можно только попробовать угадать
Склоняюсь к тому, что Аутлук плохо чистит использованные объекты по инструкции типа [vba]
Код
Set objShell=nothing
[/vba] Так как когда закрываю все MS программы, затем открываю OUTLOOK, то один раз срабатывает нормально. Нестабильно все как-то... дальше буду рыть...
Полного кода нет, можно только попробовать угадать
Склоняюсь к тому, что Аутлук плохо чистит использованные объекты по инструкции типа [vba]
Код
Set objShell=nothing
[/vba] Так как когда закрываю все MS программы, затем открываю OUTLOOK, то один раз срабатывает нормально. Нестабильно все как-то... дальше буду рыть...SVM
когда закрываю все MS программы, затем открываю OUTLOOK, то один раз срабатывает нормально. Нестабильно все как-то... дальше буду рыть...
При вновь открытом OUTLOOK срабатывает только один раз (или несколько раз). Вроде все очищаю. А есть ли какая команда, которая вычищает всю грязь из OUTLOOK? Код такой: [vba]
Код
Sub TestArc() ' Путь к архиватору RAR.exe Const goRAR As String = "D:\ARC\"
' Рабочий каталог, где лежат *.xl* - файлы для архива, ' файл для вставки кометария в архив ' и где создается сам архив ARC.rar Const dTMP As String = "D:\ARC\"
Dim wShell As Object If Dir(dTMP & "ARC.rar") <> "" Then Kill dTMP & "ARC.rar" stCMDarc = goRAR & "RAR.exe A -ep " & dTMP & "ARC.rar " & dTMP & "*.xl* " stCMDcom = goRAR & "RAR.exe C -z" & dTMP & "ZZ.txt " & dTMP & "ARC.rar" MsgBox ("Инициализация прошла.")
'Первый шаг: создаем сам архив ARC.rar. Все работает и архив создается Set wShell = CreateObject("Wscript.Shell") L = wShell.Run(stCMDarc, 1, True) 'Тут False тоже пробовал MsgBox ("Архив создан? Код = " & L) Set wShell = Nothing
'Второй шаг: пытаемся вставить коментарии из ZZ.txt 'Ничего не вставляется, хотя при запуске stCMDcom из командной строки все срабатывает Set wShell = CreateObject("Wscript.Shell") L = wShell.Run(stCMDcom, 1, True) 'Тут False тоже пробовал MsgBox ("Коментарий добавлен? Код = " & L) Set wShell = Nothing End Sub
когда закрываю все MS программы, затем открываю OUTLOOK, то один раз срабатывает нормально. Нестабильно все как-то... дальше буду рыть...
При вновь открытом OUTLOOK срабатывает только один раз (или несколько раз). Вроде все очищаю. А есть ли какая команда, которая вычищает всю грязь из OUTLOOK? Код такой: [vba]
Код
Sub TestArc() ' Путь к архиватору RAR.exe Const goRAR As String = "D:\ARC\"
' Рабочий каталог, где лежат *.xl* - файлы для архива, ' файл для вставки кометария в архив ' и где создается сам архив ARC.rar Const dTMP As String = "D:\ARC\"
Dim wShell As Object If Dir(dTMP & "ARC.rar") <> "" Then Kill dTMP & "ARC.rar" stCMDarc = goRAR & "RAR.exe A -ep " & dTMP & "ARC.rar " & dTMP & "*.xl* " stCMDcom = goRAR & "RAR.exe C -z" & dTMP & "ZZ.txt " & dTMP & "ARC.rar" MsgBox ("Инициализация прошла.")
'Первый шаг: создаем сам архив ARC.rar. Все работает и архив создается Set wShell = CreateObject("Wscript.Shell") L = wShell.Run(stCMDarc, 1, True) 'Тут False тоже пробовал MsgBox ("Архив создан? Код = " & L) Set wShell = Nothing
'Второй шаг: пытаемся вставить коментарии из ZZ.txt 'Ничего не вставляется, хотя при запуске stCMDcom из командной строки все срабатывает Set wShell = CreateObject("Wscript.Shell") L = wShell.Run(stCMDcom, 1, True) 'Тут False тоже пробовал MsgBox ("Коментарий добавлен? Код = " & L) Set wShell = Nothing End Sub