Скрипт для создания шаблона Excel
Select messages from
# through # FAQ
[/[Print]\]
Goto page 1, 2, 3  Next  :| |:
Total Commander -> Автоматизация Total Commander

#1: Скрипт для создания шаблона Excel Author: TIGROIDONIA PostPosted: Fri Aug 19, 2011 11:16
    —
Есть у меня вот такая кнопочка
Code:
' Создает пустой файл в текущем каталоге и открывает его в блокноте
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 в активной папке и соответвенно открывался для изменений.

#2:  Author: AvadaLocation: Россия, Саратов PostPosted: Fri Aug 19, 2011 12:08
    —
TIGROIDONIA
Оформление заголовка темы и скрипта приведено в пристойное состояние.
Между созданием простого тестового документа и имеющего совершенно иной формат шаблона Excel 2010 есть, мягко говоря, сильная разница, так что вышеприведённый скрипт к делу не относится вообще.
Открывался для изменений где — в MS Excel 2010, как понимаю?
И неплохо бы выяснить, где и под каким именем лежит родной шаблон Excel этой самой версии, поскольку без него тут делать нечего. С этим помочь ничем не могу, у меня Office 2003.

#3:  Author: TIGROIDONIA PostPosted: Fri Aug 19, 2011 12:41
    —
да в новом excel, задача такая - я с помощью total commander открываю нужую мне директорию и требуется, чтобы после нажатия кнопки в этой директории создавался файл excel с именем, которое вводится при запросе после нажатия.
В директории создается файл name.xlsx и открывается в excel. но в идеале было бы, чтобы создавалась не чистая книга, а книга из заранее созданого шаблона, например из шаблона находящегося по адрессу C:\шаблон.xlsx. PS сгодится и под excel 2003.

вот с такого кода начал
Code:
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
Set objWorkbook = objExcel.Workbooks.Add()

но в результате происходит просто открытие чистой книги по нажатии кнопки, те физически файл не существует в открытой директории, в результате чего, после внесение изменений, для сохранения через сам excel приходится искать директорию куда сохранить, вот именно от этого геморроя и хотелось бы избавиться, те чтобы просто нажать сохранить, а не сохранить как.

#4:  Author: BatyaLocation: Москва, Россия PostPosted: Fri Aug 19, 2011 12:56
    —
TIGROIDONIA
Особо не заморачиваясь:
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", 51
  .Visible = True
End With

У кнопки, запускающей скрипт, параметр "Путь запуска" должен быть пустой.

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

TIGROIDONIA
P.S. При вставке в сообщение форума кусков кода обрамляй их тэгом "code".


Last edited by Batya on Fri Aug 19, 2011 13:15; edited 1 time in total

#5:  Author: TIGROIDONIA PostPosted: Fri Aug 19, 2011 13:14
    —
Огромное спасибо, все супер-пупер, если можно то еще как все же создавать из готовго шаблона?

#6:  Author: BatyaLocation: Москва, Россия PostPosted: Fri Aug 19, 2011 13:15
    —
TIGROIDONIA
Сделал.

#7:  Author: TIGROIDONIA PostPosted: Fri Aug 19, 2011 14:18
    —
где?

#8:  Author: BatyaLocation: Москва, Россия PostPosted: Fri Aug 19, 2011 14:32
    —
TIGROIDONIA wrote:
где?
"-Тама" © "Любовь и голуби" Smile

См. всё тот же пост со скриптом.

#9:  Author: TIGROIDONIA PostPosted: Fri Aug 19, 2011 15:01
    —
разъясните пожалуйста о каком параметре идет речь, если например шаблон находится в директории c:\шаблон\shab.xlsx , то куда этот адрес прописать в скрипте?

#10:  Author: BatyaLocation: Москва, Россия PostPosted: Fri Aug 19, 2011 15:33
    —
TIGROIDONIA
Кнопка TC wrote:
TOTALCMD#BAR#DATA
C:\Путь\к\скрипту\скрипт.vbs
c:\шаблон\shab.xlsx
C:\Program Files\Microsoft Office\Office11\EXCEL.EXE,25
Создание нового файла по шаблону


-1

#11:  Author: TIGROIDONIA PostPosted: Fri Aug 19, 2011 17:47
    —
метод SaveAs из класса Workbook завершен неверно

#12:  Author: BatyaLocation: Москва, Россия PostPosted: Sat Aug 20, 2011 02:35
    —
TIGROIDONIA
У меня просто MS Office 2003.
Открой у себя Excel, запусти запись макроса, выполни сохранение документа в формате MS Office 2007/2010, останови запись макроса. Теперь открой макрос и посмотри значение второго параметра метода SaveAs. Укажи это значение в скрипте вместо моего "51".

#13:  Author: TIGROIDONIA PostPosted: Sat Aug 20, 2011 04:22
    —
я вообще удалил этот парамет и все заработало

#14:  Author: FlasherLocation: Москва PostPosted: Sat Aug 20, 2011 17:06
    —
TIGROIDONIA
Если удалить параметр, то тогда задача с созданием шаблона не решается. Скрипт останется функционировать на прежнем уровне. А при указании шаблона нужно не забыть о кавычках, если есть пробелы в пути.

#15:  Author: BatyaLocation: Москва, Россия PostPosted: Sat Aug 20, 2011 21:53
    —
TIGROIDONIA
А ведь действительно. Если у тебя MS Office 2010, то у тебя по умолчанию и так нужный формат.

Flasher
Сейчас речь шла не о параметре скрипта, а о втором параметре метода SaveAs.



Total Commander -> Автоматизация Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page 1, 2, 3  Next  :| |:
Page 1 of 3

Powered by phpBB © 2001, 2005 phpBB Group