I wonder how would you assign VBA codes written on Excel VBA to a sort of procedure/programme or maybe dos related filepath, which you can directly without opening excel. In other word, i want to have a desktop icon i can stir up a vba code i assigned to.
asked Oct 6, 2012 at 11:07
7
You can do it easily.
Add the following content in a VBS file (e.g. example.vbs). This is only a text file that you can write using Notepad:
'Code should be placed in a .vbs file
Set objExcel = CreateObject("Excel.Application")
objExcel.Application.Run "'C:pathtomyexcelfilemyExcelMacroFile.xlsm'!MyModule.MyFunctionName"
objExcel.DisplayAlerts = False
objExcel.Application.Quit
Set objExcel = Nothing
Then you can double clic on the VBS file to execute it.
Source: http://wellsr.com/vba/2015/excel/run-macro-without-opening-excel-using-vbscript/
answered Oct 13, 2016 at 8:46
Julien KroneggJulien Kronegg
4,9231 gold badge46 silver badges60 bronze badges
3
If the VBA in the Excel macro doesn’t reference Excel objects, you can just copy the code into a text file and change the extension to .VBS. However, VB script doesn’t like it when you use types, just delete the «AS something» from your Dim statement.
I do this often to get the benefit of Intellisense, which I wouldn’t have using Notepad.
If my assumption is correct, then you probably want to change your tags to VB Scripting instead of Excel to get appropriate help.
answered Oct 6, 2012 at 15:07
Robert CoRobert Co
1,7158 silver badges14 bronze badges
If I understand that right, you can simply write VBS code in a text file and rename it to .vbs
(make sure file endings are visible in Windows). On doubleclick the file is executed by the Windows Scripting Host. VBS lacks some functionality of VBA but you can do a lot with CreateObject/GetObject.
answered Oct 6, 2012 at 11:56
KekuSemauKekuSemau
6,8214 gold badges25 silver badges34 bronze badges
1
Though the learning curve may be a bit steep, but you could consider using AutoHotKey. This allows you to create your own scripts and if so desired turn them into (rather large) .exe files. AutoHotKey is free!
answered Oct 7, 2012 at 9:45
Robert IlbrinkRobert Ilbrink
7,6982 gold badges22 silver badges31 bronze badges
write a cmd or ps1 that opens an excel and in that excel’s startup run your macro… and then when finished close it.
this can be a solution but you are probably doing something which is unnecessary in correct planned environments.
answered Oct 23, 2012 at 13:44
SerdarSerdar
1,4062 gold badges17 silver badges42 bronze badges
0 / 0 / 0 Регистрация: 09.06.2011 Сообщений: 33 |
|
1 |
|
Как открыть книгу без выполнения макросов15.10.2012, 19:15. Показов 18932. Ответов 7
Помогите открыть файл Excel vba, я туда вписала код: на закрытие программы
0 |
5468 / 1148 / 50 Регистрация: 15.09.2012 Сообщений: 3,514 |
|
15.10.2012, 19:23 |
2 |
Викулька, не понятно, что у вас за задача.
1 |
0 / 0 / 0 Регистрация: 09.06.2011 Сообщений: 33 |
|
15.10.2012, 19:26 [ТС] |
3 |
мне нужно открыть проект мой, я нечайно вписала код который мне не дает открыть код vba и оттудова убрать его, я в него вложила почти 2 часа и не хотела бы его переделывать
0 |
5468 / 1148 / 50 Регистрация: 15.09.2012 Сообщений: 3,514 |
|
15.10.2012, 19:29 |
4 |
Викулька, у меня открывается ваш файл и в VBA я вижу форму.
1 |
3217 / 966 / 223 Регистрация: 29.05.2010 Сообщений: 2,085 |
|
15.10.2012, 19:32 |
5 |
Решения этой проблемы: Запуск Excel, отключить макросы, закрыть Excel, запустить Ваш файл и исправить код и получится:
1 |
0 / 0 / 0 Регистрация: 09.06.2011 Сообщений: 33 |
|
15.10.2012, 19:39 [ТС] |
6 |
вот спасибо, а я думала все клинцы на шею))), а не подскажите как сделать что бы при закрытии формы закрыть не только ее но и Excel
0 |
3217 / 966 / 223 Регистрация: 29.05.2010 Сообщений: 2,085 |
|
15.10.2012, 19:51 |
7 |
Вставь тот опасный код (строку) в процедуру выхода из формы и будет счастье.
1 |
Заблокирован |
|
16.10.2012, 08:41 |
8 |
Вариант —
3 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
16.10.2012, 08:41 |
8 |
Как запустить макрос при любом старте EXCEL, включая случаи передачи данных из приложений, например, из FineReader распознанный текст. Книга с этими данными не сохранена еще на диске. |
|
ikki Пользователь Сообщений: 9709 |
файл с макросом — в папку XLSTART фрилансер Excel, VBA — контакты в профиле |
Не получается так. |
|
ikki Пользователь Сообщений: 9709 |
гм?.. пс. про Personal.xls я вообще не говорил. это то же самое? фрилансер Excel, VBA — контакты в профиле |
Может кто-нибудь знает как обработать «УПАВШИЕ» в EXCEL данные из другого приложения с помощью макросов? |
|
Alex_ST Пользователь Сообщений: 2746 На лицо ужасный, добрый внутри |
Вы что, хотите сказать, что при открытии Ёкселя, когда автоматом создаётся ещё не сохраненная нигде пустая Книга1, у вас не открывается, лежащий в папке XLSTART файл Personal.xls и не отрабатываются его события? С уважением, Алексей (ИМХО: Excel-2003 — THE BEST!!!) |
ИМЕННО ТАК, ПОПРОБУЙТЕ САМИ. |
|
ran Пользователь Сообщений: 7091 |
Тоже засомневался и проверил. |
может быть, я чего-то не понимаю, охота разобраться, т.к., хоть до сих пор не использовал такую возможность, но сейчас, благодаря этому форуму, кажется, нашёл реальное применение в своей работе. |
|
Serge Пользователь Сообщений: 11308 |
При выгрузке из 1С не происходит события открытия (запуска) Экса. |
Alex_ST Пользователь Сообщений: 2746 На лицо ужасный, добрый внутри |
Не поленился, проверил. С уважением, Алексей (ИМХО: Excel-2003 — THE BEST!!!) |
слэн Пользователь Сообщений: 5192 |
попробуйте грузить в ворд — там шаблон всегда грузится, а в нем можно макрос запускать |
Alex_ST Пользователь Сообщений: 2746 На лицо ужасный, добрый внутри |
{quote}{login=The_Prist}{date=28.03.2011 10:05}{thema=}{post}…Сторонние приложения запускают Excel типа в безопасном режиме(вроде как с зажатой клавишей Shift). Так что все макросы и надстройки игнорируются {/post}{/quote} С уважением, Алексей (ИМХО: Excel-2003 — THE BEST!!!) |
{quote}{login=Mijver}{date=27.03.2011 01:54}{thema=Запуск макроса при любом старте EXCEL}{post}Как запустить макрос при любом старте EXCEL, включая случаи передачи данных из приложений, например, из FineReader распознанный текст. Книга с этими данными не сохранена еще на диске.{/post}{/quote} КАК Я ПОНЯЛ — НАДО РУКАМИ СОХРАНЯТЬ ФАЙЛ «УПАВШИЙ» ИЗ ПРИЛОЖЕНИЯ, ПОТОМ ЗАСТАВИТЬ ЕГО ИСКАТЬ, ЧТОБЫ ЗАПУСТИЛСЯ МАКРОС… ИЛИ В ПРИЛОЖЕНИИ КОВЫРЯТЬСЯ, ЕСЛИ ОНО ПОЗВОЛИТ… |
|
Hugo Пользователь Сообщений: 23252 |
А может vbs запустить? Set objExcel = GetObject(, «Excel.Application») |
ran Пользователь Сообщений: 7091 |
Из файнридера не грузится. |
Mijver: «КАК Я ПОНЯЛ — НАДО РУКАМИ СОХРАНЯТЬ ФАЙЛ «УПАВШИЙ» ИЗ ПРИЛОЖЕНИЯ». И не иначе — вы указываете Абби куда передать распознанное, вызывается соответствующее приложение и в него помещаются данные, как вы с ними согласились — запомнили. Нет, назад в Абби, правите в Абби, и снова передача… Во всяком случае даже по «короткой» дорожке (зависит от версии)- автоматом распознать и передать в XL — требуется сохранять под указанным именем. Или что-то не договаривают… |
|
СПАСИБО ЗА ОБСУЖДЕНИЕ. |
|
Не думал, что это может кого-то раздражать. Извините, если что не так. Я думал здесь не буквы читают а мысли. |
|
Юрий М Модератор Сообщений: 60581 Контакты см. в профиле |
{quote}{login=Mijver}{date=28.03.2011 11:09}{thema=Re: }{post}Я думал здесь не буквы читают а мысли.{/post}{/quote} |
ikki Пользователь Сообщений: 9709 |
вот, встретил у Уокенбаха: переключатель командной строки /automation фрилансер Excel, VBA — контакты в профиле |
ZVI Пользователь Сообщений: 4328 |
Из других приложениий Excel, как правило, запускается в режиме автоматизации через CreateObject(«Excel.Application»). При этом создается отдельный объект (класса) Excel без загрузки надстроек, кроме COM-надстроек. То есть, если создать свою COM-надстройку и подключить её к Excel, то такая надстройка, в принципе, позволит контролировать Excel. |
dimaqw Пользователь Сообщений: 1 |
#23 28.05.2012 12:50:31 думаю оно. во всяком случая очень нужная вещь: http://www.excel-vba.ru/chto-umeet-excel/kak-otsledit-sobytienaprimer-vydelenie-yacheek-v-lyuboj-knige/ |
Download Article
Download Article
This wikiHow will teach you how to run macros in Excel automatically when you open a specific workbook, or how to create a macro that opens all your workbooks when you open Excel. Before you start, make sure you have the developer tab showing on the editing ribbon.
-
1
Make sure the Developer tab is displayed on your editing ribbon. If it isn’t and you’re using a Windows computer, go to the File tab and click Options > Customize ribbon. Under «Main tabs» check the box next to «Developer.»
- If you’re using a Mac, you’ll be able to enable the developer tab by going to Excel > Preferences (the menu at the top of your screen) then clicking Ribbon & Toolbar. In the «Customize the Ribbon» category, click the «Developer» checkbox and click Save.
-
2
Click the Developer tab and select Visual Basic.
Advertisement
-
3
Double-click your workbook from the panel on the left. You’ll see it listed under «VBA Project,» but if you don’t see it, click to expand the «VBA Project» folder.
-
4
Enter the following code:
Private Sub Workbook_Open() Put your Macro-code here End Sub
-
5
Close the Visual Basic Editor. You don’t have to click save or anything before closing the editor.
- The next time you open this workbook, the macro code you entered between the sub and end sub lines will run.[1]
- The next time you open this workbook, the macro code you entered between the sub and end sub lines will run.[1]
Advertisement
-
1
Make sure the Developer tab is displayed on your editing ribbon. If it isn’t and you’re using a Windows computer, go to the File tab and click Options > Customize ribbon. Under «Main tabs» check the box next to «Developer.»
- If you’re using a Mac, you’ll be able to enable the developer tab by going to Excel > Preferences (the menu at the top of your screen) then clicking Ribbon & Toolbar. In the «Customize the Ribbon» category, click the «Developer» checkbox and click Save.
- This macro will open all the worksheets you want to open when you launch Excel, which is highly useful if you work on a few different projects each day.
-
2
Click Record Macro. It’s in the «Developer» tab in the «Code» grouping.
-
3
Enter your macro name. Name it something like «Auto_Open» so you can read the title and know what it does.
-
4
Click Personal Macro Workbook. You’ll see this in the «Store macro in» box and will make the macro available every time you open Excel.
- You can fill out the description to remind you specifically of what this macro does.
-
5
Click Ok. That window will close and every keystroke or button press will be recorded in the macro.
-
6
Click the File and click Open. Your file manager will open.
-
7
Select all the workbooks you want to open when you open Excel. If you need to select files in different locations, hold down Shift and click them.
-
8
Click Stop Recording. All the keystrokes and button presses you made are recorded and stored in the macro.
-
9
Close Excel. You’ll be prompted to save the changes you’ve made, so click Yes and your macro will open all those workbooks whenever you restart Excel.
Advertisement
Ask a Question
200 characters left
Include your email address to get a message when this question is answered.
Submit
Advertisement
Thanks for submitting a tip for review!
References
About This Article
Article SummaryX
1. Make sure the Developer tab is displayed on your editing ribbon.
2. Open VBA.
3. Double-click your workbook from the panel on the left.
4. Enter the displayed code.
5. Close the Visual Basic Editor.
Did this summary help you?
Thanks to all authors for creating a page that has been read 10,106 times.
Is this article up to date?
У меня есть код VBA, который вызывает мою процедуру при открытии этого Excel.
Sub WorkBook_Open()
Call Sheets("Result").main
End Sub
Меня беспокоит то, что основная функция будет отправлять электронную почту. Так что в будущем, если я захочу отредактировать этот Excel, как я могу открыть его, не вызывая вызов?
Сначала я хотел использовать командную строку для ежедневного запуска функции vba и автоматически отправлять этот отчет.
2018-01-10 16:39
3
ответа
Решение
- Откройте приложение Excel.
- Перейдите в Файл ~ Открыть или Файл ~ Недавние.
- Удерживайте Shift при открытии файла.
NB. Это не сработает, просто выбрав рабочую книгу Excel для открытия.
Вам нужно сначала открыть Excel, а затем открыть книгу.
Редактировать:
Меня беспокоит то, что основная функция будет отправлять электронную почту.
Не добавляйте свой код в Workbook_Open
событие, вместо этого добавьте его в событие нажатия кнопки — оно никогда не будет отправлять электронные письма, пока вы не нажмете кнопку.
2018-01-10 16:54
Вам не нужно сначала открывать Excel. Просто удерживайте нажатой клавишу Shift, дважды щелкнув файл .xlsm.
2022-11-14 20:31
Я нашел для себя следующие работы в Office 365 (возможно, и в других версиях Excel):
- Открывайте Excel напрямую, не щелкайте книгу дважды, чтобы запустить Excel
- Файл / Открыть / Обзор
- Перейдите к книге, которую хотите открыть, щелкните по ней одним щелчком мыши
- Щелкните раскрывающийся список рядом с «Открыть» и «Открыть в защищенном просмотре».
Если вы хотите продолжить редактирование на этом этапе, вам нужно будет щелкнуть «Разрешить редактирование» во всплывающем окне, которое должно появиться прямо под строкой меню. Когда я это делаю, у меня есть макросы, которые пытаются сразу же запустить, но не работают, и я могу редактировать VBA. YMMV есть.
2020-09-01 16:31