Скрипт для создания шаблона Excel

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

TIGROIDONIA
Сообщения: 8
Зарегистрирован: Пт авг 19, 2011 09:40

Скрипт для создания шаблона Excel

Сообщение TIGROIDONIA »

Есть у меня вот такая кнопочка

Код: Выделить всё

' Создает пустой файл в текущем каталоге и открывает его в блокноте
Set WshShell = CreateObject("WScript.Shell")
 
filename = InputBox("Введите имя нового файла (без расширения)", "Создание нового файла")
If filename <> "" Then
  filename = filename & ".txt"
  Set FSO = CreateObject("Scripting.FileSystemObject")
  Set File = FSO.OpenTextFile(filename, 2, True)
  File.Close
  WshShell.Run "notepad.exe " & filename, 1, True
End If

Те при нажатии создает txt файл в активной папке после указания имени. Помогите сделать подобный скрипт для создания excel документа microsoft office 2010, те что при нажатии на кнопку создавался запрос об имени файла, после чего создавался файл формата xlsx в активной папке и соответвенно открывался для изменений.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

TIGROIDONIA
Оформление заголовка темы и скрипта приведено в пристойное состояние.
Между созданием простого тестового документа и имеющего совершенно иной формат шаблона Excel 2010 есть, мягко говоря, сильная разница, так что вышеприведённый скрипт к делу не относится вообще.
Открывался для изменений где — в MS Excel 2010, как понимаю?
И неплохо бы выяснить, где и под каким именем лежит родной шаблон Excel этой самой версии, поскольку без него тут делать нечего. С этим помочь ничем не могу, у меня Office 2003.
Даже самая богатая фантазия
Не представит себе наши безобразия.
TIGROIDONIA
Сообщения: 8
Зарегистрирован: Пт авг 19, 2011 09:40

Сообщение TIGROIDONIA »

да в новом excel, задача такая - я с помощью total commander открываю нужую мне директорию и требуется, чтобы после нажатия кнопки в этой директории создавался файл excel с именем, которое вводится при запросе после нажатия.
В директории создается файл name.xlsx и открывается в excel. но в идеале было бы, чтобы создавалась не чистая книга, а книга из заранее созданого шаблона, например из шаблона находящегося по адрессу C:\шаблон.xlsx. PS сгодится и под excel 2003.

вот с такого кода начал

Код: Выделить всё

Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
Set objWorkbook = objExcel.Workbooks.Add()
но в результате происходит просто открытие чистой книги по нажатии кнопки, те физически файл не существует в открытой директории, в результате чего, после внесение изменений, для сохранения через сам excel приходится искать директорию куда сохранить, вот именно от этого геморроя и хотелось бы избавиться, те чтобы просто нажать сохранить, а не сохранить как.
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

TIGROIDONIA
Особо не заморачиваясь:

Код: Выделить всё

'Создает пустой 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", 51
  .Visible = True
End With
У кнопки, запускающей скрипт, параметр "Путь запуска" должен быть пустой.

Добавлено: В качестве параметра можно указать шаблон.

TIGROIDONIA
P.S. При вставке в сообщение форума кусков кода обрамляй их тэгом "code".
Последний раз редактировалось Batya Пт авг 19, 2011 13:15, всего редактировалось 1 раз.
Нет, я не сплю. Я просто медленно моргаю.
TIGROIDONIA
Сообщения: 8
Зарегистрирован: Пт авг 19, 2011 09:40

Сообщение TIGROIDONIA »

Огромное спасибо, все супер-пупер, если можно то еще как все же создавать из готовго шаблона?
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

TIGROIDONIA
Сделал.
Нет, я не сплю. Я просто медленно моргаю.
TIGROIDONIA
Сообщения: 8
Зарегистрирован: Пт авг 19, 2011 09:40

Сообщение TIGROIDONIA »

где?
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

TIGROIDONIA писал(а):где?
"-Тама" © "Любовь и голуби" :)

См. всё тот же пост со скриптом.
Нет, я не сплю. Я просто медленно моргаю.
TIGROIDONIA
Сообщения: 8
Зарегистрирован: Пт авг 19, 2011 09:40

Сообщение TIGROIDONIA »

разъясните пожалуйста о каком параметре идет речь, если например шаблон находится в директории c:\шаблон\shab.xlsx , то куда этот адрес прописать в скрипте?
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

TIGROIDONIA
Кнопка TC писал(а):TOTALCMD#BAR#DATA
C:\Путь\к\скрипту\скрипт.vbs
c:\шаблон\shab.xlsx
C:\Program Files\Microsoft Office\Office11\EXCEL.EXE,25
Создание нового файла по шаблону


-1
Нет, я не сплю. Я просто медленно моргаю.
TIGROIDONIA
Сообщения: 8
Зарегистрирован: Пт авг 19, 2011 09:40

Сообщение TIGROIDONIA »

метод SaveAs из класса Workbook завершен неверно
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

TIGROIDONIA
У меня просто MS Office 2003.
Открой у себя Excel, запусти запись макроса, выполни сохранение документа в формате MS Office 2007/2010, останови запись макроса. Теперь открой макрос и посмотри значение второго параметра метода SaveAs. Укажи это значение в скрипте вместо моего "51".
Нет, я не сплю. Я просто медленно моргаю.
TIGROIDONIA
Сообщения: 8
Зарегистрирован: Пт авг 19, 2011 09:40

Сообщение TIGROIDONIA »

я вообще удалил этот парамет и все заработало
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

TIGROIDONIA
Если удалить параметр, то тогда задача с созданием шаблона не решается. Скрипт останется функционировать на прежнем уровне. А при указании шаблона нужно не забыть о кавычках, если есть пробелы в пути.
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

TIGROIDONIA
А ведь действительно. Если у тебя MS Office 2010, то у тебя по умолчанию и так нужный формат.

Flasher
Сейчас речь шла не о параметре скрипта, а о втором параметре метода SaveAs.
Нет, я не сплю. Я просто медленно моргаю.
Ответить