Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ с внСшним ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ обСспСчСниСм часто Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ использования Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ мСТпроцСссного взаимодСйствия. Одной ΠΈΠ· самых распространСнных ΠΈ ΠΌΠΎΡ‰Π½Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ для этих Ρ†Π΅Π»Π΅ΠΉ являСтся COM (Component Object Model). Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ экзСмпляры ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… прилоТСниях, ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠΌΠΈ нСпосрСдствСнно ΠΈΠ· ΠΊΠΎΠ΄Π° 1Π‘. ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΡˆΠΈΡ€ΠΎΠΊΠΈΠ΅ возмоТности для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΎΠ±ΠΎΡ€ΠΎΡ‚Π°, формирования ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² Π² Excel ΠΈ управлСния ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΌΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ.

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ тСхничСскиС особСнности создания COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², синтаксис Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ свойств, Π° Ρ‚Π°ΠΊΠΆΠ΅ способы ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ критичСских ошибок, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с внСшними ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ. ПониманиС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Automation Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ стрСмится Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ стандартных срСдств ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

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

ВСхнология COM ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ взаимодСйствия

ВСхнология COM прСдставляСт собой стандарт Microsoft, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ способ взаимодСйствия ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². Π’ контСкстС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘ это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌΠΈ прилоТСниями, ΠΊΠ°ΠΊ Microsoft Word, Excel, Outlook ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ спСциализированными Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°ΠΌΠΈ оборудования. Автоматизация процСссов происходит Π·Π° счСт Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ 1Π‘ выступаСт Π² Ρ€ΠΎΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Π° внСшнСС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ β€” Π² Ρ€ΠΎΠ»ΠΈ сСрвСра ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

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

ВзаимодСйствиС строится Π½Π° Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ свойств ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Бинтаксис 1Π‘ позволяСт ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π½ΠΈΠΌ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ это ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ встроСнного языка, ΠΎΠ΄Π½Π°ΠΊΠΎ Π·Π° кулисами происходит сСриализация Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅ΠΆΠΏΡ€ΠΎΡ†Π΅ΡΡΠ½ΡƒΡŽ Π³Ρ€Π°Π½ΠΈΡ†Ρƒ. ДиспСтчСризация запросов обСспСчиваСт Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠ½ΠΈΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ Π²Ρ‹Π·ΠΎΠ²Π°ΠΌΠΈ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π Π°Π±ΠΎΡ‚Π° с COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² толстом ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ ΠΈΠ»ΠΈ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ прилоТСния. Π’ Ρ‚ΠΎΠ½ΠΊΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ ΠΈ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ данная тСхнология Π½Π΅ поддСрТиваСтся ΠΈΠ· сообраТСний бСзопасности ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Ρ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ.

πŸ’‘

Для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ всСгда провСряйтС Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ПО Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ станции ΠΏΠ΅Ρ€Π΅Π΄ запуском ΠΊΠΎΠ΄Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅Π³ΠΎ внСшниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ инициализация ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

Основной ΠΌΠ΅Ρ‚ΠΎΠ΄ для создания экзСмпляра внСшнСго ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° β€” это Новый COMΠžΠ±ΡŠΠ΅ΠΊΡ‚. Π’ качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π΅ΠΌΡƒ пСрСдаСтся строковоС имя класса, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ зарСгистрировано Π² систСмС. Если ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ создан ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, пСрСмСнная ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ ссылку Π½Π° Π½Π΅Π³ΠΎ, ΠΈ Π²Ρ‹ смоТСтС Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ.

Рассмотрим классичСский ΠΏΡ€ΠΈΠΌΠ΅Ρ€ создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ Excel. Имя класса ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ выглядит ΠΊΠ°ΠΊ Excel.Application. ПослС создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π΅Π³ΠΎ часто Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, установив ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ свойство Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π˜ΡΡ‚ΠΈΠ½Π°.

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

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

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

Книга = Excel.Workbooks.Add();

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

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("НС ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Excel: " + ОписаниСОшибки());

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

Π’Π°ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ созданиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ опСрационная систСма Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ исполняСмый Ρ„Π°ΠΉΠ» внСшнСго прилоТСния Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π»ΠΎΠΊΠ° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ всСй ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΏΡ€ΠΈ отсутствии Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ПО.

  • πŸš€ Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ установлСно ΠΈ зарСгистрировано Π² систСмС.
  • πŸ”’ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΏΡ€Π°Π²Π° доступа ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΊ запуску Π²Π½Π΅ΡˆΠ½ΠΈΡ… процСссов.
  • βš™οΈ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠΎΠ»Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° классов (ProgID) для избСТания ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ².
  • πŸ›‘οΈ ВсСгда ΠΎΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΠΉΡ‚Π΅ созданиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°...Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.
πŸ“Š Π‘ ΠΊΠ°ΠΊΠΈΠΌ COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅ всСго?
Excel
Word
Outlook
Π”Ρ€ΡƒΠ³ΠΎΠ΅ (ADODB, FileSystemObject)

Π’Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° со свойствами

ПослС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ создания экзСмпляра Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ доступ ΠΊ Π΅Π³ΠΎ интСрфСйсу. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹, Π° свойства ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ состояниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Бинтаксис Π²Ρ‹Π·ΠΎΠ²Π° Π² 1Π‘ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π΅Π½ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ.

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

Часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ. НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с листом ΠΊΠ½ΠΈΠ³ΠΈ Excel, Π½ΡƒΠΆΠ½ΠΎ сначала ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ листов, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ элСмСнт. Вакая Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ довольно Π΄Π»ΠΈΠ½Π½ΠΎΠΉ, поэтому рСкомСндуСтся ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Π΅ ссылки Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ΠœΠ΅Ρ‚ΠΎΠ΄/Бвойство НазначСниС Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΉ Ρ‚ΠΈΠΏ
Excel.Application Workbooks.Add() Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ Workbook
Workbook Sheets.Item(1) ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ листа Worksheet
Worksheet Range("A1") ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ ячСйкС Range
Range Value Π§Ρ‚Π΅Π½ΠΈΠ΅ значСния Variant
Application Quit() Π—Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ прилоТСния НСт

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с коллСкциями ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² индСксы часто Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с 1, Π° Π½Π΅ с 0, ΠΊΠ°ΠΊ это принято Π² массивах 1Π‘. Π’Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ·ΡƒΡ‡Π°ΠΉΡ‚Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ.

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

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… COM-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ. Π’ 1Π‘ это рСализуСтся Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ структуры с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΏΠΎΠ»Π΅ΠΉ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Π»ΠΈΠ±ΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ с Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ пустых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ситуаций

Π Π°Π±ΠΎΡ‚Π° с внСшними ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ Π½Π΅Ρ€Π°Π·Ρ€Ρ‹Π²Π½ΠΎ связана с риском возникновСния ошибок. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ установлСно, Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ Π΄Ρ€ΡƒΠ³ΠΈΠΌ процСссом, ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ Π² интСрфСйсС внСшнСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π² Π΄Π°Π½Π½ΠΎΠΌ контСкстС являСтся критичСски Π²Π°ΠΆΠ½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°.

Π›ΡŽΠ±ΠΎΠΉ Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½ конструкциСй ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°...Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. Π’ Π±Π»ΠΎΠΊΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ сбоя. Часто ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ· свойства ОписаниСОшибки(), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ тСкст сообщСния ΠΎΡ‚ внСшнСго прилоТСния.

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

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

ΠžΠ±ΡŠΠ΅ΠΊΡ‚.ΠœΠ΅Ρ‚ΠΎΠ΄(ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€);

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

КодОшибки = Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΡ€.КодОшибки;

Если КодОшибки = 0 Π’ΠΎΠ³Π΄Π°

// Ошибка соСдинСния ΠΈΠ»ΠΈ нСдоступности ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ нСдоступСн");

Π˜Π½Π°Ρ‡Π΅

// Ошибка Π²Π½ΡƒΡ‚Ρ€ΠΈ Π»ΠΎΠ³ΠΈΠΊΠΈ внСшнСго прилоТСния

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Ошибка выполнСния: " + ОписаниСОшибки());

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

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

  • πŸ” ВсСгда Π»ΠΎΠ³ΠΈΡ€ΡƒΠΉΡ‚Π΅ тСкст ошибки для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°.
  • πŸ”„ Π Π΅Π°Π»ΠΈΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Ρ… ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ ΠΏΡ€ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… сбоях.
  • πŸ›‘ ΠšΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ освобоТдайтС рСсурсы Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ошибок.
πŸ’‘

Никогда Π½Π΅ оставляйтС ΠΊΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с COM Π±Π΅Π· Π±Π»ΠΎΠΊΠ° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ любая ошибка Π²ΠΎ внСшнСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ остановкС выполнСния ΠΊΠΎΠ΄Π° 1Π‘.

ОсвобоТдСниС рСсурсов ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Одной ΠΈΠ· самых частых ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с COM являСтся ΡƒΡ‚Π΅Ρ‡ΠΊΠ° памяти ΠΈ зависаниС процСссов Π² Ρ„ΠΎΠ½Π΅. Π­Ρ‚ΠΎ происходит, Ссли ссылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π½Π΅ Π±Ρ‹Π»ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ подсчСта ссылок, Π½ΠΎ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° сборщик мусора Π² Π΄Π°Π½Π½ΠΎΠΌ случаС рискованно.

ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ всСх ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с внСшним ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ явно ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ НСопрСдСлСно. Π­Ρ‚ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ счСтчик ссылок ΠΈ позволяСт ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΈΠ· памяти. Если этого Π½Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, процСсс Excel ΠΈΠ»ΠΈ Word ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡΡ‚Π°Ρ‚ΡŒΡΡ Π²ΠΈΡΠ΅Ρ‚ΡŒ Π² диспСтчСрС Π·Π°Π΄Π°Ρ‡ Π΄Π°ΠΆΠ΅ послС закрытия Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘.

РСкомСндуСтся ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ строгий порядок освобоТдСния: сначала ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡŽΡ‚ΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ (листы, Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹), Π·Π°Ρ‚Π΅ΠΌ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ (ΠΊΠ½ΠΈΠ³ΠΈ, прилоТСния). ΠΠ°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ этой ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ закрываСтся ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ.

// ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ порядок освобоТдСния

Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ = НСопрСдСлСно;

Лист = НСопрСдСлСно;

Книга.Close(Π›ΠΎΠΆΡŒ);

Книга = НСопрСдСлСно;

Excel.Quit();

Excel = НСопрСдСлСно;

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Если процСсс внСшнСго прилоТСния остался Π² памяти послС выполнСния ΠΊΠΎΠ΄Π°, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, всС Π»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π½Π° COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ ΠΈΡ… свойства, Π±Ρ‹Π»ΠΈ ΠΎΠ±Π½ΡƒΠ»Π΅Π½Ρ‹.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ

НаиболСС вострСбованным сцСнариСм использования COM Π² 1Π‘ являСтся Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… Π² Excel для формирования слоТных ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌ. Π­Ρ‚ΠΎ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ вСсь Π±ΠΎΠ³Π°Ρ‚Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ процСссора для форматирования, создания Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ ΠΈ сводных Ρ‚Π°Π±Π»ΠΈΡ†, нСдоступный стандартными срСдствами 1Π‘.

Π”Ρ€ΡƒΠ³ΠΎΠΉ популярной Π·Π°Π΄Π°Ρ‡Π΅ΠΉ являСтся автоматичСская ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° ΠΏΠΎΡ‡Ρ‚Ρ‹ Ρ‡Π΅Ρ€Π΅Π· Outlook. Π‘ΠΊΡ€ΠΈΠΏΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ письмо, ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠ»ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ€Π°ΡΡΡ‹Π»Π°Ρ‚ΡŒ ΠΈΡ… ΠΊΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚Π°ΠΌ Π±Π΅Π· участия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π’Π°ΠΊΠΆΠ΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ADODB.Connection для прямого ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ сторонним Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… SQL.

ΠŸΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚Π°ΠΊΠΈΡ… Π·Π°Π΄Π°Ρ‡ Π²Π°ΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ установлСнного ПО. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² Ρ€Π°Π·Π½Ρ‹Ρ… вСрсиях Office ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ИспользованиС Ρ€Π°Π½Π½Π΅Π³ΠΎ связывания Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, поэтому вСсь ΠΊΠΎΠ΄ ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ с использованиСм ΠΏΠΎΠ·Π΄Π½Π΅Π³ΠΎ связывания, Ρ‡Ρ‚ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ знания Ρ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π½ свойств ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².

β˜‘οΈ Π§Π΅ΠΊ-лист ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ Π² Excel

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

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ ΠΈ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ

НСсмотря Π½Π° ΠΌΠΎΡ‰ΡŒ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Ρƒ COM Π΅ΡΡ‚ΡŒ сущСствСнныС ограничСния. Как ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Ρ€Π°Π½Π΅Π΅, Ρ€Π°Π±ΠΎΡ‚Π° Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Π² Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ ΠΈ Ρ‚ΠΎΠ½ΠΊΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, использованиС COM Π½Π° сСрвСрС 1Π‘ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ установки ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠΉ вСрсии офисного ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Ρ‡Ρ‚ΠΎ часто Π½Π΅ рСкомСндуСтся производитСлями ПО ΠΈΠ·-Π·Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ Π² сСрвисных сцСнариях.

Для Π·Π°Π΄Π°Ρ‡, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π½Π° сСрвСрС ΠΈΠ»ΠΈ Π² Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅, слСдуСт Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹. НапримСр, для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Excel ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ с Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ OpenXML Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Π±Π΅Π· запуска самого прилоТСния Excel. Для ΠΏΠΎΡ‡Ρ‚Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнныС срСдства 1Π‘ ΠΈΠ»ΠΈ SMTP-ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ».

Π’Π°ΠΊΠΆΠ΅ стоит ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ интСрфСйсы COM ΠΌΠΎΠ³ΡƒΡ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ внСшнСго ПО. Π’ΠΎ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ Π² ΠΎΠ΄Π½ΠΎΠΉ вСрсии ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π΄Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ критичСски Π²Π°ΠΆΠ½Ρ‹Π΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ тСстирования ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ окруТСния.

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ для сСрвСра

Для сСрвСрной Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΈ Π² Excel ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Ρ‚ΠΈΠΏΠ° "ExcelWriter" ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с OpenXML, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ установки MS Office ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ быстрСС.

МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ 1Π‘?

НСт, тСхнология COM Π½Π΅ поддСрТиваСтся Π² Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ ΠΈ Ρ‚ΠΎΠ½ΠΊΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ ΠΈΠ·-Π·Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ бСзопасности Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ‡Π΅Ρ€Π΅Π· Π²Π΅Π±-сСрвСр. Для этих Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ.

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

Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, Π²Ρ‹ Π½Π΅ ΠΎΠ±Π½ΡƒΠ»ΠΈΠ»ΠΈ всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Excel (ΠΊΠ½ΠΈΠ³ΠΈ, листы, Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹). ΠŸΡ€ΠΈΡΠ²ΠΎΠΉΡ‚Π΅ ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ НСопрСдСлСно ΠΈ Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Quit() ΠΏΠ΅Ρ€Π΅Π΄ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹.

Как ΡƒΠ·Π½Π°Ρ‚ΡŒ доступныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°?

Π’ 1Π‘ Π½Π΅Ρ‚ встроСнного IntelliSense для COM. НСобходимо ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ внСшнюю Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ (MSDN), ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Ρ‚ΠΈΠΏΠ° OLE/COM Object Viewer ΠΈΠ»ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ошибок для ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π±ΠΎΡ€Π° ΠΈΠΌΠ΅Π½.

БСзопасно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ COM Π½Π° сСрвСрС 1Π‘?

Microsoft Π½Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ Office Π½Π° сСрвСрС. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅, зависанию процСссов ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ с ΠΏΡ€Π°Π²Π°ΠΌΠΈ доступа. Π›ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ спСциализированныС сСрвСрныС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.