Страница 1 из 3
Скрипт для создания шаблона Excel
Добавлено: Пт авг 19, 2011 11:16
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 в активной папке и соответвенно открывался для изменений.
Добавлено: Пт авг 19, 2011 12:08
Avada
TIGROIDONIA
Оформление заголовка темы и скрипта приведено в пристойное состояние.
Между созданием простого тестового документа и имеющего совершенно иной формат шаблона Excel 2010 есть, мягко говоря, сильная разница, так что вышеприведённый скрипт к делу не относится вообще.
Открывался для изменений где — в MS Excel 2010, как понимаю?
И неплохо бы выяснить, где и под каким именем лежит родной шаблон Excel этой самой версии, поскольку без него тут делать нечего. С этим помочь ничем не могу, у меня Office 2003.
Добавлено: Пт авг 19, 2011 12:41
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 приходится искать директорию куда сохранить, вот именно от этого геморроя и хотелось бы избавиться, те чтобы просто нажать сохранить, а не сохранить как.
Добавлено: Пт авг 19, 2011 12:56
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".
Добавлено: Пт авг 19, 2011 13:14
TIGROIDONIA
Огромное спасибо, все супер-пупер, если можно то еще как все же создавать из готовго шаблона?
Добавлено: Пт авг 19, 2011 13:15
Batya
TIGROIDONIA
Сделал.
Добавлено: Пт авг 19, 2011 14:18
TIGROIDONIA
где?
Добавлено: Пт авг 19, 2011 14:32
Batya
TIGROIDONIA писал(а):где?
"-Тама" © "Любовь и голуби"
См. всё тот же пост со скриптом.
Добавлено: Пт авг 19, 2011 15:01
TIGROIDONIA
разъясните пожалуйста о каком параметре идет речь, если например шаблон находится в директории c:\шаблон\shab.xlsx , то куда этот адрес прописать в скрипте?
Добавлено: Пт авг 19, 2011 15:33
Batya
TIGROIDONIA
Кнопка TC писал(а):TOTALCMD#BAR#DATA
C:\Путь\к\скрипту\скрипт.vbs
c:\шаблон\shab.xlsx
C:\Program Files\Microsoft Office\Office11\EXCEL.EXE,25
Создание нового файла по шаблону
-1
Добавлено: Пт авг 19, 2011 17:47
TIGROIDONIA
метод SaveAs из класса Workbook завершен неверно
Добавлено: Сб авг 20, 2011 02:35
Batya
TIGROIDONIA
У меня просто MS Office 2003.
Открой у себя Excel, запусти запись макроса, выполни сохранение документа в формате MS Office 2007/2010, останови запись макроса. Теперь открой макрос и посмотри значение второго параметра метода SaveAs. Укажи это значение в скрипте вместо моего "51".
Добавлено: Сб авг 20, 2011 04:22
TIGROIDONIA
я вообще удалил этот парамет и все заработало
Добавлено: Сб авг 20, 2011 17:06
Flasher
TIGROIDONIA
Если удалить параметр, то тогда задача с созданием шаблона не решается. Скрипт останется функционировать на прежнем уровне. А при указании шаблона нужно не забыть о кавычках, если есть пробелы в пути.
Добавлено: Сб авг 20, 2011 21:53
Batya
TIGROIDONIA
А ведь действительно. Если у тебя MS Office 2010, то у тебя по умолчанию и так нужный формат.
Flasher
Сейчас речь шла не о параметре скрипта, а о втором параметре метода SaveAs.