Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Открываем Excel и выполняем VBA-код через AutoIt3 - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин  
Открываем Excel и выполняем VBA-код через AutoIt3
Rioran Дата: Четверг, 19.03.2015, 17:37 | Сообщение № 1
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
Всем привет.

Просто оставлю это здесь, вдруг кому пригодится. На форуме не нашёл подобного.

Скрипт сохраняется в блокнот с расширением .au3 (файл AutoIt) и исполняется соответственно. Или можно скомпилировать.

Имя макроса для запуска и адрес файла поменяйте на свои.

[vba]
Код
   $Excel_App = ObjCreate("Excel.Application") ; Create an Excel Object
     $Excel_App.Workbooks.Open ("C:\Users\rvoronov\Desktop\Electricity_Question_02.xlsb")
     Sleep(1000)
     $Excel_App.Visible = 1 ; Let Excel show itself
     $Excel_File = $Excel_App.ActiveWorkbook.Name
     Sleep(1000)
     $Excel_Macro = "Rio_Test"
     Sleep(1000)
     $Excel_App.run ("'" & $Excel_File & "'!" & $Excel_Macro)
[/vba]
Пока в фоновом режиме ломаю голову, как прилепить это на горячую клавишу. Возможно, политика безопасности компании на работе не позволяет. Дома как-нибудь проверю вариант.


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279


Сообщение отредактировал Rioran - Четверг, 19.03.2015, 17:37
 
Ответить
СообщениеВсем привет.

Просто оставлю это здесь, вдруг кому пригодится. На форуме не нашёл подобного.

Скрипт сохраняется в блокнот с расширением .au3 (файл AutoIt) и исполняется соответственно. Или можно скомпилировать.

Имя макроса для запуска и адрес файла поменяйте на свои.

[vba]
Код
   $Excel_App = ObjCreate("Excel.Application") ; Create an Excel Object
     $Excel_App.Workbooks.Open ("C:\Users\rvoronov\Desktop\Electricity_Question_02.xlsb")
     Sleep(1000)
     $Excel_App.Visible = 1 ; Let Excel show itself
     $Excel_File = $Excel_App.ActiveWorkbook.Name
     Sleep(1000)
     $Excel_Macro = "Rio_Test"
     Sleep(1000)
     $Excel_App.run ("'" & $Excel_File & "'!" & $Excel_Macro)
[/vba]
Пока в фоновом режиме ломаю голову, как прилепить это на горячую клавишу. Возможно, политика безопасности компании на работе не позволяет. Дома как-нибудь проверю вариант.

Автор - Rioran
Дата добавления - 19.03.2015 в 17:37
Hugo Дата: Четверг, 19.03.2015, 17:57 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
Чтоб au3 работало - нужно его исполнение привязать к AutoIt3.exe


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеЧтоб au3 работало - нужно его исполнение привязать к AutoIt3.exe

Автор - Hugo
Дата добавления - 19.03.2015 в 17:57
Rioran Дата: Пятница, 20.03.2015, 09:46 | Сообщение № 3
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
Hugo, привет. Значит ли комментарий выше, что у тебя получилось запустить код из-под спойлера?


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279
 
Ответить
СообщениеHugo, привет. Значит ли комментарий выше, что у тебя получилось запустить код из-под спойлера?

Автор - Rioran
Дата добавления - 20.03.2015 в 09:46
Hugo Дата: Пятница, 20.03.2015, 10:31 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
Привет. Отработало, только что попробовал, но то что не под спойлером. Только конечно подставил свой файл с моим макросом.
P.S. И спойлер тоже отработал.


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD


Сообщение отредактировал Hugo - Пятница, 20.03.2015, 10:37
 
Ответить
СообщениеПривет. Отработало, только что попробовал, но то что не под спойлером. Только конечно подставил свой файл с моим макросом.
P.S. И спойлер тоже отработал.

Автор - Hugo
Дата добавления - 20.03.2015 в 10:31
Rioran Дата: Пятница, 20.03.2015, 10:54 | Сообщение № 5
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
Hugo, классно, спасибо. На счёт "без спойлера" сомнений не было, код "отшлифован" хорошенько =) Вопрос был только к спойлеру. Значит, дело не в коде, какой-то вопрос на моей стороне не даёт горячей клавише сработать. Позже надо потестировать пару вариантов.


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279


Сообщение отредактировал Rioran - Пятница, 20.03.2015, 10:55
 
Ответить
СообщениеHugo, классно, спасибо. На счёт "без спойлера" сомнений не было, код "отшлифован" хорошенько =) Вопрос был только к спойлеру. Значит, дело не в коде, какой-то вопрос на моей стороне не даёт горячей клавише сработать. Позже надо потестировать пару вариантов.

Автор - Rioran
Дата добавления - 20.03.2015 в 10:54
Hugo Дата: Пятница, 20.03.2015, 11:04 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
То что под спойлером после запуска висит в трее и ждёт пока не нажмёте Alt+x или Alt+z. Один цикл, т.е. затем скрипт нужно запускать заново.


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD


Сообщение отредактировал Hugo - Пятница, 20.03.2015, 11:27
 
Ответить
СообщениеТо что под спойлером после запуска висит в трее и ждёт пока не нажмёте Alt+x или Alt+z. Один цикл, т.е. затем скрипт нужно запускать заново.

Автор - Hugo
Дата добавления - 20.03.2015 в 11:04
Rioran Дата: Пятница, 20.03.2015, 15:54 | Сообщение № 7
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
Hugo, лечится добавлением одной строки:

[vba]
Код
; capture and pass along a keypress
HotKeySet("!x", "Open_File")
HotKeySet("!z", "End_Script")

While 1
      sleep (50)
WEnd

Func Open_File()
      HotKeySet("!x")
      $Excel_App = ObjCreate("Excel.Application") ; Create an Excel Object
      $Excel_App.Workbooks.Open ("C:\Users\rvoronov\Desktop\Electricity_Question_02.xlsb")
      Sleep(1000)
      $Excel_App.Visible = 1 ; Let Excel show itself
      $Excel_File = $Excel_App.ActiveWorkbook.Name
      Sleep(1000)
      $Excel_Macro = "Rio_Test"
      Sleep(1000)
      $Excel_App.run ("'" & $Excel_File & "'!" & $Excel_Macro)
      HotKeySet("!x", "Open_File") ;'Вот эту добавляем - и теперь жать можно многократно.
EndFunc

Func End_Script()
      HotKeySet("!z")
      Exit
EndFunc
[/vba]
Если кому-то надо, могу ещё прикрутить быструю клавишу для закрытия файла. Или что бы макрос проигрывался и файл закрывался сам с сохранением / без.

Альт-Икс запускает открытие файла и работу макроса, Альт-Зет прерывает скрипт полностью, чтобы быстрые клавиши не занимать.


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279


Сообщение отредактировал Rioran - Пятница, 20.03.2015, 15:55
 
Ответить
СообщениеHugo, лечится добавлением одной строки:

[vba]
Код
; capture and pass along a keypress
HotKeySet("!x", "Open_File")
HotKeySet("!z", "End_Script")

While 1
      sleep (50)
WEnd

Func Open_File()
      HotKeySet("!x")
      $Excel_App = ObjCreate("Excel.Application") ; Create an Excel Object
      $Excel_App.Workbooks.Open ("C:\Users\rvoronov\Desktop\Electricity_Question_02.xlsb")
      Sleep(1000)
      $Excel_App.Visible = 1 ; Let Excel show itself
      $Excel_File = $Excel_App.ActiveWorkbook.Name
      Sleep(1000)
      $Excel_Macro = "Rio_Test"
      Sleep(1000)
      $Excel_App.run ("'" & $Excel_File & "'!" & $Excel_Macro)
      HotKeySet("!x", "Open_File") ;'Вот эту добавляем - и теперь жать можно многократно.
EndFunc

Func End_Script()
      HotKeySet("!z")
      Exit
EndFunc
[/vba]
Если кому-то надо, могу ещё прикрутить быструю клавишу для закрытия файла. Или что бы макрос проигрывался и файл закрывался сам с сохранением / без.

Альт-Икс запускает открытие файла и работу макроса, Альт-Зет прерывает скрипт полностью, чтобы быстрые клавиши не занимать.

Автор - Rioran
Дата добавления - 20.03.2015 в 15:54
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!