ΠœΠ°ΠΊΡ€ΠΎΡΡ‹ vba Π² Π°Π²Ρ‚ΠΎΠΊΠ°Π΄Π΅ Ρ‡Ρ‚ΠΎ это

Адаптация AutoCAD ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ VBA

VBA ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ срСдством ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ встроСна ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° VBA. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, AutoCAD ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ прилоТСниями, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Microsoft Word ΠΈΠ»ΠΈ Excel, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ AutoCAD VBA Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ, ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с внСшними Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ срСдство ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ², ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ приобрСсти ΠΏΠ°ΠΊΠ΅Ρ‚ Visual Basic 6, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠΉΡΡ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠΌ.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ AutoCAD VBA

VBA отправляСт сообщСния Ρ‡Π΅Ρ€Π΅Π· интСрфСйс AutoCAD ActiveX Automation. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ макроса AutoCAD VBA срСда Visual Basic ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с AutoCAD ΠΈ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ AutoCAD Ρ‡Π΅Ρ€Π΅Π· интСрфСйс ActiveX Automation. Бвязка AutoCAD, ActiveX Automation ΠΈ VBA являСтся ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠΎΡ‰Π½Ρ‹ΠΌ срСдством программирования. Она позволяСт Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ AutoCAD, Π½ΠΎ ΠΈ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ прилоТСниями.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ VBA Π² AutoCAD являСтся Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ инструмСнт для Π°Π΄Π°ΠΏΡ‚Π°Ρ†ΠΈΠΈ AutoCAD. Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ автоматичСски ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ значСния Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ², вставляСт Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π² ΠΊΠ½ΠΈΠ³Ρƒ Excel ΠΈ выполняСт Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ манипуляции с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ программирования Π½Π° VBA для AutoCAD ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π° Ρ‚Ρ€Π΅Ρ… Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ…. ΠŸΠ΅Ρ€Π²ΠΎΠΉ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ являСтся сама ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° AutoCAD, которая ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ большим Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ программирования Π² AutoCAD ΠΊΡ€Π°ΠΉΠ½Π΅ ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Π°. Однако слСдуСт ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ Π² основу VBA ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ сущСствСнно отличаСтся ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Π² AutoLISP.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ являСтся интСрфСйс ActiveX Automation, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСт порядок ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сообщСний (взаимодСйствия) с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ AutoCAD. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° VBA Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ понимания ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ интСрфСйса ActiveX Automation.

Π’Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ являСтся, собствСнно, сама срСда VBA. VBA ΠΈΠΌΠ΅Π΅Ρ‚ свой собствСнный Π½Π°Π±ΠΎΡ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов, констант, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ написании, ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π’ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ поставки AutoCAD Π²Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΎΠ±ΡˆΠΈΡ€Π½Π°Ρ справочная систСма ΠΏΠΎ VBA ΠΎΡ‚ Microsoft.

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ActiveX/VBA ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ AutoCAD ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ рядом прСимущСств ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ интСрфСйсами API AutoCAD.

ИспользованиС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ VBA

Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° VBA осущСствляСтся ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ VBALOAD. ПослС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ макросы ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° становятся доступными Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ «ΠœΠ°ΠΊΡ€ΠΎΡΡ‹».

Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° VBA осущСствляСтся ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ VBALOAD. ПослС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ макросы ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° становятся доступными Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ «ΠœΠ°ΠΊΡ€ΠΎΡΡ‹». Для выполнСния модуля VBA слуТит ΠΊΠΎΠΌΠ°Π½Π΄Π° VBARUN. Если Π½Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ΠΎ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° VBA, Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ нСдоступны. ΠŸΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ Π² спискС с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ макросов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ синтаксис:

Π’ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ «ΠœΠ°ΠΊΡ€ΠΎΡΡ‹» ΠΏΠ΅Ρ€Π΅Ρ‡Π½Π΅ΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹Ρ… Π² спискС ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ списка «ΠœΠ°ΠΊΡ€ΠΎΡΡ‹ ΠΈΠ·».

Запуск ΠΌΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ VBA ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки

АвтоматичСская Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² VBA

МоТно автоматичСски Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π½Π΅Π΅ созданныС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ VBA ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ запускС AutoCAD. ΠŸΡ€ΠΈ этом содСрТащиСся Π² Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… макросы стразу ΠΆΠ΅ становятся доступными. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, для автоматичСской Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½ΡƒΠΆΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π—ΠΠ“ΠŸΠ Π˜Π›.

acvba.arx β€” АвтоматичСская Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° VBA

Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° VBA Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС выполнСния любой ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄ AutoCAD VBA. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ arx-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ VBA автоматичСски загруТался ΠΏΡ€ΠΈ запускС AutoCAD, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Ρ„Π°ΠΉΠ» acad. rx:

Для автоматичСского выполнСния макроса Π΅Π³ΠΎ слСдуСт Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Ρ„Π°ΠΉΠ» acad. dvb ΠΈ Π½Π°Π·Π²Π°Ρ‚ΡŒ AcadStartup. ΠœΠ°ΠΊΡ€ΠΎΡ с ΠΈΠΌΠ΅Π½Π΅ΠΌ AcadStartup ΠΈΠ· Ρ„Π°ΠΉΠ»Π° acad. dvb выполняСтся автоматичСски ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ модуля VBA.

acad.dvb β€” АвтоматичСская Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° VBA

Π€Π°ΠΉΠ» acad. dvb ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² VBA ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ запускС AutoCAD. ΠŸΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ запускС Π½ΠΎΠ²ΠΎΠ³ΠΎ сСанса AutoCAD производится поиск ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ„Π°ΠΉΠ»Π° acad. dvb.

Если ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ макрос Ρ„Π°ΠΉΠ»Π° acad. dvb Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ создании Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π³ΠΎΡΡ Ρ‡Π΅Ρ€Ρ‚Π΅ΠΆΠ°, Π² Ρ„Π°ΠΉΠ» acaddoc.lsp слСдуСт Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Автоматизация Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ Excel ΠΈ AutoCAD ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ VBA

Π£ΠΆΠ΅ Π½Π΅ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π³ΠΎΠ΄ я Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽ Π½Π° ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Ρ„ΠΎΡ€ΡƒΠΌΠ°Ρ… ΠΌΠ½Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ VBA для AutoCAD ΠΎΡ‚ΠΌΠΈΡ€Π°Π΅Ρ‚, ΠΈ AutoDesk Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π΅Π³ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π΅Π»ΠΈΠ·Π°Ρ… Π² дистрибутив, ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅, истинныС ΠΏΠ°Π΄Π°Π²Π°Π½Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ lisp, C# ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠΌ, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ VBA.

Π― ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ ΠžΠ’ΠΈΠš, Π½Π΅ программист. И Π½Π΅ Ρ…ΠΎΡ‡Ρƒ, Π΄Π° ΠΈ Π½Π΅ΠΊΠΎΠ³Π΄Π°, Π²Π½ΠΈΠΊΠ°Ρ‚ΡŒ Π² ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Π§Π°Ρ‰Π΅ всСго появляСтся ситуация, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΊΠ°ΠΊ-Ρ‚ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€ΡƒΡ‚ΠΈΠ½Ρƒ здСсь ΠΈ сСйчас. На ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ простой язык VBA.

Π”Π°Π»Π΅Π΅ я ΠΏΠΎΠΊΠ°ΠΆΡƒ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· особых Π·Π°Π±ΠΎΡ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ самому Ρ‚ΠΎ, Π·Π° Ρ‡Ρ‚ΠΎ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Π΅ рСбята Π±Π΅Ρ€ΡƒΡ‚ Π½Π΅ ΠΏΠ»ΠΎΡ…ΠΈΠ΅ Π΄Π΅Π½Π΅ΠΆΠΊΠΈ. А ΠΈΠΌΠ΅Π½Π½ΠΎ пСрСнос Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Excel Π² AutoCAD ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ. ЗаинтСрСсованных ΠΏΡ€ΠΎΡˆΡƒ ΠΏΠΎΠ΄ ΠΊΠ°Ρ‚.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±ΡƒΠ΄Π΅ΠΌ Π½Π° сторонС Excel β€” ΠΌΠ½Π΅ Ρ‚Π°ΠΊ ΠΏΡ€ΠΎΡ‰Π΅. Для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½ΡƒΠΆΠ½ΠΎ Π²ΠΎΠΉΡ‚ΠΈ Π² Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°: Alt+F8 Π›ΠΈΠ±ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Β«Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΒ» ΠΈΠ· настроСк Π»Π΅Π½Ρ‚Ρ‹.

Π’ ΠΎΠΊΠ½Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° VBA Π²Ρ…ΠΎΠ΄ΠΈΠΌ Π² Π²Π΅Ρ€Ρ…Π½Π΅Π΅ мСню: Tools/References. Π’ этом ΠΎΠΊΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π³Π°Π»ΠΎΡ‡ΠΊΡƒ Π½Π° вашСй вСрсии AutoCAD

ΠœΠ°ΠΊΡ€ΠΎΡΡ‹ vba Π² Π°Π²Ρ‚ΠΎΠΊΠ°Π΄Π΅ Ρ‡Ρ‚ΠΎ это

Π’ ΠΌΠΎΠ΅ΠΌ случаС это AutoCAD 2014 Type Library. Π”Π°Π»Π΅Π΅ Π½ΡƒΠΆΠ½ΠΎ Π² Π»Π΅Π²ΠΎΠΌ ΠΎΠΊΠ½Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π² вашСй ΠΊΠ½ΠΈΠ³Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΊΠ°ΠΊ Π½Π° ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π΅ (Module)

ΠœΠ°ΠΊΡ€ΠΎΡΡ‹ vba Π² Π°Π²Ρ‚ΠΎΠΊΠ°Π΄Π΅ Ρ‡Ρ‚ΠΎ это

И Π² ΠΌΠΎΠ΄ΡƒΠ»ΡŒ вставляСм Π½ΠΈΠΆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄:

Аналогичным способом ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊΠΈ с Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ тСкст ΠΈΠ· ячССк.
НуТно внСсти Π² Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΠΊΠΎΠ΄ измСнСния Π²Ρ€ΠΎΠ΄Π΅:

Код обновлСния тСкста ΠΏΠΎ хэндлу β€” написан Π½ΠΈΠΆΠ΅: ‘ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ хэндл ΠΈΠ· ячСйки, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ записали ΠΊΠΎΠ΄ΠΎΠΌ Π²Ρ‹ΡˆΠ΅.

entHandle = ActiveCell.Offset(0, 3).Value ‘ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ наш Π±Π»ΠΎΠΊ ΠΏΠΎ хэндлу
Set blockObj = acadDoc.HandleToObject(entHandle)

А дальшС Π΄Π΅Π»Π°Π΅ΠΌ всё Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΈ Π²Ρ‹ΡˆΠ΅.

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·ΡŠΡΡΠ½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π²ΠΆΠΈΠ²ΡƒΡŽ β€” записал Π²ΠΈΠ΄Π΅ΠΎ:

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΊΠΎΠ΄Π° ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ… ΠΌΠ½Π΅ экономит ΠΏΠΎ нСсколько часов Ρ€Π°Π±ΠΎΡ‚Ρ‹. И сниТаСтся риск ошибки. Π’.ΠΊ. ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ это выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Ρƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠΎΠ² β€” ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π΄Π²Π° ΠΎΠΊΠ½Π° Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… экранах, ΠΈ ΠΈΠ»ΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· Π±ΡƒΡ„Π΅Ρ€ ΠΎΠ±ΠΌΠ΅Π½Π° начинаСтся Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ выносок ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊΠΎΠ² Π½Π° Ρ‡Π΅Ρ€Ρ‚Π΅ΠΆΠ΅.

ΠžΠΏΡΡ‚ΡŒ ΠΆΠ΅ Ρ‡Π΅ΠΌ Ρ…ΠΎΡ€ΠΎΡˆ VBA β€” Ρ‡Ρ‚ΠΎ ΠΎΠ½ всСгда ΠΏΠΎΠ΄ Ρ€ΡƒΠΊΠΎΠΉ πŸ™‚ Excel-Ρ‚ΠΎ основной инструмСнт Ρƒ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π°.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° VBA

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅. ΠžΠ±Π·ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½Π°Ρ модСль

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ AutoCAD ActiveX/VBA Π΄Π°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚oΡ€Ρ‹Π΅ прСимущСства ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ AutoCAD :

ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ Π²Π½Π΅Π΄Ρ€Π΅Π½Π½Ρ‹Ρ… ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² VBA

Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²:

ΠžΠ±Π·ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄ VBA AutoCAD

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ понятия ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ AutoCAD

Π§Π΅Ρ€Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Application ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ:

Π§Π΅Ρ€Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Preferences ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ

Π§Π΅Ρ€Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Documents ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ Document Π° Ρ‡Π΅Ρ€Π΅Π· Π½Π΅Π³ΠΎ ΠΊ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Ρƒ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ:

Доступ ΠΊ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, свойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

Когда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, ThisDrawing всСгда ссылаСтся Π½Π° Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚. ΠŸΡ€ΠΈ использовании Π²Π½Π΅Π΄Ρ€Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ThisDrawing всСгда ссылаСтся Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, содСрТащий ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. НапримСр, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ строка ΠΊΠΎΠ΄Π° Π² глобальном ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ сохраняСт любой Ρ‡Π΅Ρ€Ρ‚Π΅ΠΆ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π΅Π½:

Бсылка Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

Доступ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ нСпосрСдствСнно ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ. Для нСпосрСдствСнной сслыки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ достаточно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ Π½Π΅ΠΌΡƒ Π² ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ. НапримСр, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° добавляСт линию Π² пространство ΠΌΠΎΠ΄Π΅Π»ΠΈ:

Для доступа ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ поступаСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, послС Ρ‡Π΅Π³ΠΎ устанавливаСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° ΡΡΡ‹Π»Π°Π»Π°ΡΡŒ Π½Π° Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ moSpace Ρ‚ΠΈΠΏΠ° AcadModelSpace Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° ΡΡΡ‹Π»Π°Π»Π°ΡΡŒ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ пространство ΠΌΠΎΠ΄Π΅Π»ΠΈ :

ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

Доступ ΠΊ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ элСмСнта ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ создаСт слой ΠΈ добавляСт Π΅Π³ΠΎ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ:

ΠŸΠ΅Ρ€Π΅Π±ΠΎΡ€ Ρ‡Π»Π΅Π½ΠΎΠ² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ поиска слоя с ΠΈΠΌΠ΅Π½Π΅ΠΌ ABC :

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ‡Π»Π΅Π½Π° ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ удалСния слоя:

Π£Π΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡŽ Π½Π΅ ΠΏΠΎΠ΄Π»Π΅ΠΆΠΈΡ‚.

ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ свойств ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²

ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Ρ‚ΠΈΠΏΠΎΠ²

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

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π° ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… рисунка

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ variant Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… ΠΈ свойствах

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΡ variant-массивов

ИспользованиС Π΄Ρ€ΡƒΠ³ΠΈΡ… языков программирования

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ дСмонстрируСт созданиС Π»ΠΈΠ½ΠΈΠΈ Π² VB ΠΈ VBA

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ AutoCAD

ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅, сохранСниС ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ‡Π΅Ρ€Ρ‚Π΅ΠΆΠ°

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ AutoCAD VBA ΠΈ особСнности Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌ

ΠœΠ°ΠΊΡ€ΠΎΡΡ‹ vba Π² Π°Π²Ρ‚ΠΎΠΊΠ°Π΄Π΅ Ρ‡Ρ‚ΠΎ это

ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ языка VBA Π΅Π³ΠΎ Π°Π²Ρ‚ΠΎΡ€Ρ‹ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ Π½Π° ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Π° Π½Π΅ Π½Π° ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… программистов, поэтому ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° VBA достаточно просто ΠΈ быстро.

Из прСимущСств языка VBA ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒ Π΅Π³ΠΎ освоСния ΠΈ простоту использования, ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ (ΠΈΠ·ΡƒΡ‡ΠΈΠ² VBA для AutoCAD ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π±Π΅Π· Ρ‚Ρ€ΡƒΠ΄Π° ΠΈΠ·ΡƒΡ‡ΠΈΡ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, VBA для Microsoft Word ΠΈΠ»ΠΈ Excel). Π“Π»Π°Π²Π½Ρ‹ΠΉ нСдостаток языка VBA – ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ Ρ€Π°Π·Π½Ρ‹Ρ… вСрсий.

Π’ AutoCAD Ρ‚Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ встроСнная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° языка VBA, для этого слуТит ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ AutoCAD VBA Enabler. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° VBA ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊΠΎ всСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ AutoCAD, ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π°ΠΌ Ρ‡Π΅Ρ€Ρ‚Π΅ΠΆΠ°, ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ AutoCAD ΠΈ сторонними прилоТСниями ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ языка VBA ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ любой слоТности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ позволят Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ систСмы, Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

Π’Π°ΠΆΠ½Ρ‹ΠΌ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ΠΌ VBA для AutoCAD ΠΎΡ‚ VBA для Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ хранятся Π½Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ², Π° Π²ΠΎ Π²Π½Π΅ΡˆΠ½ΠΈΡ… Ρ„Π°ΠΉΠ»Π°Ρ… с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ DVB.

Π’ послСдних вСрсиях AutoCAD ΠΌΠΎΠ΄ΡƒΠ»ΡŒ VBA Enabler Π½Π΅ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² дистрибутив ΠΈ Π½Π΅ устанавливаСтся вмСстС с самим AutoCAD. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с VBA Π² AutoCAD, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ AutoCAD VBA Enabler со ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ страницы Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅

ΠœΠ°ΠΊΡ€ΠΎΡΡ‹ vba Π² Π°Π²Ρ‚ΠΎΠΊΠ°Π΄Π΅ Ρ‡Ρ‚ΠΎ это

Π’Π°ΠΆΠ½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ модуля VBA Enabler Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π²Π΅Ρ€ΡΠΈΡŽ AutoCAD ΠΈ Π΅Π³ΠΎ Ρ€Π°Π·Ρ€ΡΠ΄Π½ΠΎΡΡ‚ΡŒ. НапримСр, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ VBA для AutoCAD 2018 32-x Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² срСдС AutoCAD 2018 64-x.

ПослС скачивания, распаковки ΠΈ установки модуля AutoCAD VBA Enabler Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ AutoCAD появится Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с прилоТСниями Π½Π° языкС VBA.

Окно Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° VBA (VBA IDE) запускаСтся ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ VBAIDE.

ΠœΠ°ΠΊΡ€ΠΎΡΡ‹ vba Π² Π°Π²Ρ‚ΠΎΠΊΠ°Π΄Π΅ Ρ‡Ρ‚ΠΎ это

Оно стандартноС для языка VBA ΠΈ Π½ΠΈΡ‡Π΅ΠΌ Π½Π΅ отличаСтся ΠΎΡ‚ VBA Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ….

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² VBA Π² AutoCAD Π½Π΅ совмСстим с Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Visual Basic. Однако, Π² VBA для AutoCAD ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡ‹, ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ классы, хранящиСся Π² Ρ„Π°ΠΉΠ»Π°Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² FRM, BAS ΠΈ CLS соотвСтствСнно.

Бписок ΠΊΠΎΠΌΠ°Π½Π΄, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ VBA:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² AutoCAD с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ VBA.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги

Π­Ρ‚ΠΎ Π±Ρ‹Π» быстрый Ρ‚ΡƒΡ€ ΠΏΠΎ ActiveX Automation, Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ свои возмоТности. ActiveX Automation являСтся простым способом Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ AutoCAD, ΠΈ VBA позволяСт это Π΄Π΅Π»Π°Ρ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ, ΠΎΡ‚ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ° Π΄ΠΎ экспСрта. Много ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Microsoft Word ΠΈ Excel, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ActiveX Automation, Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎΡ„Ρ„Π΅ΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… срСдсв Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚ΠΈΠΏΠ° Borland Delphi.

Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ интСрфСйса VBA


ΠžΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ внСшнСго Π²ΠΈΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° VBA

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ мСню Insert menu ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ UserForm. ΠŸΠΎΡΠ²ΡΡ‚ΡŒΡΡ Π΄Π²Π° Π½ΠΎΠ²Ρ‹Ρ… ΠΎΠΊΠ½Π°. ΠŸΠ΅Ρ€Π²ΠΎΠ΅, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ Project-UserForm1 (UserForm), это конструктор Ρ„ΠΎΡ€ΠΌ. Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ для графичСского конструирования Ρ„ΠΎΡ€ΠΌ. Π’Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ Toolbox, содСрТит Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊ Ρ„ΠΎΡ€ΠΌΠ΅.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго, посмотритС Π½Π° Π½ΠΎΠ²ΠΎΠ΅ имя Ρ„ΠΎΡ€ΠΌΡ‹: UserForm1. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ VBA-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, каТдая Ρ„ΠΎΡ€ΠΌΠ° ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ своС имя. Когда Π²Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, добавляСтС Π½ΠΎΠ²ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ, ΠΈΠ»ΠΈ добавляСтС Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊ Ρ„ΠΎΡ€ΠΌΠ΅, VBA создаСт имя ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π±ΡƒΠ΄ΠΈΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ эти ΠΈΠΌΠ΅Π½Π° Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π·Π½Π°Ρ‡Π°Ρ‰ΠΈΠ΅ для вас. НаТмитС ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π½Π° Project Π² Project Explorer ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Project Properties ΠΈΠ· Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ мСню. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ имя ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π° VbaDemo ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π½Π° OK.

ΠœΠ°ΠΊΡ€ΠΎΡΡ‹ vba Π² Π°Π²Ρ‚ΠΎΠΊΠ°Π΄Π΅ Ρ‡Ρ‚ΠΎ это

Рисунок 1. МСню Properties

ΠœΠ°ΠΊΡ€ΠΎΡΡ‹ vba Π² Π°Π²Ρ‚ΠΎΠΊΠ°Π΄Π΅ Ρ‡Ρ‚ΠΎ это

Рисунок 2. МСню Toolbox

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΡƒΠ³Π»ΡƒΠ±ΠΈΡ‚ΡŒΡΡ Π² Toolbox (Π½ΠΈΠΆΠ΅ слСва) ΠΈ ΡΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свою ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ. Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊ вашСй Ρ„ΠΎΡ€ΠΌΠ΅, ΠΊΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ Π½Π° ΠΈΠΊΠΎΠ½ΠΊΠ΅ Π² ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов Control, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΊΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅. Если Π’Ρ‹ Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, ΠΊΠ°ΠΊΠΎΠΉ Π²ΠΈΠ΄ управлСния прСдставляСт опрСдСлСнная ΠΊΠ½ΠΎΠΏΠΊΠ° Π² ΠΏaΠ½Π΅Π»ΠΈ инструмСнтов Control, ΠΏΠΎΠ΄Π²Π΅Π΄ΠΈΡ‚Π΅ курсор ΠΌΡ‹ΡˆΠΈ Π½Π° нСсколько сСкунд ΠΊ ΠΈΠΊΠΎΠ½ΠΊΠ΅, ΠΈ Ρ‚ΠΎΠ³Π΄Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒΡΡ описаниС Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ собой прСдставляСт данная ΠΈΠΊΠΎΠ½ΠΊΠ°. ВСрхняя лСвая Ρ‚ΠΎΡ‡ΠΊΠ° ΠΈΠΊΠΎΠ½ΠΊΠΈ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΡƒΠΊΠ°ΠΆΠ΅Ρ‚Π΅ Π² Ρ„ΠΎΡ€ΠΌΠ΅. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈΠΊΠΎΠ½ΠΊΠΈ управлСния пСрСмСщая любой ΠΈΠ· Π΅Π³ΠΎ ΡƒΠ³Π»ΠΎΠ² ΠΈΠ»ΠΈ Π³Ρ€Π°Π½Π΅ΠΉ, Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ Π’Ρ‹ ΠΌΠΎΠ³ Π±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠŸΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠ° Windows.

ΠœΠ°ΠΊΡ€ΠΎΡΡ‹ vba Π² Π°Π²Ρ‚ΠΎΠΊΠ°Π΄Π΅ Ρ‡Ρ‚ΠΎ это

Рисунок 3. ΠžΠ±Ρ‰ΠΈΠΉ Π²ΠΈΠ΄ Ρ„ΠΎΡ€ΠΌΡ‹

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ свойста Top, Left, Height, ΠΈ Width Π² ΠΎΠΊΠ½Π΅ свойств (Properties). Π”Π°Π»Π΅ Π΄ΠΎΠ±Π°Π²Ρ‚Π΅ Π΄Π²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΊ Ρ„ΠΎΡ€ΠΌΠ΅. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ имя ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π½Π° SayHello ΠΈ Π΅Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π½Π° Say Hello, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ имя Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π½Π° AskQuestion ΠΈ Π΅Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π½Π° Ask a Question. Π’Π°ΡˆΠ° пСрвая Ρ„ΠΎΡ€ΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° Ρ‚Ρƒ, которая ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π½Π° рисункС 2.

Π Π°Π±ΠΎΡ‚Π° с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° интСрфСйс с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π·Π° сцСной. VBA Π² AutoCAD R14.01 ΠΈ R2000 ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ связь с AutoCAD, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ R14, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ VBA ΠΊ AutoCAD.

Π― ΡƒΠ²Π΅Ρ€Π΅Π½ Ρ‡Ρ‚ΠΎ Π’Ρ‹ ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚Π΅ΡΡŒ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ всС это Π² дСйствии. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ General ΠΈΠ· ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ мСню Objects ΠΈ Declarations ΠΈΠ· ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ мСню Events, ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ для образования связи: Private ThisApplication As Object

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ AutoCAD 14.01 ΠΈΠ»ΠΈ 2000, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ вСсь ΠΊΠΎΠ΄ Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π°Π±Ρ€Π°Π»ΠΈ. Как я упомянул, Π’Ρ‹ ΠΈΠΌΠ΅Π΅Ρ‚Π΅ встроСнный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ThisDrawing ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ‡Π΅Ρ€Ρ‚Π΅ΠΆ. Он ΠΈΠΌΠ΅Π΅Ρ‚ свойство Application ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Π²Ρ‹Π·ΠΎΠ²Π° Π»ΡŽΠ±Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Application.

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π²Π΅Ρ‚Π°

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈΡΡŒ ΠΊ AutoCAD, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΎΠ½ΠΎ Π·Π°Π½Π°Π»ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚. Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ Ρ‰Π΅Π»Ρ‡Π΅ΠΊ ΠΌΡ‹ΡˆΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ SayHello Π² вашСй Ρ„ΠΎΡ€ΠΌΠ΅. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‡Ρ‚ΠΎ ваш Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΊΠΎΠ΄Π° пСрСмСщаСтся ΠΊ ΡΠΎΠ±Ρ‹Ρ‚ΠΈΡŽ Click ΠΊΠ½ΠΎΠΏΠΊΠΈ. Π­Ρ‚ΠΎ событиС ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для управлСния ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ. Если Π²Ρ‹ ΠΆΠ΅Π»Π°Π΅Ρ‚Π΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ событиС, Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΈΠ· ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ списка.

Как ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ, Π²Ρ‹ Π΄Π°Π΄ΠΈΡ‚Π΅ для MsgBox сообщСниС для отобраТСния, Π½ΠΎ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ большС, Ссли Π΅ΠΌΡƒ Π΄Π°Ρ‚ΡŒ большС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π΄Π°Ρ‚ΡŒ вопрос ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΈ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π²Π°ΠΌ. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ AskQuestion ΠΈΠ· мСню Object Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π°; Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ снова ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ событиС Click. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

If (MsgBox(«Is it raining out?», vbYesNo, «Hey, Weatherman!») = vbYes) _ Then MsgBox «Better close the window!» Else MsgBox «Enjoy the nice day!» End If

Когда Π²Ρ‹ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ MsgBox ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΠΈ Yes ΠΈ No, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π½Π°ΠΆΠ°Π» ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ. Если Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ эквивалСнтно встроСнной константС vbYes, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠ°Π» ΠΊΠ½ΠΎΠΏΠΊΡƒ Yes. И ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ, Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ No Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ vbNo.

Π“ΠΎΡ‚ΠΎΠ²Ρ‹ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π²Π°ΡˆΠΈΡ… усилий? ЗапуститС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π²Ρ‹Π±Ρ€Π°Π² Run ΠΈΠ· мСню Run. Π’Π°ΡˆΠ° Ρ„ΠΎΡ€ΠΌΠ° ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒΡΡ Π² ΠΎΠΊΠ½Π΅ AutoCAD, ΠΈ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π½Π°ΡΡ‚Π°ΠΈΠ²Π°Ρ‚ΡŒ Π½Π° ΠΎΡ‚Π²Π΅Ρ‚Π΅. НСмного ΠΏΠΎΠΎΡ‚Π²Π΅Ρ‡Π°ΠΉΡ‚Π΅ Π½Π° вопросы, Π° Π·Π°Ρ‚Π΅ΠΌ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΠΉΡ‚Π΅ΡΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΡƒΡ‚ΠΎΠΌΠΈΡ‚Π΅ΡΡŒ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Π½Π° вопросы. Π’Π°ΡˆΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡ‡Ρ‚ΠΈ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½ΠΎ, Π½ΠΎ ΠΎΠ½ΠΎ Π½Π΅ содСрТит ΠΎΠ΄Π½ΠΎΠΉ Π²Π°ΠΆΠ½ΠΎΠΉ Π΄Π΅Ρ‚Π°Π»ΠΈ. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ запускаСтся ΠΈΠ· срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ VBA, Π½ΠΎ ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ AutoCAD? НикакиС силы Π½Π΅ заставят Π±Π΅Π· этой Π΄Π΅Ρ‚Π°Π»ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки AutoCAD. Π§Ρ‚ΠΎ Π±Ρ‹ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄-ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊ. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π² VBA мСню Insert ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Module. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ имя модуля Π½Π° AppStuff, ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅:

Public Sub VbaDemo() MainWin.Show End Sub Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ ваш VBA-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ΡΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку AutoCAD ΠΈ Π½Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ vbarun AppStuff.VbaDemo. Π’Π°ΡˆΠ° Ρ„ΠΎΡ€ΠΌΠ° ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΠ»Π°ΡΡŒ Π½Π° экранС!

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ ΠΎΡ…Π²Π°Ρ‚ΠΈΠΌ понятия настройки AutoCAD с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ VBA. ΠœΡ‹ создадим FancyText, ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ VBA-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ привязанный тСкст ΠΏΠΎΠ΄ Π»ΡŽΠ±Ρ‹ΠΌ ΡƒΠ³ΠΎΠ»ΠΎΠΌ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅. Если Π’Ρ‹ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π΅Ρ‚Π΅ΡΡŒ с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ (ΠΈΠ»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ слишком Π»Π΅Π½ΠΈΠ²Ρ‹ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠ΄), FancyText доступСн Π½Π° Web-сайтС CADALYST.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹

Π’Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Toolbox, содСрТит Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΊ Ρ„ΠΎΡ€ΠΌΠ΅. Π― скоро ΠΎΠΏΠΈΡˆΡƒ процСсс создания Ρ„ΠΎΡ€ΠΌ, Π½ΠΎ ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго посмотритС Π½Π° Π½Π° Π½ΠΎΠ²ΠΎΠ΅ имя Ρ„ΠΎΡ€ΠΌΡ‹: UserForm1. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ VBA-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, каТдая Ρ„ΠΎΡ€ΠΌΠ° ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ своС имя. Когда Π²Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, добавляСтС Π½ΠΎΠ²ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡƒ, ΠΈΠ»ΠΈ добавляСтС Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊ Ρ„ΠΎΡ€ΠΌΠ΅, VBA создаСт имя ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π― всСгда измСняю эти ΠΈΠΌΠ΅Π½Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π° Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π±ΠΎΠ»Π΅Π΅ Π·Π½Π°Ρ‡ΠΈΠΌΠΎΠ΅. ΠšΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π½Π° Project Π² Project Explorer ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Project Properties ΠΈΠ· Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ мСню. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ имя ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π° FancyText ΠΈ ΠΊΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ Π½Π° OK. Π”Π°Π»Π΅Π΅ Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ ΠΎΠΊΠ½ΠΎ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Properties. Π’Ρ‹ Π½Π°Π²Π΅Ρ€Π½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ свойства, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ внСшний Π²ΠΈΠ΄ этих ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Окно Properties позволяСт Π²Π°ΠΌ Π»Π΅Π³ΠΊΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ эти свойства. ΠŸΡ€ΡΠΌΠΎ сСйчас, Π² ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅ΠΌ мСню Π² Π²Π΅Ρ€Ρ…Ρƒ ΠΎΠΊΠ½Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ UserForm1 UserForm. Π­Ρ‚ΠΎ ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅Π΅ мСню содСрТит ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ располоТили Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅. НиТС Π² этом ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅ΠΌ мСню находится Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ список свойств Ρ„ΠΎΡ€ΠΌΡ‹: Caption, Height, Top, ΠΈ мноТСство Π΄Ρ€ΡƒΠ³ΠΈΡ….

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ созданиС интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ для FancyText. ΠšΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ Π½Π° конструкторС Ρ„ΠΎΡ€ΠΌ, Ρ‡Ρ‚ΠΎ Π±Ρ‹ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ панСль инструмСнтов (Toolbox). Π§Ρ‚ΠΎ Π±Ρ‹ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅, ΠΊΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΠ²ΡƒΡŽΡ‰Π΅ΠΉ ΠΈΠΊΠΎΠ½ΠΊΠ΅ Π² ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов, Π° Π·Π°Ρ‚Π΅ΠΌ пСрСмСститС Π΅Π³ΠΎ Π² конструктор Ρ„ΠΎΡ€ΠΌ. Когда Π²Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅Ρ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΠ΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅ΠΌΡ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π²Ρ‹Π΄Π΅Π»Π΅Π½ с внСшнСй стороны.

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ располоТили ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹, ΠΈΠ»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΡ‹ΡˆΠΈ, ΠΈΠ»ΠΈ устанавливая Π΅Π³ΠΎ свойства top, left, height, ΠΈ width Π² ΠΎΠΊΠ½Π΅ Properties. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ нашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±ΡƒΠ΄ΡƒΡ‚ Π½ΡƒΠΆΠ΄Π°Ρ‚ΡŒΡΡ Π² ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ высоты тСкста, поэтому размСститС ΠΌΠ΅Ρ‚ΠΊΡƒ (label) ΠΈ Π±Π»ΠΎΠΊ тСкста (textbox) ΠΈΠ· ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ. ΠšΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ Π½Π° ΠΌΠ΅Ρ‚ΠΊΠ΅, пСрСмСститС Π΅Π΅ Π² ΠΎΠΊΠ½ΠΎ Properties, ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π΅Π΅ имя Π½Π° lblHeight ΠΈ Π΅Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π½Π° Height. ΠšΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ Π½Π° Π±Π»ΠΎΠΊ тСкста ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π΅Π³ΠΎ имя txtHeight.

Π§Ρ‚ΠΎ-Π±Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ тСкст Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ ΠΌΠ΅Ρ‚ΠΊΡƒ ΠΈ Π±Π»ΠΎΠΊ тСкста вмСстС со слайдСром (SpinButton). ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ смогут Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΡƒΠ³ΠΎΠ» ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π° нСпосрСдствСнно Π² Π±Π»ΠΎΠΊ тСкста, ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ слайдСр для измСнСния ΡƒΠ³Π»Π° вращСния ΠΏΡ€ΠΈ ΠΎΠ΄Π½ΠΎΠΌ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΎΠ΄ΠΈΠ½ градус.

Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ имя Π½ΠΎΠ²ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΊΠΈ Π½Π° lblRotation ΠΈ Π΅Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π½Π° Rotation. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ имя Π½ΠΎΠ²ΠΎΠ³ΠΎ тСкстового ΠΎΠΊΠ½Π° Π½Π° txtRotation, ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ имя слайдСра Π½Π° spnRotation. Π§Ρ‚ΠΎ Π±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³Π»ΠΈ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ тСкст, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ ΠΌΠ΅Ρ‚ΠΊΡƒ ΠΈ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π±Π»ΠΎΠΊ тСкста.

Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ имя ΠΌΠ΅Ρ‚ΠΊΠΈ Π½Π° lblText ΠΈ Π΅Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π½Π° Text:, послС этого ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ имя Π±Π»ΠΎΠΊΠ° тСкста Π½Π° txtText.Finally, ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ управлСния (CommandButton) ΠΊ Ρ„ΠΎΡ€ΠΌΠ΅. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π΅Π΅ имя Π½Π° cmdGo ΠΈ Π΅Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π½Π° Go! НаТатиС Π½Π° ΡƒΡ‚Ρƒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ созданиС тСкста. Π’Π°ΡˆΠ° Ρ„ΠΎΡ€ΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рисункС 4.

ΠœΠ°ΠΊΡ€ΠΎΡΡ‹ vba Π² Π°Π²Ρ‚ΠΎΠΊΠ°Π΄Π΅ Ρ‡Ρ‚ΠΎ это

Рисунок 4. Окно Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… для Fancy Text.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Π΅ΠΎΠ³Π΄Π° интСрфСйс ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ThisDrawing обСспСчиваСт Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ связь с AutoCAD Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ это соСдинСниС, хотя это ΠΈ описано здСсь.

Одно VBA-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π»ΡŽΠ±Ρ‹ΠΌ количСством ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… VBA ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ VBA Ρ‡Ρ‚ΠΎ-Π±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ список ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² извлСкя ΠΈΠ½ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈΠ· Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Π² вашСм Ρ‡Π΅Ρ€Π΅Ρ‚Π΅ΠΆΠ΅ ΠΈ пСрСнСсти Π΅Π³ΠΎ Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π² Excel. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π°ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ срСду AutoCAD VBA Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ прилоТСния, Π½Π΅ связанныС с AutoCAD. Как всСгда, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ гибкости ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ лишнСй Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π½ΠΎ ΠΊ ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, эта Ρ€Π°Π±ΠΎΡ‚Π° Π½Π΅ слишком напряТСнная.

Private mappAcad As Object

Π Π°Π±ΠΎΡ‚Π° с вашим ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ

Π’ ΡƒΡ€ΠΎΠΊΠ΅ 3 ΠΌΡ‹ Π½Π°Ρ‡Π°Π»ΠΈ вашС ΠΏΠ΅Ρ€Π²ΠΎΠ΅ VBA-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для AutoCAD, FancyText. Π’Ρ‹ создали Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π² Π½ΠΈΡ… Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ. Π“ΠΎΡ‚ΠΎΠ²Ρ‹? ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΠΌΡΡ Π² событиС Click ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° CmdGo (командная ΠΊΠ½ΠΎΠΏΠΊΠ°). Когда Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, ваша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. Она Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ тСкста ΠΈ Π΅Π³ΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅, ΠΈ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Ссли ΠΎΠ½ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π·Π°Π±Ρ‹Π» ввСсти. НабСритС:

If (Trim(txtText.Text) = «») Then MsgBox «Please enter some text!» txtText.SetFocus Exit Sub End If

Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ свойства Text Π±Π»ΠΎΠΊΠ° тСкста сообщит Π²Π°ΠΌ, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π·Π°Π±Ρ‹Π» Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ SetFocus tΡ‡Ρ‚ΠΎ Π±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ курсор Π½Π° ΠΏΠΎΠ»Π΅, Π³Π΄Π΅ отсутствуСт информация, Ρ‡Ρ‚ΠΎ сдСлаСт Fancy Text Π±ΠΎΠ»Π΅Π΅ друТСствСнной ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡƒΠ΄Π΅Ρ‚ сам ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° Π½Π΅Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ»Π΅. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° высоты тСкста Π±ΠΎΠ»Π΅Π΅ слоТна. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ 5 Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… систСм Π΅Π΄Π΅Π½ΠΈΡ† Ρ‡Ρ‚ΠΎ-Π±Ρ‹ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ растояниС Π² AutoCAD, ΠΈ Fancy Text ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π²Π²ΠΎΠ΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π² Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… Π΅Π΄Π΅Π½ΠΈΡ†Π°Ρ… Ρ‡Π΅Ρ€Ρ‚Π΅ΠΆΠ°. Мало Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²Π΅Π» высоту, Π²Ρ‹ Ρ‚Π°ΠΊ ΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ высоту Π² число:

If (Trim(txtHeight.Text) = «») Then MsgBox «Please enter a text height!» txtHeight.SetFocus Exit Sub End If Dim unit% unit% = mappAcad.ActiveDocument._ GetVariable(«LUNITS») On Error Resume Next Dim height# height# = mappAcad.ActiveDocument._ Utility.DistanceToReal(_ txtHeight.Text, unit%) If (Err.Number <> 0) Then MsgBox «Please enter a » & «valid text height!» txtHeight.SetFocus End If Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ GetVariable() Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ любой систСмной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ AutoCAD ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ окурТСния, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ„ΡƒΠ½ΠΊΠΈΠΈ (getvar) ΠΈ (getenv) Π² AutoLISP.

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ Π΅Π΄Π΅Π½ΠΈΡ†Ρ‹ Ρ‡Π΅Ρ€Ρ‚Π΅ΠΆΠ°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ DistanceToReal() ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Utility Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ расстояниС ΠΈΠ· строковой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Ρ‡ΠΈΡΠ»ΠΎΠ²ΡƒΡŽ. Ошибка происходит ΠΊΠΎΠ³Π΄Π° конвСртация Π½Π΅ удаСтся, поэтому ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ошибки, ΠΈ ΡΠΎΠΎΠ±ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ, Ссли ввСдСнная высота Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сконвСртирована. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΏΠΎΡ‡Ρ‚ΠΈ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ созданиС тСкста, Π½ΠΎ Π²Π°ΠΌ Π΅Ρ‰Π΅ Π½ΡƒΠΆΠ½Π° Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Π°Ρ Ρ‚ΠΎΡ‡ΠΊΠ° тСкста. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΠΌΡΡ Π² Π½Π°Ρ‡Π°Π»ΠΎ события Click ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ нСсколько констант:

Const L_PT_FIRST = 0 Const L_PT_X = 0 Const L_PT_Y = 1 Const L_PT_Z = 2 Const L_PT_LAST = 2

Π’ΠΎΡ‡ΠΊΠ° прСдставляСтся Π² VBA ΠΊΠ°ΠΊ массив ΠΈΠ· Ρ‚Ρ€Π΅Ρ… элСмСнтов Ρ‚ΠΈΠΏΠ° doubles. Π­Ρ‚ΠΈ константы ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ Π»Π΅Π³ΠΊΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ Ρ‚ΠΎΡ‡Π΅Ρ‡Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ доступ ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ этих Ρ‚ΠΎΡ‡Π΅ΠΊ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ пСрСмСстимся Π² ΠΊΠΎΠ½Π΅Ρ† события Click.

Когда Ρ„ΠΎΡ€ΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ скрыта

Dim ptPickd As Variant Dim ptInsert#(L_PT_FIRST To L_PT_LAST) Me.Hide mappAcad.ActiveDocument.Utility._ InitializeUserInput 1 + 2 ptPickd = mappAcad.ActiveDocument._ Utility.GetPoint(, «Pick the » _ & «center point for the text: «) ptInsert#(L_PT_X) = ptPickd(L_PT_X) ptInsert#(L_PT_Y) = ptPickd(L_PT_Y) ptInsert#(L_PT_Z) = ptPickd(L_PT_Z) ΠœΠ΅Ρ‚ΠΎΠ΄ InitializeUserInput() позволяСт Π²Π°ΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ сСмСйства GetXxx провСряСт Π²Π²ΠΎΠ΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ; Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ 1 + 2 Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ GetPoint() Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΎΠ½ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π» Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Π²Π²ΠΎΠ΄. ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Ρƒ вас Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠ°, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅. GetPoint() Π²ΠΎΠ·Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚ΠΎΡ‡ΠΊΡƒ ΠΊΠ°ΠΊ Variant, Π½ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ VBA, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Ρ‚Ρ€Π΅Ρ…-элСмСнтный массив Ρ‚ΠΈΠΏΠ° double. Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ копирования x-, y-, ΠΈ z-ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΈΠ· Variant Π² массив Ρ‚ΠΈΠΏΠ° double.

Π§Π΅Ρ€Ρ‡Π΅Π½ΠΈΠ΅ тСкста

Dim objText As Object Set objText = mappAcad.ActiveDocument._ ModelSpace.AddText(txtText.Text, _ ptInsert#, height#)

ВсС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° Add Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ послСдний созданный ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ². Π’Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° Π½ΠΈΡ… нСсколько Ρ€Π°Π·, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π·Π° Π½ΠΈΠΌΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±Π²ΠΎΠ΄ΠΊΠΈ тСкста Π±ΠΎΠ»Π΅Π΅ слоТный процСсс. Π§Ρ‚ΠΎ Π±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΎΠ±Π²ΠΎΠ΄ΠΊΡƒ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΡƒΡŽ ΠΏΠ»ΠΎΡ‰Π°Π΄ΡŒ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ тСкст. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ GetBoundingBox ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обСспСчиваСт вас Π½ΠΆΠ½Π΅ΠΉ Π»Π΅Π²ΠΎΠΉ ΠΈ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ:

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±Π²ΠΎΠ΄ΠΊΠΈ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠ±Π²ΠΎΠ΄ΠΊΡƒ, которая Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΠ»ΠΈΠ»ΠΈΠ½ΠΈΠΈ. Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ встрСтимся с Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΡƒΠ΄ΠΎΠΉ VBA.

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ², ΠΏΠΎΠ»ΠΈΠ»ΠΈΠ½ΠΈΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ z-ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρƒ, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ массив ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ восСм элСмСнтов, Π° Π½Π΅ Π΄Π²Π΅Π½Π°Π΄Ρ†Π°Ρ‚ΡŒ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄Π΅ΠΌ Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ тСкст ΠΈ Π΅Π³ΠΎ ΠΎΠ±Π²ΠΎΠ΄ΠΊΡƒ. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ людСй прСдставляСт сСбС ΡƒΠ³Π»Ρ‹ Π² градусах, Π½ΠΎ VBA Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΈΡ… Π² Ρ€Π°Π΄ΠΈΠ°Π½Π°Ρ…. НСобходимо ΡΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠ³ΠΎΠ» вращСния ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ Rotate.

Const L_PI = 3.14159 objText.Rotate ptCenter#, _ (txtRotation.Text * L_PI / 180#) objOutline.Rotate ptCenter#, _ (txtRotation.Text * L_PI / 180#) И Π½Π°ΠΊΠΎΠ½Π΅Ρ†, пСрСмСстим тСкст ΠΈ Π΅Π³ΠΎ ΠΎΠ±Π²ΠΎΠ΄ΠΊΡƒ Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΈΡ… Ρ†Π΅Π½Ρ‚Ρ€Ρ‹ совпали с Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. objText.Move ptCenter#, ptStart# ptCenter#(L_PT_Z) = 0 objOutline.Move ptCenter#, ptStart# Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΎΠ±Π½ΠΎΠ²ΠΈΠΌ тСкст ΠΈ Π΅Π³ΠΎ ΠΎΠ±Π²ΠΎΠ΄ΠΊΡƒ Π½Π° экранС, освободим наши ссылки Π½Π° Π½ΠΈΡ… ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΈΠΌ: objText.Update objOutline.Update Set objOutline = Nothing Set objText = Nothing Unload Me

НашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ FancyText Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ. Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ Π²Π°ΡˆΡƒ Ρ€Π°Π±ΠΎΡ‚Ρƒ, Π° Π·Π°Ρ‚Π΅ΠΌ протСстируйтС. Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ способны ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ тСкст любого Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈ ΠΏΠΎΠ΄ Π»ΡŽΠ±Ρ‹ΠΌ ΡƒΠ³Π»ΠΎΠΌ. ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π½Π°ΠΌ остаСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ послСдний ΡˆΡ‚Ρ€ΠΈΡ…, Ρ‡Ρ‚ΠΎ Π±Ρ‹ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.

ПослСдниС ΡˆΡ‚Ρ€ΠΈΡ…ΠΈ

FancyText ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈΠ· срСды VBA IDE, Π½ΠΎ я Π΄ΡƒΠΌΠ°ΡŽ Π²Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ приятно Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π΅ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки? Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ, установитС Π΅Π³ΠΎ имя (Name) Π² «modApps», ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π° для взаимодСйствия с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Ρ‹ ΠΊ Ρ‡Π΅Ρ€Ρ‚Π΅ΠΆΡƒ, ΠΈ ΠΊΠ°ΠΊ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ тСкстовыми ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π°ΠΌΠΈ Π² Ρ‡Π΅Ρ€Ρ‚Π΅ΠΆΠ΅. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ FancyText Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ способами, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ установку высоты тСкста ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ высотС тСкста ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² AutoCAD ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΎΠ±Π²ΠΎΠ΄ΠΊΠΈ. ВСрсия FancyText доступная Π½Π° Web-сайт ΠΆΡƒΡ€Π½Π°Π»Π° CADALYST добавляСт ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΈ ΠΊΡ€ΡƒΠ³ΠΎΠ²Ρ‹Π΅ тСкстовыС стили. Π― Π±Ρ‹Π» Π±Ρ‹ заинтСрСсован ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π’Ρ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚Π΅ Π΅Π΅.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *