View previous topic :: View next topic |
Author |
Message |
TIGROIDONIA
Joined: 19 Aug 2011 Posts: 8
|
(Separately) Posted: Wed Nov 23, 2011 06:45 Post subject: |
|
|
Друзья, снова прошу о помощи, всвязи с усовершенствованием файла шаблона и включением в него макросов теперь мне требуется все тоже самое, но с сохранением шаблона с поддержкой макросов, те с расширением xlsm, как я понимаю процедура SaveAs должна иметь какой-то другой вид?
В настоящий момент пользуюсь этим кодом успешно, прошу подправить для использования файлов с макросами для Excel 2010
Code: | 'Создает пустой xlsx-файл в текущем каталоге и открывает его
File = InputBox("Введите имя нового файла (без расширения)", "Создание нового xlsx-файла", "Новый файл")
If File = "" Then WScript.Quit
If WScript.Arguments.Count > 0 Then Template = WScript.Arguments(0) Else Template = ""
With CreateObject("Excel.Application")
.Workbooks.Add Template
.Application.ActiveWorkBook.SaveAs CreateObject("WScript.Shell").CurrentDirectory & "\" & File & ".xlsx"
.Visible = True
End With | [/quote]
Добавлено спустя 48 минут:
Эх, не выдержал и нашел решение сам, если кому надо, то добавить параметр 52 Code: |
.Application.ActiveWorkBook.SaveAs CreateObject("WScript.Shell").CurrentDirectory & "\" & File & ".xlsm", 52 |
|
|
Back to top |
|
|
Nick
Joined: 26 Dec 2014 Posts: 107
|
(Separately) Posted: Tue Jan 20, 2015 18:38 Post subject: |
|
|
При попытке запуска этого скрипта получаю:
---------------------------
Строка: 7
Символ: 4
Ошибка: Метод SaveAs из класса Workbook завершен неверно
Код: 800A03EC
Источник: Microsoft Excel
---------------------------
Возможно ли еще как-то адаптировать этот скрипт, чтобы создавать документы и Word тоже. (Office XP). Сейчас приходится делать так: ПКМ на панели TC-->Новый-->документ Microsoft Word-->ввод имени и после этого запуск файла. С Excel аналогично. Достаточно неудобно. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Jan 20, 2015 19:03 Post subject: |
|
|
Выше предлагалось удалить ", 51". Не помогло? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Nick
Joined: 26 Dec 2014 Posts: 107
|
(Separately) Posted: Wed Jan 21, 2015 18:31 Post subject: |
|
|
Flasher wrote: | Выше предлагалось удалить ", 51". Не помогло? | После этого файл Excel создается только в папке, где находится сам скрипт. Параметр %P не работает. А как быть с Word? |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Jan 21, 2015 20:47 Post subject: |
|
|
Code: | ' ==========================================================================
' Создать пустой doc(x)/ppt(x)/xls(x)-файл в активном каталоге и открыть его
' Условие: путь запуска должен быть пустым
' Параметр: <расширение файла>
' Автор: Flasher ©
' ==========================================================================
Ext = WScript.Arguments(0) : Extx = Left(Ext, 3)
Title = "Создание нового " & Ext & "-файла"
Select Case Extx
Case "doc" Pr = "Word" : Case "xls" Pr = "Excel" : Case "ppt" Pr = "PowerPoint"
Case Else MsgBox Ext & " - неверное расширение!", 48, " " & Title : WScript.Quit
End Select : FN = Trim(InputBox(String(5, vbCr) & "Введите базовое имя файла:",_
Space(23) & Title, "Новый файл")) : If FN = "" Then WScript.Quit
F = CreateObject("WScript.Shell").CurrentDirectory & "\" & FN : FN = F
While CreateObject("Scripting.FileSystemObject").FileExists(_
FN & "." & Ext) i = i + 1 : FN = F & " (" & i & ")" : Wend
With CreateObject(Pr & ".Application")
Select Case Extx
Case "doc" Set Add = .Documents.Add : Case "ppt" Set Add = .Presentations.Add
Case Else .Workbooks.Add : Set Add = .Application.ActiveWorkBook
End Select : Add.SaveAs(FN & "." & Ext) : .Visible = True
End With |
_________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Nick
Joined: 26 Dec 2014 Posts: 107
|
(Separately) Posted: Thu Jan 22, 2015 18:19 Post subject: |
|
|
Flasher
Ok. Работает, но только создаваемые файлы отличаются. Например, файл doc, созданный через TC=10,5 KB, через скрипт=19,5 KB. Файлы xls создаются с одинаковым размером, но разным содержимым. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Jan 22, 2015 18:48 Post subject: |
|
|
Nick
Ничем не могу помочь. ТС ничего подобного не умеет. Использование системного контекстного меню к этому не относится.
У меня, как я ранее писал, файлы docx системной создаются и открываются пустыми (0 байт). xlsx скриптом - 7760 байт, через меню десктопа - 6339 байт. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Skif_off
Joined: 28 Nov 2012 Posts: 1232
|
(Separately) Posted: Thu Jan 22, 2015 19:02 Post subject: |
|
|
Почему просто не сделать шаблоны и не копировать в нужное место с нужным именем? MS Office и LibreOffice хранят свои шаблоны в ShellNew, кажется.
Просто положить рядом со скритом и не париться, что стоит и какой версии. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Jan 22, 2015 19:36 Post subject: |
|
|
Skif_off
Шаблоны? Речь же про пустышки. Их, естественно, как копии тоже можно задействовать, так будет, конечно, проще.
Code: | TOTALCMD#BAR#DATA
cmd /c copy "%COMMANDER_PATH%\Scripts\Шаблоны\Template.doc" NewFile.doc && NewFile.doc
imageres.dll,188
Создать и открыть doc-файл
1
| Но как ранее обсуждалось, поведение для 0-байтовых Word-файлов не во всех случаях одинаковое. Поэтому я бы доверился ActiveX. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Skif_off
Joined: 28 Nov 2012 Posts: 1232
|
(Separately) Posted: Thu Jan 22, 2015 23:55 Post subject: |
|
|
Flasher
Смущают различия, да и Pr & ".Application" есть не везде. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Jan 23, 2015 02:36 Post subject: |
|
|
Skif_off wrote: | Смущают различия | Это мелкомягкие виноваты, а не я.
Skif_off wrote: | да и Pr & ".Application" есть не везде | Там, где стоят программы MS Office, - везде.
Я, конечно, могу задействовать объектную модель LibreOffice, если та отсутствует, но оно кому надо? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat Jan 24, 2015 10:52 Post subject: |
|
|
Люди, а между прочим, размеры xlsx-файлов, созданных через десктоп>ПКМ>Создать и TC>заголовок панели>ПКМ>Новый тоже отличаются. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Nick
Joined: 26 Dec 2014 Posts: 107
|
(Separately) Posted: Tue Jan 27, 2015 14:10 Post subject: |
|
|
Flasher wrote: | могу задействовать объектную модель LibreOffice, если та отсутствует, но оно кому надо? | Такой скрипт для LibreOffice тоже не помешал бы.
Flasher wrote: | размеры xlsx-файлов, созданных через десктоп>ПКМ>Создать и TC>заголовок панели>ПКМ>Новый тоже отличаются. | В проводнике и в TC меню вообще часто отличается. Да и даты TC делает неправильные, в отличие от проводника, который создает файл по текущей дате. |
|
Back to top |
|
|
Skif_off
Joined: 28 Nov 2012 Posts: 1232
|
(Separately) Posted: Tue Jan 27, 2015 18:00 Post subject: |
|
|
Quote: | Такой скрипт для LibreOffice тоже не помешал бы |
А есть ещё Gnumeric, KCells (KOffice), SoftMaker Office, WPS Office (Kingsoft Office)... |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Jan 27, 2015 23:19 Post subject: |
|
|
ИздеваетеС? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
|