Π Π°Π±ΠΎΡ‚Π° с внСшними прилоТСниями ΠΈ автоматизация Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ часто Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ с офисными ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ ΠΈΠ»ΠΈ спСциализированным ПО. ПониманиС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ макрос, являСтся критичСски Π²Π°ΠΆΠ½Ρ‹ΠΌ Π½Π°Π²Ρ‹ΠΊΠΎΠΌ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ администраторов систСмы. Ошибки Π½Π° этом этапС ΠΌΠΎΠ³ΡƒΡ‚ привСсти Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ сбою ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ скрипта, Π½ΠΎ ΠΈ ΠΊ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡŽ цСлостности Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ выполнСния макросов Π² срСдС 1Π‘ базируСтся Π½Π° Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ COM-соСдинСния (Component Object Model). Π­Ρ‚ΠΎ позволяСт ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ Π² Ρ€ΠΎΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ внСшним сСрвСром Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ Microsoft Excel ΠΈΠ»ΠΈ Word. Однако соврСмСнныС вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ уТСсточили трСбования ΠΊ бСзопасности, поэтому простой Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ настройки ΠΏΡ€Π°Π² доступа.

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ тСхничСскиС Π½ΡŽΠ°Π½ΡΡ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, способы ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ситуаций. Π’Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Ρ… ошибок ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ внСшнСй ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ обСспСчитС ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ выполнСния ΠΊΠΎΠ΄Π° Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅.

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° окруТСния ΠΈ настройка бСзопасности

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ любой внСшний скрипт, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ конфигурация Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π’ соврСмСнных Ρ€Π΅Π»ΠΈΠ·Π°Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ дСйствуСт Ρ€Π΅ΠΆΠΈΠΌ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½ΠΎΠΉ бСзопасности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. Администратор Π΄ΠΎΠ»ΠΆΠ΅Π½ явно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ внСшниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ допустимы ΠΊ использованию.

Для этого Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€ слСдуСт ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ свойства Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ€ΠΎΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΏΡ€Π°Π² доступа Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΡƒΠ½ΠΊΡ‚, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Π·Π° внСшниС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ соСдинСния. Если Π³Π°Π»ΠΎΡ‡ΠΊΠ° Π½Π΅ установлСна, ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ ошибкой выполнСния, нСзависимо ΠΎΡ‚ коррСктности-syntaxΠ° ΠΊΠΎΠ΄Π°.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€Π°Π² Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ всСм ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π±Π΅Π· Ρ€Π°Π·Π±ΠΎΡ€Π° создаСт ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π² систСмС бСзопасности. ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΠΉΡ‚Π΅ этот доступ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚Π΅Ρ… Ρ€ΠΎΠ»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ это Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Ρƒ.

Π’Π°ΠΊΠΆΠ΅ стоит ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ установлСнного Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ мСстС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. ΠœΠ°ΠΊΡ€ΠΎΡ Π½Π΅ смоТСт Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΡΡ, Ссли Ρ†Π΅Π»Π΅Π²ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Excel, Π½Π΅ инсталлировано ΠΈΠ»ΠΈ Π΅Π³ΠΎ вСрсия нСсовмСстима с Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ. Часто ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° кроСтся Π² разрядности ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ: 32-битная вСрсия 1Π‘ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ со взаимодСйствиС с 64-Π±ΠΈΡ‚Π½Ρ‹ΠΌ Office, ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚.

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ€Π΅ΠΆΠΈΠΌ совмСстимости ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π½Π΅ Π½ΠΈΠΆΠ΅ 8.3.10 для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΎΠ²Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ инструмСнтом для Ρ€Π°Π±ΠΎΡ‚Ρ‹ являСтся встроСнная функция Новый("COMΠžΠ±ΡŠΠ΅ΠΊΡ‚"). Она ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ строковый ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ класса (ProgID), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠ½ΠΈΠΊΠ°Π»Π΅Π½ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ прилоТСния. НапримСр, для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Excel ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ "Excel.Application". УспСшноС созданиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ систСма нашла ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ Π² рССстрС Windows.

ПослС ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ скрыт ΠΎΡ‚ Π³Π»Π°Π· ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ часто трСбуСтся ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ. Π­Ρ‚ΠΎ достигаСтся присваиваниСм свойства Visible значСния Π˜ΡΡ‚ΠΈΠ½Π°.

Рассмотрим Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ дСмонстрируСт созданиС экзСмпляра ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π΅Π³ΠΎ состояния:

ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°

Excel = Новый("COMΠžΠ±ΡŠΠ΅ΠΊΡ‚", "Excel.Application");

Excel.Visible = Π˜ΡΡ‚ΠΈΠ½Π°;

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ создан ΠΈ Π·Π°ΠΏΡƒΡ‰Π΅Π½");

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Ошибка ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ: " + ОписаниСОшибки());

ΠšΠΎΠ½Π΅Ρ†ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠΈ;

ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ Π²Π°ΠΆΠ½ΠΎ ΠΎΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°..Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. Π­Ρ‚ΠΎ позволяСт ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ установлСно, Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ΠΎ антивирусом ΠΈΠ»ΠΈ ΡƒΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. Π‘Π΅Π· Ρ‚Π°ΠΊΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибка выполнСния ΠΏΡ€Π΅Ρ€Π²Π΅Ρ‚ вСсь сСанс Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Ρ‡Ρ‚ΠΎ нСдопустимо Π² ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрном Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

πŸ“Š Π‘ ΠΊΠ°ΠΊΠΈΠΌ офисным ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ Π²Ρ‹ Ρ‡Π°Ρ‰Π΅ всСго ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ 1Π‘?
Microsoft Office
LibreOffice
OpenOffice
Волько встроСнныС срСдства 1Π‘

Запуск макроса Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄ Application.Run

НаиболСС Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ способ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ макрос, написанный Π½Π° VBA (Visual Basic for Applications), β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Run ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° прилоТСния. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ имя макроса Π² Π²ΠΈΠ΄Π΅ строки. Имя Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ Excel, учитывая рСгистр символов, хотя Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв систСма Π½Π΅Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Π° ΠΊ рСгистру.

Если макрос находится Π² Π»ΠΈΡ‡Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ макросов ΠΈΠ»ΠΈ Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅, ΠΏΡƒΡ‚ΡŒ ΠΊ Π½Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ уточнСния. Бинтаксис Π²Ρ‹Π·ΠΎΠ²Π° выглядит ΠΊΠ°ΠΊ ИмяКниги!Π˜ΠΌΡΠœΠ°ΠΊΡ€ΠΎΡΠ°. Если ΠΊΠ½ΠΈΠ³Π° Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½Π°, систСма ΠΈΡ‰Π΅Ρ‚ макрос Π²ΠΎ всСх доступных надстройках ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ…. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°ΠΌ ΠΈΠΌΠ΅Π½, Ссли Π² Ρ€Π°Π·Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ… ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ названиями.

Для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π² макрос ΠΎΠ½ΠΈ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ послС ΠΈΠΌΠ΅Π½ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ автоматичСски ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, пСрСдавая ΠΈΡ… Π² срСду VBA. Однако слоТныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ массивы ΠΈΠ»ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ.

  • πŸš€ ΠŸΡ€ΡΠΌΠΎΠΉ Π²Ρ‹Π·ΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· Run обСспСчиваСт Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ выполнСния ΠΊΠΎΠ΄Π°.
  • πŸ›‘οΈ Π˜Π·ΠΎΠ»ΡΡ†ΠΈΡ процСсса: макрос выполняСтся Π² контСкстС Excel, Π½Π΅ затрагивая ΠΏΠΎΡ‚ΠΎΠΊ 1Π‘.
  • βš™οΈ Π“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ: Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… (числа, строки, Π΄Π°Ρ‚Ρ‹).

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ макроса Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΡ‚ΠΎΠΊ 1Π‘ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° внСшний процСсс Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ. Если макрос выполняСт Π΄ΠΎΠ»Π³ΠΈΠ΅ вычислСния ΠΈΠ»ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ Π²Π²ΠΎΠ΄Π° ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, интСрфСйс 1Π‘ "зависнСт". ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π»ΡƒΡ‡ΡˆΠ΅ Π²Ρ‹Π½ΠΎΡΠΈΡ‚ΡŒ Π² Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Π΅ задания ΠΈΠ»ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ самого макроса.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π² настройках Ρ†Π΅Π½Ρ‚Ρ€Π° управлСния Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ Excel Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ макросов. Если стоит Π·Π°ΠΏΡ€Π΅Ρ‚, ΠΌΠ΅Ρ‚ΠΎΠ΄ Run Π²Π΅Ρ€Π½Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ, Π΄Π°ΠΆΠ΅ Ссли ΠΊΠΎΠ΄ написан Π²Π΅Ρ€Π½ΠΎ.

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹: Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΈΠ· модуля

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… сцСнариях использованиС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Run ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли трСбуСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ нСбольшой Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° "Π½Π° Π»Π΅Ρ‚Ρƒ" Π±Π΅Π· создания ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π² ΠΊΠ½ΠΈΠ³Π΅. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ±Π΅Π³Π°ΡŽΡ‚ ΠΊ записи ΠΊΠΎΠ΄Π° Π² Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΈ Π΅Π³ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ запуску, хотя это ΠΌΠ΅Π½Π΅Π΅ бСзопасный ΠΏΡƒΡ‚ΡŒ.

Π‘ΠΎΠ»Π΅Π΅ Π»Π΅Π³ΠΈΡ‚ΠΈΠΌΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² использовании событийных ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΈΠ»ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠ½ΠΈΠ³ΠΈ. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ лист, Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Π½Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹Π΅, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ пСрСсчСта ΠΈΠ»ΠΈ форматирования, встроСнный Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ листа. Π­Ρ‚ΠΎ сниТаСт Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… макросов.

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Ссли Π·Π°Π΄Π°Ρ‡Π° Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ выполнСния скрипта, ΠΌΠΎΠΆΠ½ΠΎ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ строку с ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅Ρ‘ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Ссли Ρ†Π΅Π»Π΅Π²ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚Π°ΠΊΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ScriptControl, хотя Π΅Π³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π² Π½ΠΎΠ²Ρ‹Ρ… вСрсиях Windows ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π°). Π’ контСкстС 1Π‘ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ Π² Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… модулях Excel.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π½Π΅ стоит Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ макросов прямо Π² 1Π‘?

Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° VBA Π² Π²ΠΈΠ΄Π΅ строк Π² Π±Π°Π·Π΅ 1Π‘ услоТняСт ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ, Π»ΠΈΡˆΠ°Π΅Ρ‚ подсвСтки синтаксиса ΠΈ затрудняСт вСрсионированиС Π»ΠΎΠ³ΠΈΠΊΠΈ внСшнСй ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π›ΡƒΡ‡ΡˆΠ΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ макросы Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ….xlsm.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ΠšΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ β€” Π·Π°Π»ΠΎΠ³ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ систСмы. ПослС выполнСния макроса Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ занятыС рСсурсы. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ Quit Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° прилоТСния. Если этого Π½Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, процСссы Excel ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ Π²ΠΈΡΠ΅Ρ‚ΡŒ Π² диспСтчСрС Π·Π°Π΄Π°Ρ‡, постСпСнно потрСбляя ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ.

ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ слСдуСт ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ ситуации, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Excel Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ скрипта. Π’ этом случаС ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ обращСния ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ Π² 1Π‘ Π²Ρ‹Π·ΠΎΠ²ΡƒΡ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ созданиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΠ»ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ сообщСниС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΎ нСобходимости пСрСзапуска.

Π’Π°Π±Π»ΠΈΡ†Π° Π½ΠΈΠΆΠ΅ дСмонстрируСт основныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ управлСния ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°:

ΠœΠ΅Ρ‚ΠΎΠ΄ НазначСниС Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
Quit() Π—Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ освобоТдаСт рСсурсы НСт
Run("Name") ЗапускаСт макрос ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ макроса
Workbooks.Open() ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠ½ΠΈΠ³Ρƒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Книги
DisplayAlerts = Π›ΠΎΠΆΡŒ ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π° ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ НСт (свойство)

РСкомСндуСтся ΠΏΠ΅Ρ€Π΅Π΄ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ΠΌ прилоТСния ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ свойство DisplayAlerts Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π›ΠΎΠΆΡŒ. Π­Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ появлСниС Π½Π°Π·ΠΎΠΉΠ»ΠΈΠ²Ρ‹Ρ… ΠΎΠΊΠΎΠ½ с вопросами Ρ‚ΠΈΠΏΠ° "Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ измСнСния?", ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ²ΠΈΡΠ½ΡƒΡ‚ΡŒ Π² Ρ„ΠΎΠ½Π΅ ΠΈ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ скрипт. ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ свойство ΠΌΠΎΠΆΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π² исходноС состояниС.

πŸ’‘

ВсСгда явно Π²Ρ‹Π·Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Quit() ΠΈ присваивайтС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ НСопрСдСлСно для Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ освобоТдСния памяти ОБ.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΌ ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрном Ρ€Π΅ΠΆΠΈΠΌΠ΅

АрхитСктура запуска макросов ΠΊΠ°Ρ€Π΄ΠΈΠ½Π°Π»ΡŒΠ½ΠΎ различаСтся Π² зависимости ΠΎΡ‚ Ρ€Π΅ΠΆΠΈΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ 1Π‘. Π’ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ ΠΊΠΎΠ΄ выполняСтся Π½Π° Ρ‚ΠΎΠΉ ΠΆΠ΅ машинС, Π³Π΄Π΅ Π·Π°ΠΏΡƒΡ‰Π΅Π½ ΠΊΠ»ΠΈΠ΅Π½Ρ‚. Π—Π΄Π΅ΡΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с доступом ΠΊ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°ΠΌ ΠΈ прилоТСниям ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€Π°Π²Π° Π² Windows.

Π’ ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрном Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ (SQL) ситуация слоТнСС. Код Π½Π° сСрвСрС Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ доступа ΠΊ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌΡƒ столу ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Excel. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π° сторонС сСрвСра ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС ΠΈΠ»ΠΈ зависанию слуТбы. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ макросов Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ строго Π½Π° сторонС толстого ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΠ½ΠΊΠΈΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ с использованиСм Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ, запускаСмых локально.

Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚Π°ΠΊΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΊΠ°Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Ρ‚Π°ΠΌ. Π›ΠΈΠ±ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°: сСрвСрная Ρ‡Π°ΡΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», Π° клиСнтская Ρ‡Π°ΡΡ‚ΡŒ (Π² Ρ„ΠΎΡ€ΠΌΠ΅) запускаСт макрос, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ считываСт этот Ρ„Π°ΠΉΠ».

ℹ️ ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘ ΠΈ установлСнной вСрсии Office. ВсСгда тСстируйтС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π° Ρ†Π΅Π»Π΅Π²ΠΎΠΉ инфраструктурС ΠΏΠ΅Ρ€Π΅Π΄ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ΠΌ.

  • πŸ–₯️ Π’ Ρ‚ΠΎΠ½ΠΊΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ управляСмого прилоТСния с ограничСниями.
  • πŸ’Ύ Π€Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ прСдоставляСт ΠΏΠΎΠ»Π½Ρ‹ΠΉ доступ ΠΊ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ рСсурсам ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.
  • 🌐 Π’Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΠ· Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°.

ПониманиС этих Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Ρ… ошибок ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ систСмы. Если бизнСс-процСсс Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ участия Excel, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ мСста с установлСнным офисным ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ ΠΈ ΠΏΡ€Π°Π²Π°ΠΌΠΈ Π½Π° запуск скриптов.

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΠ΅Ρ€Π΅Π΄ запуском макроса

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 5

Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы (FAQ)

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка "НСвСрный Ρ‚ΠΈΠΏ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°" ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ макроса?

Π­Ρ‚Π° ошибка часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΈΠ·-Π·Π° нСсоотвСтствия Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… ΠΈΠ· 1Π‘ Π² VBA. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ 1Π‘ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, БправочникБсылка) Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ. НСобходимо ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π² строку ΠΈΠ»ΠΈ число. Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ порядок Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² совпадаСт с объявлСниСм Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ VBA.

МоТно Π»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ макрос Π² 1Π‘ Π±Π΅Π· установлСнного Excel?

НСт, тСхнология COM Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ наличия сСрвСра Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ самого прилоТСния Excel, зарСгистрированного Π² систСмС. Π‘Π΅Π· установлСнной ΠΊΠΎΠΏΠΈΠΈ Office ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Excel.Application Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использованиС сторонних Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ xlsx Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Π±Π΅Π· запуска Excel.

Как ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ массив ΠΈΠ· 1Π‘ Π² макрос Excel?

ΠŸΡ€ΡΠΌΠ°Ρ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° массивов 1Π‘ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ. Π›ΡƒΡ‡ΡˆΠΈΠΉ способ β€” ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π² Excel ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Scripting.Dictionary ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ бСзопасный массив Variant, Π·Π°ΠΏΠΎΠ»Π½ΠΈΠ² Π΅Π³ΠΎ Ρ‡Π΅Ρ€Π΅Π· Ρ†ΠΈΠΊΠ». Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ячССк, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ макрос Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

БСзопасно Π»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ макросы ΠΈΠ· Π½Π΅ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Ρ… источников?

ΠšΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ‡Π΅ΡΠΊΠΈ Π½Π΅Ρ‚. ΠœΠ°ΠΊΡ€ΠΎΡΡ‹ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ доступ ΠΊ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС ΠΈ рСсурсам ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΏΠΎΠ΄ ΠΏΡ€Π°Π²Π°ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΈΠ· Π½Π΅Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ источника ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π·Π°Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ вирусом-ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π»ΡŒΡ‰ΠΈΠΊΠΎΠΌ ΠΈΠ»ΠΈ ΡƒΡ‚Π΅Ρ‡ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…. ВсСгда провСряйтС ΠΊΠΎΠ΄ макроса ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠ΅ΠΉ.

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Excel Π½Π΅ закрываСтся послС выполнСния макроса?

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² ΠΊΠΎΠ΄Π΅ 1Π‘ ΠΎΡΡ‚Π°Π»Π°ΡΡŒ ссылка Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ (ΠΊΠ½ΠΈΠ³Ρƒ, лист, Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½). НСобходимо явно ΠΎΠ±Π½ΡƒΠ»ΠΈΡ‚ΡŒ всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Excel, присвоив ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ НСопрСдСлСно, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Quit().