Страницы: 1
RSS
Создание файла экселя с помощью горячих клавиш
 
Добрый день. Подскажите есть ли горячая клавиша, чтоб создать новый файл екселя в папке?
пример(Ctrl + Shift + N. создать папку), а то постоянно приходится маус2 - создать -лист ексель .
Вариант использования макроса не совсем подходит, ведь ексель может быть закрыт.
 
Так как Excel не компонент системы, то стандартных способов в системе нет а при установке его, они не добавляются, наверно по тому что мало кому нужно. Но есть сторонние программы HotKeyUtility, которые позволяют настроить действия и повесить их на сочетания, останется только прописать создание.  А вот что для этого нужно  уже другая история.
По вопросам из тем форума, личку не читаю.
 
Здравствуйте. VBScript сделал, который создает файл Excel. Не совсем то о чем спрашивали, но как возможное решение задачи может быть. Для удобства можно создать ярлык на скрипт и поместить его в нужную папку. Вот еще нашел, пока не пробовал, но пишет, что можно настроить сочетание клавиш на ярлык.
Добавлено:
Проверял, все прекрасно работает! На ярлык(а не на сам файл) создал сочетание калвиш(Ctrl+Alt+N). Если что у меня Windows 7 64-bit. На Windows 10 проверял только сам скрипт.
Код
Option Explicit

Dim WshShell,Desktop,strFileName,strFileExtension,objExcel,objWorkbook,objFso
Set WshShell = CreateObject("WScript.Shell")
Desktop = WshShell.SpecialFolders("Desktop")
Set objFso = CreateObject("Scripting.FileSystemObject")

strFileExtension = ".xlsx"
strFileName = "\Book"

If objFso.FileExists(Desktop & strFileName & strFileExtension) Then
   strFileName = strFileName & "_" & Now
End If
Set objFso = Nothing
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = False

Set objWorkbook = objExcel.Workbooks.Add()
objWorkbook.SaveAs(Desktop & Replace(strFileName, ":", "-") & strFileExtension)

objExcel.Quit
В свойствах ярлыка, в поле "Быстрый вызов" задаём свою комбинацию клавиш.
P.S. расширение файла измените на vbs
Изменено: DANIKOLA - 07.12.2020 17:10:01
 
DANIKOLA, Спасибо вам. Решение просто супер и то что нужно. Даже в разы лучше чем autohotkey+скрипт, так как  на рабочий комп не поставишь из-за админских ограничений.
 
Цитата
DANIKOLA написал:
На ярлык(а не на сам файл) создал сочетание клавиш(Ctrl+Alt+N).
Как это делается?
 
Михаил Л, создаете ярлык чего вам нужно - свойства -вкладка "ярлык" - быстрый вызов - назначаете себе нужное
Не бойтесь совершенства. Вам его не достичь.
 
Mershik, спасибо!
Я так понял что теперь могу любую программу клавишами запустить
 
Цитата
Юра1987 написал:
так как  на рабочий комп не поставишь из-за админских ограничений.
так вроде и
Цитата
Mershik написал:
свойства -вкладка "ярлык" - быстрый вызов - назначаете себе нужное
тоже админстких требовало?
По вопросам из тем форума, личку не читаю.
 
БМВ, Вариант от DANIKOLA не требует админских прав на любой ярлык кроме тех ярлыков которые в пуске. Чтобы обойти это к примеру, на главном ярлыке екселя(в пуске) сносим его на рабочий стол и все теперь админские права не нужны(на домашнем так точно, завтра проверю на рабочем).
UPD- на рабочем компе, без админских прав все работает.
Изменено: Юра1987 - 08.12.2020 09:45:23
 
DANIKOLA, подскажите а можно как нить совместить ваш скрипт и тот, который был на гитхабе? В плане того чтобы он определял путь активного окна проводника. И  создавал новый файл по скрипту уже в активном окне , а не там где лежит сам скрипт ( у меня он все файлы создает только на рабочем столе, в независимости от того где лежит сам файл скрипта или ярлыка на него)
Код
; Это часть моего скрипта AutoHotKey [1]. Когда вы находитесь в проводнике Windows,
; позволяет вам нажать Ctrl + Alt + N и ввести имя файла, и этот файл будет создан
; в текущем каталоге и открывается в соответствующем редакторе (обычно
; [gVim] (http://www.vim.org/) в моем случае, но он будет использовать любую программу
; связанный с файлом в проводнике Windows).
 
; Это намного проще, чем альтернатива, которую я использовал до сих пор:
; Щелкните правой кнопкой мыши> Создать> Текстовый файл, удалите имя файла и расширение по умолчанию (которое
; не выделен в Windows 7), введите имя файла и дважды нажмите клавишу ВВОД.
; (В частности, для создания точечных файлов, таких как ".htaccess".)
 
; Благодарим aubricus [2], написавшего большую часть этого - я только что добавил
; Отметьте «IfWinActive» и в конце «Выполните% UserInput%».
 
; [1]: http://www.autohotkey.com/
; [2]: https://gist.github.com/1148174
 
 
; Запускать только при активном проводнике Windows
; (Примечание: если это не сработает, попробуйте вместо этого ExploreWClass)
#IfWinActive  ahk_class  CabinetWClass
 
; Ctrl + Alt + N
^! п ::
 
    ; Получить полный путь из открытого окна проводника
    WinGetText ,  FullPath ,  A
 
    ; Разделить результат (возвращает пути, разделенные символами новой строки)
    StringSplit ,  PathArray ,  FullPath ,  `n
 
    ; Получите первый предмет
    FullPath  =  % PathArray1%
 
    ; Очистить результат
    FullPath  : =  RegExReplace ( FullPath ,  "(^ Адрес :) " ,  "" )
    StringReplace ,  FullPath ,  FullPath ,  `г ,  ,  все
 
    ; Изменить рабочий каталог
    SetWorkingDir ,  % FullPath%
 
    ; Произошла ошибка с директивой SetWorkingDir
    Если ErrorLevel
        Возвращение
 
    ; Показать поле ввода для имени файла
    InputBox ,  UserInput ,  New  File  ( пример :  Foo . TXT ),  ,  ,  400 ,  100
 
    ; Пользователь нажал кнопку отмены
    Если ErrorLevel
        Возвращение
 
    ; Создать файл
    FileAppend ,  ,  % UserInput%
 
    ; Откройте файл в соответствующем редакторе
    Запустить  % UserInput%
 
    Возвращение
 
#IfWinActive
Изменено: Юра1987 - 08.12.2020 00:03:12
 
Юра1987, вечером попробую, поиграюсь, может что-то и получится, но склеивать два скрипта написаных на разных языках это не очень хорошая идея. Я просто поищу, как в vbs получить путь к активному окну.
Изменено:
Пока не нашел решения.(для тех, кто гуглит: решение есть ниже)
Изменено: DANIKOLA - 09.12.2020 19:07:26
 
Цитата
Юра1987 написал:
не требует админских прав
да я перепутал с общими для всех пользователей ярлыками.
По вопросам из тем форума, личку не читаю.
 
Юра1987, здравствуйте. Все работает, как заказывали(почти). Решение еле нашел.
Небольшие особенности работы скрипта:
1) если открыто одно окно проводника, но оно свернуто, то файл будет создан в том свернутом окне
2) если открыто два или более окон и одно из окон проводника активно, то файл будет создан в активном окне
3) если открыто два или более окон и все окна проводника свернуты, то файл будет создан в последнем активном окне
4) если проводник закрыт, то файл будет создан на рабочем столе
Код
Option Explicit

Dim WshShell,objWebBrowser,strPath,strFileName,strFileExtension,objExcel,objWorkbook,objFso
strPath = ""

For Each objWebBrowser In WScript.CreateObject("Shell.Application").Windows
   If InStr(1, TypeName(objWebBrowser.Document), "ShellFolderViewDual", vbTextCompare) > 0 Then
      'WScript.Echo objWebBrowser.Document.Folder.self.Path
      strPath = objWebBrowser.Document.Folder.self.Path
   End If
Next

Set WshShell = CreateObject("WScript.Shell")

If strPath = "" Then
   strPath = WshShell.SpecialFolders("Desktop")
End If

'strPath = WshShell.CurrentDirectory
Set objFso = CreateObject("Scripting.FileSystemObject")

strFileExtension = ".xlsx"
If Right(strPath, 1) = "\" Then
   strFileName = "Book"
Else
   strFileName = "\Book"
End If

If objFso.FileExists(strPath & strFileName & strFileExtension) Then
   strFileName = strFileName & "_" & Now
End If
Set objFso = Nothing
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = False

Set objWorkbook = objExcel.Workbooks.Add()
objWorkbook.SaveAs(strPath & Replace(strFileName, ":", "-") & strFileExtension)

objExcel.Quit
Изменено: DANIKOLA - 09.12.2020 19:05:21 (Улучшено решение задачи)
 
DANIKOLA, Добрый вечер. Спасибо вам огромное, все суперски работает.
 
Это очень круто. Спасибо!
Страницы: 1
Наверх