Π Π°Π·Π½ΠΎΠ΅

Vba Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅: макросы VBA / Π‘Π»ΠΎΠ³ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Digital Security / Π₯Π°Π±Ρ€

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Π£Ρ€ΠΎΠΊ 1 ΠΏΠΎ VBA — знакомство с Visual Basic for Applications






Π’ это ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΊΡ€Π°Ρ‚ΠΊΠΎ познакомимся с языком VBA, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ макросы Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°Ρ… Microsoft Office. ΠœΠ°ΠΊΡ€ΠΎΡΡ‹ – Π½Π΅ΠΊΠΈΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π·Π° вас ΠΏΠΎΡΡ‚Π°Π²Π»Π΅Π½Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, макросы VBA ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΎΠ²Ρ‹Π΅ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ. Π―Π·Ρ‹ΠΊ VBA – Visual Basic for Applications являСтся родствСнником Ρ‚Π°ΠΊΠΈΡ… языков ΠΊΠ°ΠΊ VBScript, Visual Basic ΠΈΠ»ΠΈ простой Basic. Бинтаксис ΠΈ ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° программирования практичСски ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹.

По сути, зная язык VBScript сСрвСра Windows Script Host, Π²Ρ‹ с Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ освоитС всС прСмудрости VBA.

ΠžΡ‚Π»ΠΈΡ‡ΠΈΡ VBA ΠΎΡ‚ VBScript

ГрафичСский интСрфСйс – Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ VBA прСдоставляСт ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² для создания графичСского интСрфСйса. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½ΠΎΠ²ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ ΠΈ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π½Π° Π½Π΅Π΅ Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, список, ΠΊΠ½ΠΎΠΏΠΊΡƒ, тСкстовоС ΠΏΠΎΠ»Π΅ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Π’ VBScript для этих Ρ†Π΅Π»Π΅ΠΉ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ±Π΅Π³Π°Ρ‚ΡŒ ΠΊ ΠΏΠΎΠΌΠΎΡ‰ΠΈ стороннСго ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° WindowSystemObject.






Π’Π½Π΅ΡˆΠ½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ – ΠΎΠ±Π° языка ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ возмоТности Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². ΠžΠ±ΡŠΠ΅ΠΊΡ‚ – Π² Π΄Π°Π½Π½ΠΎΠΌ контСкстС это внСшний Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» с Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² (Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ) ΠΈ свойств (ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…). Однако, Ссли Π²Ρ‹ создаСтС макрос Π² Word, Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Word.Application Π±ΡƒΠ΄Π΅Ρ‚ доступСн автоматичСски, Ссли макрос Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ Excel, Ρ‚ΠΎ автоматичСски доступСн ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Excel.Application. Π’ Windows Script Host сцСнариях эти ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ (ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ссылку).

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° событий – Π² VBA ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ свойств, Π½ΠΎ ΠΈ события, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡ‹ΡˆΠΈ. Π’ WSH ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° событий Π½Π΅ прСдусмотрСна ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ, Ρ‚Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ классы для создания графичСского интСрфСйс.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ VBA

И Ρ‚Π°ΠΊ, ΠΎΡ‚ΠΊΡ€Ρ‹Π² любой Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Microsoft Office, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Word, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ встроСнный Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Visual Basic (комбинация клавиш Alt + F11) ΠΈ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ созданию макроса. Как ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Π²Ρ‹ΡˆΠ΅, Π² макросах ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ возмоТности Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ρ‚Π΅ΠΌ самым, ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ доступ ΠΊ элСмСнтам ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, файловая систСма, рССстр ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Π–Π΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹ Π² настройках Π±Ρ‹Π» ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ автоматичСский запуск макроса ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, Π΄Π°Π±Ρ‹ дырявый ΠΈΠ»ΠΈ Π·Π»ΠΎΠ²Ρ€Π΅Π΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π΅ Π½Π°Ρ‚Π²ΠΎΡ€ΠΈΠ» Π»ΠΈΡ…Π°.

Однако, Π½Π° сСгодняшний ΠΌΠΎΠΌΠ΅Π½Ρ‚, макросы ΠΈ язык VBA ΠΊΠ°ΠΊ элСмСнты администрирования Ρ‚Π΅Ρ€ΡΡŽΡ‚ своС прСимущСство. Π’ΠΎΡ‚ ΠΆΠ΅ Microsoft Access, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚Π°ΠΊΠΆΠ΅ практичСски Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ. Π‘ΠΎΠ»Π΅Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ являСтся ΠΏΠ°ΠΊΠ΅Ρ‚ 1Π‘.

ΠžΠ±Ρ‰ΠΈΠ΅ синтаксичСскиС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ языка VBA

  • РСгистр Π½Π΅ ΠΈΠ³Ρ€Π°Π΅Ρ‚ Ρ€ΠΎΠ»ΠΈ – Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΊΠ°ΠΊ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ, Ρ‚Π°ΠΊ ΠΈ Π² Π½ΠΈΠΆΠ½Π΅ΠΌ рСгистрС, ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π² Π²ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡˆΠΊΡƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, dim, DIM, Dim, Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ Π½Π΅Ρ‚.
  • ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ – для коммСнтирования строки, ΠΏΠ΅Ρ€Π΅Π΄ Π½Π΅ΠΉ прописываСтся одинарная ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ° ΠΈΠ»ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово REM.
  • Максимальная Π΄Π»ΠΈΠ½Π° любого ΠΈΠΌΠ΅Π½ΠΈ (Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, константы ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹) составляСт 255 Π·Π½Π°ΠΊΠΎΠ².
  • Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ JavaScript, Jscript ΠΈΠ»ΠΈ Π‘ языков, Π² VBA Π² ΠΊΠΎΠ½Ρ†Π΅ строки с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ запятой.
  • Π”Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ – Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΡ€ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ строкС, ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ двоСточия ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π² ΠΎΠ΄Π½Ρƒ строку, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: MsgBox «Π‘Ρ‚Ρ€ΠΎΠΊΠ°1» : MsgBox «Π‘Ρ‚Ρ€ΠΎΠΊΠ°2»
  • ΠŸΠ΅Ρ€Π΅Π½ΠΎΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² – Ссли строка с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ слишком длинная, Ρ‚ΠΎ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° нСсколько ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ символа подчСркивания ΠΈ Π·Π½Π°ΠΊΠ° &, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:
    MsgBox «Π­Ρ‚ΠΎ простая» _
    & Β «ΡΡ‚Ρ€ΠΎΠΊΠ°»

Для дСмонстрации Ρ€Π°Π±ΠΎΡ‚Ρ‹ с макросами напишСм Ρ‚Π°ΠΊΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Microsoft Word ΠΈ запуститС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Visual Basic. Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ ΠΈ Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ (макрос). ЦСль – Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ уравнСния с измСняСмыми значСниями.

На ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡ‹ Π½Π°Π΄ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚Ρ€ΠΈ полосы ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ ΠΈ Π΄Π²Π΅ тСкстовыС ΠΌΠ΅Ρ‚ΠΊΠΈ. Π’ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π° для Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΡ€ΠΎΠΏΠΈΡˆΠΈΡ‚Π΅:

Option Explicit
Sub Get_Result()
Dim MyA As Byte, MyB As Byte, MyC As Byte
Dim D, x, x1, x2, msg
Β Β Β  MyA = ScrollBar1.  2 - 4 * MyA * MyC
Β 
'Если дискриминант Ρ€Π°Π²Π΅Π½ Π½ΡƒΠ»ΡƒΡŽ - ΠΎΠ΄Π½ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅
If D = 0 Then
Β Β Β Β  x = MyB / (2 * MyA)
Β Β Β Β  msg = "Π£Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ΄Π½ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, x Ρ€ΠΎΠ²Π½ΠΎ: " & x
'Если дискриминант большС нуля - Π΄Π²Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ
ElseIf D > 0 Then
Β Β Β Β  x1 = (-MyB + Sqr(D)) / (2 * MyA)
Β Β Β Β  x2 = (-MyB - Sqr(D)) / (2 * MyA)
Β Β Β Β  msg = "Π£Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ" & vbCrLf & "x1 Ρ€ΠΎΠ²Π½ΠΎ: " & x1 & vbCrLf & "x2 Ρ€ΠΎΠ²Π½ΠΎ: " & x2
'Если дискриминант мСньшС нуля - Π½Π΅Ρ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ
Else
Β Β Β Β  msg = "НСт Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ (комплСксныС числа)"
End If
Β Β Β  Label2.Caption = msg
End Sub
Β 
Private Sub ScrollBar1_Change()
Β Β Β  Call Get_Result
End Sub
Private Sub ScrollBar2_Change()
Β Β Β  Call Get_Result
End Sub
Private Sub ScrollBar3_Change()
Β Β Β  Call Get_Result
End Sub
Β 
Private Sub UserForm_Initialize()
Dim MyA As Byte, MyB As Byte, MyC As Byte
Β Β Β  ' ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ полос ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ
Β Β Β  ScrollBar1.Min = 1
Β Β Β  ScrollBar1.Max = 20
Β 
Β Β Β  ScrollBar2.Min = 1
Β Β Β  ScrollBar2.Max = 30
Β 
Β Β Β  ScrollBar3.Min = 1
Β Β Β  ScrollBar3.Max = 40
Β Β Β  ' ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ тСкстового поля
Β Β Β  Label1. FontSize = 15
Β Β Β  Label1.ForeColor = &HFF0000
Β Β Β  Label1.TextAlign = fmTextAlignCenter
Β 
Β Β Β  ' ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ тСкстового поля
Β Β Β  Label2.FontSize = 15
Β Β Β  Label2.ForeColor = &H6400
Β Β Β  MyA = ScrollBar1.Value: MyB = ScrollBar2.Value: MyC = ScrollBar3.Value
Β Β Β  Label1.Caption = MyA & "x*x + " _
Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  & MyB & "x + " _
Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  & MyC & " = 0"
End Sub

Код VBA ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎ прост, Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ Get_Result происходит ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ для полос ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ, Π΄Π°Π»Π΅Π΅ эти значСния ΠΏΠΎΠ΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρƒ для нахоТдСния дискриминанта. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π½Π° повСрхности Ρ„ΠΎΡ€ΠΌΡ‹ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΡƒΡŽ Ρ‚Π΅ΠΊΡΡ‚ΠΎΠ²ΡƒΡŽ ΠΌΠ΅Ρ‚ΠΊΡƒ. Аналогичный ΠΏΡ€ΠΈΠΌΠ΅Ρ€ я Ρ€Π°Π·Π±ΠΈΡ€Π°Π» для языка VBScript Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅.








VBA – ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ для изучСния

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, сСйчас ΠΌΡ‹ рассмотрим ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, ΠΊΠΎΠ³Π΄Π° Ρƒ Вас Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² Excel ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»

Если Ρƒ Вас встала Π·Π°Π΄Π°Ρ‡Π° асинхронно Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π² Microsoft SQL Server, ΠΏΡ€ΠΈ

ВсСм ΠΏΡ€ΠΈΠ²Π΅Ρ‚! ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» сСгодня Π±ΡƒΠ΄Π΅Ρ‚ посвящСн Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΈΡŽ возмоТности Access Π²Ρ‹Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Recordset Π² Excel Π½Π°

Если Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π² Access 2003 Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ Π·Π° Ρ…ΠΎΠ΄ΠΎΠΌ выполнСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ

Если Ρƒ Вас Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π²Ρ‹Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Π±Π°Π·Ρ‹ MS SQL Server Π² тСкстовый

БСгодня ΠΌΡ‹ займёмся ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠ΅ΠΉ слуТб Reporting Services Π² прилоТСния, ΠΈ Π² качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π΄Π°Π²Π°ΠΉΡ‚Π΅,

Π”Π°Π½Π½Ρ‹ΠΉ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» посвящСн созданию простого Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° SQL запросов, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡ‹Π»Π°Ρ‚ΡŒ SQL

Π”Π°Π½Π½Ρ‹ΠΉ ΡƒΡ€ΠΎΠΊ посвящСн SQL запросам ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° VBA Access. ΠœΡ‹ рассмотрим, ΠΊΠ°ΠΊ

Access ΠΎΡ‡Π΅Π½ΡŒ популярСн ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ программисты Ρƒ сСбя Π² ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π΅Π³ΠΎ Π² качСствС

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ ΠΎΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ Access 2003, ΠΈ ΠΏΡ€ΠΈΡˆΠ»ΠΎ врСмя ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ написании собствСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½Π° VBA.

Как Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π½Π° VBA Access 2003 | Info-Comp.ru

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ ΠΎΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ Access 2003, ΠΈ ΠΏΡ€ΠΈΡˆΠ»ΠΎ врСмя ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ написании собствСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½Π° VBA. ΠœΡ‹ рассмотрим Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ, Ρ‚.Π΅. Π³Π΄Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, для Ρ‡Π΅Π³ΠΎ ΠΈΡ… ΠΏΠΈΡˆΡƒΡ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ попрактикуСмся Π² этом, Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅ Π½Π΅ слоТном, Π΄Π΅Π»Π΅.

Π’Π΅ΠΌΡƒ программирования Π½Π° VBA Access 2003 ΠΌΡ‹ ΡƒΠΆΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Π»ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, рассматривали встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Ссли Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΎΠ± Access 2003, Ρ‚ΠΎ Ρ‚ΡƒΡ‚ ΠΌΡ‹ Ρ‚ΠΎΠΆΠ΅ прСуспСли, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, освоили Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΎΡ‚Ρ‡Π΅Ρ‚Π΅.

А сСгодня, приступим ΠΊ Π±ΠΎΠ»Π΅Π΅ интСрСсной, ΠΊΠ°ΠΊ ΠΌΠ½Π΅ каТСтся, Ρ‚Π΅ΠΌΠ΅ это написаниС своих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½Π° языкС VBA.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ VBA ΠΈ Π·Π°Ρ‡Π΅ΠΌ ΠΈΡ… ΠΏΠΈΡˆΡƒΡ‚

Π­Ρ‚ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΈΡˆΠ΅Ρ‚ сам программист для упрощСния ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π§Ρ‚ΠΎ здСсь понимаСтся ΠΏΠΎΠ΄ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½ΠΈΠ΅ΠΌ, ΠΈ для Ρ‡Π΅Π³ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, я Ρ€Π΅ΡˆΠΈΠ» ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ ΠΏΠΎ ΠΏΡƒΠ½ΠΊΡ‚Π°ΠΌ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это Π±ΡƒΠ΄Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ понятно для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, Π΄Π° ΠΈ просто для восприятия:

  • И Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΡƒΠ½ΠΊΡ‚Π΅ сразу Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ это Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ сокращСниС ΠΊΠΎΠ΄Π°. НапримСр, Π’Π°ΠΌ часто Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ дСйствия, ΠΊΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚, скаТСм, 10-20 ΠΈ Π±ΠΎΠ»Π΅Π΅ строк, ΠΈ Π²ΠΎΡ‚ прСдставитС, Ρ‡Ρ‚ΠΎ Π’Ρ‹ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ 2-3-10… Ρ€Π°Π· Π² своСм основном ΠΊΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами количСство строк основного ΠΊΠΎΠ΄Π° возрастСт Π² Ρ€Π°Π·Ρ‹, Π° Ρ‡Π΅ΠΌ это Π³Ρ€ΠΎΠ·ΠΈΡ‚, рассмотрим Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΡƒΠ½ΠΊΡ‚Π΅;
  • Если Ρƒ Вас ΠΊΠΎΠ΄ ΠΎΡ‡Π΅Π½ΡŒ большой, Ρ‚ΠΎ Π΅Π³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π² дальнСйшСм Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ Ссли Ρƒ Вас Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰Π΅ΠΉΡΡ ΠΊΠΎΠ΄, Ρ‚ΠΎ Ρ‚ΠΎΠ³Π΄Π° придСтся ΠΈΡΠΊΠ°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΈ ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠΎΠ΄ Π²ΠΎ всСх мСстах, Ρ‡Ρ‚ΠΎ ΡΠΎΠ³Π»Π°ΡΠΈΡ‚Π΅ΡΡŒ ΠΏΠ΅Ρ€Π²ΠΎΠ΅, это ΠΎΡ‡Π΅Π½ΡŒ Π½ΡƒΠ΄Π½ΠΎ, Π° Π²Ρ‚ΠΎΡ€ΠΎΠ΅ Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто Π·Π°Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Π² ΠΊΠ°ΠΊΠΎΠΌ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ мСстС ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ Π΅Ρ‰Π΅ Ρ…ΡƒΠΆΠ΅, Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Π½ΠΎ Π½Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, Π·Π° Ρ‡Ρ‚ΠΎ Вас ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ Π½Π°Ρ‡Π°Π»ΡŒΡΡ‚Π²ΠΎ Π½Π΅ ΠΏΠΎΡ…Π²Π°Π»ΠΈΡ‚;
  • ΠŸΡ€ΠΎ сокращСниС ΠΊΠΎΠ΄Π° ΠΌΡ‹ сказали, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ наглядным ΠΈ понятным. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, ΠΊΠΎΠ³Π΄Π° Π² ΠΊΠΎΠ΄Π΅ ΠΌΡ‹ встрСтим Π²Ρ‹Π·ΠΎΠ² Ρ‚ΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΌΡ‹ сразу ΠΏΠΎΠΉΠΌΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π΄Π΅Π»Π°Π΅Ρ‚, ΠΈ Π±ΡƒΠ΄Π΅ΠΌ мСньшС Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя Π½Π° Ρ€Π°Π·Π±ΠΎΡ€ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ всСго ΠΊΠΎΠ΄Π°, Π° это принСсСт Π½Π°ΠΌ Π²Ρ‹Π³ΠΎΠ΄Ρƒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» нашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π° Π²ΠΎΡ‚ Π·Π° это Π½Π°Ρ‡Π°Π»ΡŒΡΡ‚Π²ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ нас ΠΏΠΎΡ…Π²Π°Π»ΠΈΡ‚ΡŒ.

Как ΠΈ Ρƒ любого языка программирования ΠΈ срСды программирования Π² VBA Access Π΅ΡΡ‚ΡŒ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΡ‹, ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΠ»ΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚Π°) ΠΈΠ»ΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΅Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² области видимости всСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Ρ‚.Π΅. Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΈΠ· любой Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΠ»ΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚Π°. ΠœΡ‹ сСгодня рассмотрим ΠΎΠ±Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°, соотвСтствСнно Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ….

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ написания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ VBA Access

И для Π½Π°Ρ‡Π°Π»Π° Π΄Π°Π²Π°ΠΉΡ‚Π΅ опрСдСлимся, Ρ‡Ρ‚ΠΎ Π·Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ, Ρ‚.Π΅. Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ. Π― ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² качСствС простого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ с Ρ‚ΠΈΠΏΠΎΠΌ date ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ строку Π²ΠΈΠ΄Π° Β«19 Июня 2014Π³. Β». Как ΠΌΠ½Π΅ каТСтся достаточно простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½ΠΎ Π²Π΄Ρ€ΡƒΠ³ ΠΊΠΎΠΌΡƒ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ пригодится.

ПишСм Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ VBA

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

Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ нашСго ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π΄Π°Π²Π°ΠΉΡ‚Π΅ создадим Ρ„ΠΎΡ€ΠΌΡƒ, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½Π° Π½Π΅Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ, ΠΊΠ»ΠΈΠΊ ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π°ΡˆΡƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. Π”ΡƒΠΌΠ°ΡŽ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Π½Π΅ стоит, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ это ΡƒΠΆΠ΅ Π½Π΅ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ Π΄Π΅Π»Π°Π»ΠΈ, СдинствСнноС скаТу, Ρ‡Ρ‚ΠΎ я Ρ„ΠΎΡ€ΠΌΡƒ Π½Π°Π·Π²Π°Π» «ВСстовая Ρ„ΠΎΡ€ΠΌΠ°Β», элСмСнт ΠΊΠ½ΠΎΠΏΠΊΠ° Π½Π°Π·Π²Π°Π» Β«startΒ» с подписью Β«Π‘Ρ‚Π°Ρ€Ρ‚Β»

Π’Π΅ΠΏΠ΅Ρ€ΡŒ запустим Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΊΠΎΠ΄Π° VBA, это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡƒΡ‚Π΅ΠΌ наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтом Β«ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Β»

И вставляСм ΠΊΠΎΠ΄ нашСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ сразу ΠΆΠ΅ ΠΊΠΎΠ΄ Π΅Π΅ Π²Ρ‹Π·ΠΎΠ²Π°, Ρ‚.Π΅. ΠΊΠΎΠ΄ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ события наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ (вСсь ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½):


Private Function getStrDate(dt As Date) As String
'ОбъявляСм Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅
Dim d As String
Dim m As String
Dim y As String
'ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ дСнь
  d = Day(dt)
'ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ мСсяц
  m = Month(dt)
'ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ мСсяц
  Select Case m
    Case 1: m = "Января"
    Case 2: m = "ЀСвраля"
    Case 3: m = "ΠœΠ°Ρ€Ρ‚Π°"
    Case 4: m = "АпрСля"
    Case 5: m = "Мая"
    Case 6: m = "Июня"
    Case 7: m = "Июля"
    Case 8: m = "Августа"
    Case 9: m = "БСнтября"
    Case 10: m = "ΠžΠΊΡ‚ΡΠ±Ρ€Ρ"
    Case 11: m = "Ноября"
    Case 12: m = "ДСкабря"
  End Select
'ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π³ΠΎΠ΄
y = Year(dt)
'БоСдиняСм ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚
     getStrDate = d & " " & m & " " & y & "Π³. "
End Function

Private Sub start_Click()
'Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ сообщСниС с тСкстом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Π΅Ρ€Π½Π΅Ρ‚ Π½Π°ΠΌ наша функция
MsgBox getStrDate("19.06.2014")
End Sub

Π’ ΠΈΡ‚ΠΎΠ³Π΅ Ρƒ Вас Π΄ΠΎΠ»ΠΆΠ½ΠΎ получится ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Π’ΠΎ, Ρ‡Ρ‚ΠΎ это функция локальная ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΡƒΠ΅Ρ‚ слово Private ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ всС сохраняСм, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Π½Π°ΡˆΡƒ Ρ„ΠΎΡ€ΠΌΡƒ, ΠΆΠΌΠ΅ΠΌ, старт ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ нашС сообщСниС:

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Ρ‚ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ…ΠΎΡ‚Π΅Π»ΠΈ, Ρ‚.Π΅. ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π»ΠΈ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π΄Π°Ρ‚Ρƒ Β«19.06.2014Β» ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

ПишСм Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ VBA

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ создадим ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Β«test_funcΒ» Π° Ρ‚Π°ΠΌ ΡƒΠΆΠ΅ напишСм Π½Π°ΡˆΡƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Access ΠΈ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Β«ΠœΠΎΠ΄ΡƒΠ»ΠΈΒ» ΠΈ ΠΆΠΌΠ΅ΠΌ Β«Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒΒ».

Π—Π°Ρ‚Π΅ΠΌ вставляСм наш ΠΊΠΎΠ΄, с ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ, ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ пишСм Public, ΠΈ Ρƒ Вас Π΄ΠΎΠ»ΠΆΠ½ΠΎ получится Π²ΠΎΡ‚ такая ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π°:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Π²Ρ‹Π·ΠΎΠ²Π° нашСй Π½ΠΎΠ²ΠΎΠΉ глобальной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, для этого мСняСм ΠΊΠΎΠ΄ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ события наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ Π½Π° нашСй тСстовой Ρ„ΠΎΡ€ΠΌΠ΅, Π½Π° Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠΉ:

   MsgBox test_func. getStrDate("19.06.2014")

БохраняСм ΠΈ провСряСм, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅, Π½ΠΎ Π΅Π³ΠΎ Π½Π°ΠΌ Π²Π΅Ρ€Π½ΡƒΠ»Π° ΡƒΠΆΠ΅ совсСм другая функция.

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, всС Π½Π΅Ρ‚ Ρ‚Π°ΠΊ ΡƒΠΆ ΠΈ слоТно, функция ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ простая, Π½ΠΎ Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для собствСнных Π½ΡƒΠΆΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π±ΠΎΠ»Π΅Π΅ слоТными. Π― всСм ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ вСсь ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠΉΡΡ ΠΊΠΎΠ΄ Π²Ρ‹Π½ΠΎΡΠΈΡ‚ΡŒ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π»ΡƒΡ‡ΡˆΠ΅, ΠΊΠ°ΠΊ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с этим ΠΊΠΎΠ΄ΠΎΠΌ, Ρ‚Π°ΠΊ ΠΈ просто для восприятия. НадСюсь, сСгодняшняя ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΠΎΠΌΠΎΠ³Π»Π° Π’Π°ΠΌ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ с вопросом «Как Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° VBA Access?Β». Π£Π΄Π°Ρ‡ΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° VBA.

Нравится2НС нравится

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° VBA (Visual Basic for Applications)

Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ VBA активизируСтся ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Alt + F11 ΠΈΠ»ΠΈ БСрвис, ΠœΠ°ΠΊΡ€ΠΎΡ, Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Visual Basic (Tools, Macro, Visual Basic Editor) ΠΈΠ»ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Visual Basic (Visual Basic Editor) ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов Visual Basic.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΈΠ· Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° VBA Π² Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π’ΠΈΠ΄ Microsoft Excel (View Microsoft Excel) Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ VBA состоит ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… основных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²: ΠΎΠΊΠ½ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΎΠΊΠ½ΠΎ свойств, ΠΎΠΊΠ½ΠΎ рСдактирования ΠΊΠΎΠ΄Π°, ΠΎΠΊΠ½Π° Ρ„ΠΎΡ€ΠΌ, мСню ΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов.

Β 

Окно ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Окно ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ VBA активизируСтся Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π’ΠΈΠ΄, Окно ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (View, Project window) ΠΈΠ»ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ Окно ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (Project window) Π’ ΠΎΠΊΠ½Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (VBAProject) прСдставлСна иСрархичСская структура Ρ„Π°ΠΉΠ»ΠΎΠ² Ρ„ΠΎΡ€ΠΌ ΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (рис. 1.2).

Β 

Π’ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ автоматичСски создаСтся ΠΌΠΎΠ΄ΡƒΠ»ΡŒ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ листа ΠΈ для всСй ΠΊΠ½ΠΈΠ³ΠΈ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹, макросов ΠΈ классов. По своСму ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ дСлятся Π½Π° Π΄Π²Π° Ρ‚ΠΈΠΏΠ°: ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ стандартныС. К стандартным модулям относятся Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат макросы. Π’Π°ΠΊΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Вставка, ΠœΠΎΠ΄ΡƒΠ»ΡŒ (Insert, Module). К модулям ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² относятся ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, связанныС с Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠ½ΠΈΠ³ΠΎΠΉ, Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌΠΈ листами, Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ, ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ класса.

Β 

Π€ΠΎΡ€ΠΌΡ‹ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Вставка, UserForm (Insert, UserForm), Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈ класса β€” ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Вставка, ΠœΠΎΠ΄ΡƒΠ»ΡŒ класса (Insert, Module). По ΠΌΠ΅Ρ€Π΅ создания, добавлСния ΠΈ удалСния Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° эти измСнСния ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² ΠΎΠΊΠ½Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° ΠΈΠ· ΠΎΠΊΠ½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° производится Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ Π·Π½Π°Ρ‡ΠΊΠ° Ρ„Π°ΠΉΠ»Π° с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π€Π°ΠΉΠ», Π£Π΄Π°Π»ΠΈΡ‚ΡŒ (File, Delete).

Β 

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

Β 

Рис. 1.2. Окно ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Β 

Окно для рСдактирования ΠΊΠΎΠ΄Π°

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ указатСля Π½Π° Π·Π½Π°Ρ‡ΠΎΠΊ Ρ„Π°ΠΉΠ»Π° Π² ΠΎΠΊΠ½Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄Π²ΠΎΠΉΠ½ΠΎΠ³ΠΎ Ρ‰Π΅Π»Ρ‡ΠΊΠ° ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠΊΠ½ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΊΠΎΠ΄Π° (рис. 1.3) для ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ модуля.

Β 

Рис. 1.3. Окно рСдактирования ΠΊΠΎΠ΄Π°

Β 

Окно рСдактирования ΠΊΠΎΠ΄Π° слуТит Π² качСствС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° для Π²Π²ΠΎΠ΄Π° ΠΈ измСнСния ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ прилоТСния. Код Π²Π½ΡƒΡ‚Ρ€ΠΈ модуля ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½ Π² Π²ΠΈΠ΄Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅. Π’ ΠΎΠΊΠ½Π΅ рСдактирования доступны Π΄Π²Π° Ρ€Π΅ΠΆΠΈΠΌΠ° прСдставлСния ΠΊΠΎΠ΄Π°: просмотр ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈ всСго модуля. ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΎΠΊΠ½Π° рСдактирования ΠΊΠΎΠ΄Π° осущСствляСтся Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π΄Π²ΡƒΡ… ΠΊΠ½ΠΎΠΏΠΎΠΊ Π² Π½ΠΈΠΆΠ½Π΅ΠΌ Π»Π΅Π²ΠΎΠΌ ΡƒΠ³Π»Ρƒ ΠΎΠΊΠ½Π° рСдактирования ΠΊΠΎΠ΄Π° (Ρ‚Π°Π±Π». 1.1), Π»ΠΈΠ±ΠΎ установкой ΠΈΠ»ΠΈ снятиСм Ρ„Π»Π°ΠΆΠΊΠ°ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ всСго модуля (Default to Full Module View) Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ (Editor) Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ (Options), ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ Π½Π° экранС ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ БСрвис, ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹(Tools, Options) (рис. 1.4).

Β 

Π’Π°Π±Π»ΠΈΡ†Π° 1.1. Π Π΅ΠΆΠΈΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΊΠΎΠ΄Π°

КнопкаРСТим Ρ€Π°Π±ΠΎΡ‚Ρ‹
ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°
ВсС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ модуля

Β 

Рис. 1.4. Π”ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

Β 

Π”Π²Π° Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ…ΡΡ списка Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части ΠΎΠΊΠ½Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΊΠΎΠ΄Π° ΠΎΠ±Π»Π΅Π³Ρ‡Π°ΡŽΡ‚ ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°Ρ…. Π›Π΅Π²Ρ‹ΠΉ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉΡΡ список позволяСт Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ элСмСнт ΠΈΠ»ΠΈ Ρ„ΠΎΡ€ΠΌΡƒ, Π° ΠΏΡ€Π°Π²Ρ‹ΠΉ β€” содСрТит список событий, допустимых для Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ Π² Π»Π΅Π²ΠΎΠΌ спискС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ элСмСнта управлСния Π² Ρ„ΠΎΡ€ΠΌΠ΅ посрСдством Π΄Π²ΠΎΠΉΠ½ΠΎΠ³ΠΎ Ρ‰Π΅Π»Ρ‡ΠΊΠ° ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ указатСля Π½Π° элСмСнт управлСния ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° (Veiw Code) открываСтся ΠΎΠΊΠ½ΠΎ рСдактирования ΠΊΠΎΠ΄Π° ΠΊΠ°ΠΊ Ρ€Π°Π· Π² Ρ‚ΠΎΠΌ мСстС, Π³Π΄Π΅ располагаСтся ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°, связанная с этим элСмСнтом управлСния. ΠžΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΎΡ‚ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ управлСния быстрСС всСго ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠžΠ±ΡŠΠ΅ΠΊΡ‚(Veiw Object).

Β 

Π˜Π½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ возмоТности Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΊΠΎΠ΄Π°

НаписаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ сущСствСнно облСгчаСтся Π·Π° счСт способности Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΊΠΎΠ΄Π° автоматичСски Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ написаниС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², свойств ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². ΠŸΡ€ΠΈ написании ΠΊΠΎΠ΄Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ сам ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ список ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², логичСски Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΡ… Π²Π²ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ. НапримСр, набирая ΠΊΠΎΠ΄

Β 

Range(«A1»).

Β 

послС Π²Π²ΠΎΠ΄Π° Ρ‚ΠΎΡ‡ΠΊΠΈ Π½Π° экранС отобразится список ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² (рис. 1.5), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ логичСски Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‚ Π΄Π°Π½Π½ΡƒΡŽ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ. Π”Π²ΠΎΠΉΠ½ΠΎΠΉ Ρ‰Π΅Π»Ρ‡ΠΎΠΊ Π½Π° Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌ элСмСнтС ΠΈΠ· этого списка ΠΈΠ»ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ клавиши <Π’Π°b> вставляСт Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ΅ имя Π² ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠŸΡ€ΠΈ этом использованиС клавиши <Π’Π°b> вмСсто ΠΌΡ‹ΡˆΠΊΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅ΠΉ, Ρ‚. ΠΊ. эта клавиша находится прямо ΠΏΠΎΠ΄ Ρ€ΡƒΠΊΠΎΠΉ ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ Π½Π° Π½Π΅Π΅ производится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΈΠΌ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°Π»ΡŒΡ†Π° Π»Π΅Π²ΠΎΠΉ Ρ€ΡƒΠΊΠΈ, Ρ‡Ρ‚ΠΎ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ особого Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ усилий.

Β 

Рис. 1.5. Бписок ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²

Β 

АвтоматичСскоС ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ списка ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² происходит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ установлСнном Ρ„Π»Π°ΠΆΠΊΠ΅ Бписок ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² (Auto List Members) Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ (Editor) Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ (Options), ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ Π½Π° экранС послС Π²Ρ‹Π±ΠΎΡ€Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ БСрвис, ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ (Tools, Options).

Β 

Бписок ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° экран Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ клавиш <Ctrl>+<J>, ΠΏΡ€ΠΈ этом список отобраТаСтся ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ установлСнном, Ρ‚Π°ΠΊ ΠΈ ΠΏΡ€ΠΈ снятом Ρ„Π»Π°ΠΆΠΊΠ΅ Бписок ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² (Auto List Members) Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ (Editor) Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ (Options).

Β 

ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ списка ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², логичСски Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΡ… Π²Π²ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ,, являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… качСств Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΊΠΎΠ΄Π°. Π­Ρ‚ΠΈΠΌ качСством ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ рСсурсы Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΊΠΎΠ΄Π° Π½Π΅ ΠΈΡΡ‡Π΅Ρ€ΠΏΡ‹Π²Π°ΡŽΡ‚ΡΡ. Π”Ρ€ΡƒΠ³ΠΈΠΌ Π΅Π³ΠΎ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° качСством являСтся автоматичСскоС ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° экранС свСдСний ΠΎ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°Ρ…, функциях, свойствах ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… послС Π½Π°Π±ΠΎΡ€Π° ΠΈΡ… ΠΈΠΌΠ΅Π½ΠΈ (рис. 1.6).

Β 

Рис. 1.6. ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹Π΅ свСдСния ΠΎ Π²Π²ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅

Β 

АвтоматичСскоС ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° экранС свСдСний ΠΎ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°Ρ…, функциях, свойствах ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… послС Π²Π²ΠΎΠ΄Π° ΠΈΡ… ΠΈΠΌΠ΅Π½ΠΈ происходит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ установлСнном Ρ„Π»Π°ΠΆΠΊΠ΅ ΠšΡ€Π°Ρ‚ΠΊΠΈΠ΅ свСдСния (Auto Quick Info) Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ (Editor) Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ (Options), ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ Π½Π° экранС послС Π²Ρ‹Π±ΠΎΡ€Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ БСрвис, ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ (Tools, Options) (см. рис. 1.4).

Β 

ΠžΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π²Ρ‹ΡˆΠ΅ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ подсказку ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° экран Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ клавиш <Ctrl>+<!>. ΠŸΡ€ΠΈ этом Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π°Ρ подсказка отобраТаСтся ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ установлСнном, Ρ‚Π°ΠΊ ΠΈ ΠΏΡ€ΠΈ снятом Ρ„Π»Π°ΠΆΠΊΠ΅ ΠšΡ€Π°Ρ‚ΠΊΠΈΠ΅ свСдСния Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ (Options).

Β 

Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΊΠΎΠ΄Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ синтаксиса Π½Π°Π±Ρ€Π°Π½Π½ΠΎΠΉ строки ΠΊΠΎΠ΄Π° сразу послС наТатия клавиши <Enter>. Если послС Π½Π°Π±ΠΎΡ€Π° строки ΠΈ наТатия клавиши <Enter> строка выдСляСтся красным Ρ†Π²Π΅Ρ‚ΠΎΠΌ, Ρ‚ΠΎ это ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ синтаксичСской ошибки Π² Π½Π°Π±Ρ€Π°Π½Π½ΠΎΠΉ строкС. Π­Ρ‚Ρƒ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΈ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ссли установлСн Ρ„Π»Π°ΠΆΠΎΠΊ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°_синтаксиса (Auto Syntax Check) Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ (Editor) Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ (Options), ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ Π½Π° экранС посрСдством Π²Ρ‹Π±ΠΎΡ€Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ БСрвис, ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ (Tools, Options) (см. рис. 1.4), ΠΏΠΎΠΌΠΈΠΌΠΎ выдСлСния красным Ρ†Π²Π΅Ρ‚ΠΎΠΌ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° ΠΊΠΎΠ΄Π° с синтаксичСской ошибкой, Π½Π° экранС отобраТаСтся Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, ΠΏΠΎΡΡΠ½ΡΡŽΡ‰Π΅Π΅, какая возмоТная ошибка ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π°.

Β 

Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΊΠΎΠ΄Π° ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠΎΡ‰Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ, ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Если курсор Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π½Π° ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΌ словС языка VBA, ΠΈΠΌΠ΅Π½ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, свойства ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ <F1>, Ρ‚ΠΎ Π½Π° экранС появится ΠΎΠΊΠ½ΠΎ со справочной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎΠ± этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π² справкС имССтся ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎ позволяСт быстрСС Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² ситуации, которая ΠΏΡ€ΠΈ написании ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΠ·Π°Π΄Π°Ρ‡ΠΈΠ»Π° вас.

Β 

Π Π°Π±ΠΎΡ‚Π° ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΊΡ€Π°Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² ΠΌΠΈΡ€ΠΎΠΏΠΎΠ·Π½Π°-ния ΠΈ творчСства. Π‘Ρ‚ΠΈΠ»ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΎΡ‡Π΅Π½ΡŒ ярко ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅ Ρ‡Π°ΠΉΠ½ΠΈΠΊΠ°. НСсмотря Π½Π° всю Π΅Π³ΠΎ ΡˆΡƒΡ‚Π»ΠΈΠ²ΠΎΡΡ‚ΡŒ ΠΈ ΠΊΠ°ΠΆΡƒΡ‰ΡƒΡŽΡΡ Π°Π±ΡΡƒΡ€Π΄Π½ΠΎΡΡ‚ΡŒ, Π² Π½Π΅ΠΌ сформулирован ΠΌΠ½ΠΎΠ³ΠΎΠ²Π΅ΠΊΠΎΠ²ΠΎΠΉ ΠΎΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‡Π΅Π½ΡŒ часто ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ быстрым ΠΈ эффСктивным Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ. ΠŸΠΎΠΏΡ‹Ρ‚Π°Π΅ΠΌΡΡ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ‡Π°ΠΉΠ½ΠΈΠΊΠ° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Π£ программиста спросили, ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ Π²ΡΠΊΠΈΠΏΡΡ‚ΠΈΡ‚ΡŒ Π²ΠΎΠ΄Ρƒ, Ссли Π½Π° ΠΊΡƒΡ…Π½Π΅ Π΅ΡΡ‚ΡŒ спички, газовая ΠΏΠ»ΠΈΡ‚Π°, Π²ΠΎΠ΄ΠΎΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΡ€Π°Π½ ΠΈ пустой Ρ‡Π°ΠΉΠ½ΠΈΠΊ, стоящий Π½Π° ΠΊΡƒΡ…ΠΎΠ½Π½ΠΎΠΌ столС. «Π’Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΠΎ! β€” ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠ» программист. — НалСйтС Π² Ρ‡Π°ΠΉΠ½ΠΈΠΊ Π²ΠΎΠ΄Ρƒ, Π·Π°ΠΆΠ³ΠΈΡ‚Π΅ Π³ΠΎΡ€Π΅Π»ΠΊΡƒ Π³Π°Π·ΠΎΠ²ΠΎΠΉ ΠΏΠ»ΠΈΡ‚Ρ‹ ΠΈ ΠΏΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π½Π° Π½Π΅Π΅ Ρ‡Π°ΠΉΠ½ΠΈΠΊ.» Π’ΠΎΠ³Π΄Π° программисту Π·Π°Π΄Π°ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ вопрос: «ΠΠ° ΠΊΡƒΡ…ΠΎΠ½Π½ΠΎΠΌ столС стрит Ρ‡Π°ΠΉΠ½ΠΈΠΊ с Π²ΠΎΠ΄ΠΎΠΉ, Π³ΠΎΡ€Π΅Π»ΠΊΠ° Π³Π°Π·ΠΎΠ²ΠΎΠΉ ΠΏΠ»ΠΈΡ‚Ρ‹ Π·Π°ΠΆΠΆΠ΅Π½Π°. Как Π²ΡΠΊΠΈΠΏΡΡ‚ΠΈΡ‚ΡŒ Ρ‡Π°ΠΉΠ½ΠΈΠΊ?» «Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ€Π½ΠΎ! — ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ программист. β€” Надо просто Π²Ρ‹Π»ΠΈΡ‚ΡŒ Π²ΠΎΠ΄Ρƒ ΠΈΠ· Ρ‡Π°ΠΉΠ½ΠΈΠΊΠ°, ΠΏΠΎΠ³Π°ΡΠΈΡ‚ΡŒ Π³ΠΎΡ€Π΅Π»ΠΊΡƒ ΠΈ ΠΌΡ‹ оказываСмся Π² условиях Π·Π°Π΄Π°Ρ‡ΠΈ, которая Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Ρ€Π΅ΡˆΠ΅Π½Π°!»

Β 

Окно рСдактирования Ρ„ΠΎΡ€ΠΌ (UserForm)

Для создания Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΎΠΊΠΎΠ½, Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² VBA, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ„ΠΎΡ€ΠΌΡ‹. Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Ρ„ΠΎΡ€ΠΌ являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· основных инструмСнтов Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования. Π€ΠΎΡ€ΠΌΠ° Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ добавляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Вставка, Π€ΠΎΡ€ΠΌΠ° (Insert, Form) ΠΈΠ»ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ UserForm (Insert UserForm). Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π½Π° экран выводится нСзаполнСнная Ρ„ΠΎΡ€ΠΌΠ° с панСлью инструмСнтов ПанСль элСмСнтов (Toolbox) (рис. 1.7).

Β 

Рис. 1.7. Окно рСдактирования Ρ„ΠΎΡ€ΠΌ ΠΈ панСль инструмСнтов ПанСль элСмСнтов

Β 

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ панСль инструмСнтов ПанСль элСмСнтов ΠΈΠ· Π½Π΅Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ любоС Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ΅ для прилоТСния Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ. Π Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ элСмСнта Π² Ρ„ΠΎΡ€ΠΌΠ΅ осущСствляСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ дСйствий:

Β 

  1. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡ΠΎΠΊ Ρ‚ΠΎΠ³ΠΎ элСмСнта, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² Ρ„ΠΎΡ€ΠΌΠ΅.
  2. ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΌΡ‹ΡˆΠΈ Π½Π° Ρ‚ΠΎ мСсто, Π³Π΄Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ элСмСнт.
  3. НаТмитС Π»Π΅Π²ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΌΡ‹ΡˆΠΈ ΠΈ, Π½Π΅ отпуская Π΅Π΅, растянитС появившийся ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ Π΄ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ².
  4. ΠžΡ‚ΠΏΡƒΡΡ‚ΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΌΡ‹ΡˆΠΈ. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ управлСния Π½Π° Π½ΡƒΠΆΠ½ΠΎΠΌ мСсто создан.

Β 

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

Β 

Рис. 1.8. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ мСню Π€ΠΎΡ€ΠΌΠ°Ρ‚

Β 

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π²Ρ‹Ρ€Π΅Π·Π°Ρ‚ΡŒ ΠΈ Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ элСмСнты управлСния, располоТСнныС Π½Π° повСрхности Ρ„ΠΎΡ€ΠΌΡ‹. Для облСгчСния размСщСния ΠΈ выравнивания элСмСнтов управлСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ сСтка. ΠΠΊΡ‚ΠΈΠ²ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ ΠžΠ±Ρ‰ΠΈΠ΅ (General) Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ (Options), Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ БСрвис, ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹(Tools, Options), Ρ‚Π°ΠΌ ΠΆΠ΅ устанавливаСтся шаг сСтки. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ мСню Π€ΠΎΡ€ΠΌΠ°Ρ‚ (Format) Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ ΠΈ ΠΎΠ±Π»Π΅Π³Ρ‡Π°ΡŽΡ‚ процСсс выравнивания элСмСнтов управлСния ΠΊΠ°ΠΊ ΠΏΠΎ ΠΈΡ… Π²Π·Π°ΠΈΠΌΠ½ΠΎΠΌΡƒ ΠΌΠ΅ΡΡ‚ΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ, Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌ (рис. 1.8).

Β 

Окно свойств

Π’ ΠΎΠΊΠ½Π΅ свойств ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ основныС установки свойств Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΠ»ΠΈ элСмСнта управлСния. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ это ΠΎΠΊΠ½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ свойства ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΡ… установки. Для просмотра свойств Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π°Π΄ΠΎ Π»ΠΈΠ±ΠΎ Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Окно свойств (Properties Window) Π»ΠΈΠ±ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π’ΠΈΠ΄, Окно свойств (View, Properties Window) (рис. 1.9).

Β 

Рис. 1.9. Окно свойств

Β 

Окно свойств состоит ΠΈΠ· Π΄Π²ΡƒΡ… составных частСй: Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ ΠΈ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ. Π’ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части ΠΎΠΊΠ½Π° свойств располагаСтся Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉΡΡ список, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ любой элСмСнт управлСния Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΠ»ΠΈ саму Ρ„ΠΎΡ€ΠΌΡƒ. Рабочая Ρ‡Π°ΡΡ‚ΡŒ состоит ΠΈΠ· Π΄Π²ΡƒΡ… Π²ΠΊΠ»Π°Π΄ΠΎΠΊ: По Π°Π»Ρ„Π°Π²ΠΈΡ‚Ρƒ (Alphabetic) ΠΈ По катСгориям (Categorized), ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠ΅ Π½Π°Π±ΠΎΡ€ свойств Π² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎΠΌ порядкС ΠΈΠ»ΠΈ ΠΏΠΎ катСгориям. Π’ ΠΎΠ±ΠΎΠΈΡ… Π²ΠΊΠ»Π°Π΄ΠΊΠ°Ρ… свойство Name (имя элСмСнта управлСния) Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ. Π˜Π·ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ значСния свойств ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… способов:

Β 

  • Π’Π²ΠΎΠ΄ΠΎΠΌ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ значСния свойства Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ ΠΏΠΎΠ»Π΅.
  • ЗначСния Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° свойств ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΈΠ· Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ списка. Π Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉΡΡ список активизируСтся Ρ‰Π΅Π»Ρ‡ΠΊΠΎΠΌ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΠΎΠ»Π΅ ΠΎΠΊΠ½Π° свойств.

Β 

Окно ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (Object Browser)

Окно ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (Object Browser) вызываСтся ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π’ΠΈΠ΄, ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (View, Object Browser) ΠΈΠ»ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (Object Browser) (рис. 1.10). Π’ этом ΠΎΠΊΠ½Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ список всСх ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π² систСмС ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ создании ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Β 

Рис. 1.10. Окно ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

Β 

Окно ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (Object Browser) состоит ΠΈΠ· Ρ‚Ρ€Π΅Ρ… основных частСй:

Β 

  1. Π Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ списка ΠŸΡ€ΠΎΠ΅ΠΊΡ‚/Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° (Project/Library) Π² Π»Π΅Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ ΠΎΠΊΠ½Π°. Π’ этом Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌΡΡ спискС ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π’ частности, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Excel, VBA, Office ΠΈ VBAProject (ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°). Π’Ρ‹Π±ΠΎΡ€ Π² спискС строки <ВсС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ> (<Аll Libraries>) ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² всСх Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ.
  2. Бписка ΠšΠ»Π°ΡΡΡ‹ (Classes). ПослС Π²Ρ‹Π±ΠΎΡ€Π° ΠΈΠ· Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ списка ΠŸΡ€ΠΎΠ΅ΠΊΡ‚/Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° (Project/Library) просматриваСмой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ VBA, всС классы ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ выводятся Π² спискС ΠšΠ»Π°ΡΡΡ‹ (Classes).
  3. Бписка ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ (Members). ПослС Π²Ρ‹Π±ΠΎΡ€Π° класса ΠΈΠ· списка ΠšΠ»Π°ΡΡΡ‹ (Classes) просматриваСмой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ FileSystem, всС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ класса выводятся Π² спискС ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ (Members). ΠŸΡ€ΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠΈ строки Π² этом спискС Π² Π½ΠΈΠΆΠ½Π΅ΠΉ части ΠΎΠΊΠ½Π° ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (Object Browser) приводится Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ информация ΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ссли Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Π‘ΠΏΡ€Π°Π²ΠΊΠ° (Help), Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов Π² ΠΏΡ€Π°Π²ΠΎΠΉ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части ΠΎΠΊΠ½Π° ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (Object Browser), Ρ‚ΠΎ Π½Π° экранС отобразится ΠΎΠΊΠ½ΠΎ Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ Visual_Basic (Microsoft Visual Basic Help) с ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅.

Если Π²Ρ‹ устали ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ VBA, Ρ‚ΠΎ ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ Π²Π°ΠΌ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ Π½Π° сайтС http://www.fly-phone.ru/notes/android/luchshie-programmy-dlya-android/

Π•Ρ‰Π΅ записи ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ VBA? | KV. by

НСльзя Π±Ρ‹Π»ΠΎ ΡˆΠ΅Ρ„Π° ΡƒΡ‡ΠΈΡ‚ΡŒ
скрипты ΠΏΠΈΡΠ°Ρ‚ΡŒ. Π’Ρ‡Π΅Ρ€Π° Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚:
«ΠΡƒΠΆΠ½ΠΎ скриптик Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π°
VBA, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡ‰Π΅Ρ‚ Π²ΠΎ всСх
*.doc-Ρ„Π°ΠΉΠ»Π°Ρ… Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΈ
строку «gcc» ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚
ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ список Ρ„Π°ΠΉΠ»ΠΎΠ²;
я ΡƒΠΆΠ΅ Π½Π°ΠΊΠΎΠΏΠ°Π» Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ открытия
Ρ„Π°ΠΉΠ»ΠΎΠ², чтСния ΠΏΠ°ΠΏΠΊΠΈ, сам
напишСшь ΠΈΠ»ΠΈ я Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ…
сдСлаю?» НС ΠΌΠΎΠ³ F3 Π²
ΠŸΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠ΅ Π½Π°ΠΆΠ°Ρ‚ΡŒ…

По
ΠΌΠΎΡ‚ΠΈΠ²Π°ΠΌ bash.org.ru

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

Π Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ΡΡ данная
Π°Π±Π±Ρ€Π΅Π²ΠΈΠ°Ρ‚ΡƒΡ€Π° ΠΊΠ°ΠΊ Visual Basic for Applications,
Π½Π° русский язык это ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ
пСрСводят ΠΊΠ°ΠΊ «Visual Basic для
ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ». Π’Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ язык
программирования, встроСнный Π²ΠΎ
ΠΌΠ½ΠΎΠ³ΠΈΠ΅ извСстныС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ
для написания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ
простых сцСнариСв (макросов) для
Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ своих дСйствий.
Π‘Π°ΠΌΡ‹ΠΌ извСстным ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²,
ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Microsoft Office,
Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ VBA ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ…
ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°Ρ…, Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ
AutoCAD, SolidWorks, CorelDRAW, WordPerfect ΠΈ ESRI ArcGIS.

Как нСслоТно Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ ΠΏΠΎ
названию Π΄Π°Π½Π½ΠΎΠ³ΠΎ языка, Π΅Π³ΠΎ основой
являСтся «Π±ΠΎΠ»ΡŒΡˆΠΎΠΉ» Visual Basic,
хотя, ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ
языком, синтаксис VBA нСсколько
ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½. Π‘Π΄Π΅Π»Π°Π½ΠΎ это, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, Π½Π΅
случайно — Π΄Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ макросы
Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ доступны ΠΈ Ρ‚Π΅ΠΌ людям,
ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ достаточно смутно, Π²ΠΎΠΎΠ±Ρ‰Π΅
говоря, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ сСбС, Ρ‡Ρ‚ΠΎ
Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅.
Для этого ΠΆΠ΅ Π² прилоТСниях, Π³Π΄Π΅ VBA
доступСн ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π² качСствС
срСдства Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΡ…
дСйствий, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π΅ΡΡ‚ΡŒ ΠΈ
ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ «ΠΌΠ°ΡΡ‚Π΅Ρ€Π°»,
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ
сцСнарии Π² Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ —
Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π·Π°
ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ
выполняСмых дСйствий ΠΈ Π·Π°Ρ‚Π΅ΠΌ
«ΠΏΠ΅Ρ€Π΅ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ» Π΅Ρ‘ Π½Π° язык
ΠΊΠΎΠΌΠ°Π½Π΄, доступных Π΅ΠΌΡƒ ΠΏΡ€ΠΈ
использовании VBA.

НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ VBA являСтся
ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ языком, ΠΈ
ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, написанныС Π½Π° Π½Ρ‘ΠΌ, ΠΌΠΎΠ³ΡƒΡ‚
Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ
прилоТСния, содСрТащСго Π² сСбС
ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ VBA-сцСнариСв, этот
язык прСдоставляСт достаточно
ΡΠ΅Ρ€ΡŒΡ‘Π·Π½Ρ‹Π΅ срСдства для
манипулирования COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ,
Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈ систСмой Π² Ρ†Π΅Π»ΠΎΠΌ. Π’ связи
с этим понятСн интСрСс ΠΊ Π½Π΅ΠΌΡƒ
вирусописатСлСй. Π”ΠΎ сих ΠΏΠΎΡ€
Π½Π°Π±Π»ΡŽΠ΄Π°ΡŽΡ‚ΡΡ массовыС рассылки
Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ… Microsoft Office (Π²
основном, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, Microsoft Word),
содСрТащих Π² сСбС врСдоносный ΠΊΠΎΠ΄
Π½Π° VBA. Π’ связи с этим Π² свСТих
вСрсиях «ΠžΡ„иса» корпорация
Microsoft достаточно ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎ
ΠΏΠΎΡ‚Ρ€ΡƒΠ΄ΠΈΠ»Π°ΡΡŒ Π½Π°Π΄ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ
Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с макросами —
ΠΎΠ½ΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹, ΠΈ ΠΎΡ‚
ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ трСбуСтся
ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ шаг
макроса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚
ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΡΡ‚Π°Ρ‚ΡŒ источником
ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈΠ»ΠΈ
нСприятностСй.

Π’ Π½ΠΎΠ²ΠΎΠΉ вСрсии Microsoft Office для Mac OS
ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° VBA Π±Ρ‹Π»Π° ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½Π°, хотя
Π΅Π³ΠΎ возвращСния ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‚ Π²
готовящСйся ΠΊ выпуску вСрсии Office
2011. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, взгляды экспСртов
Π½Π° Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅ Visual Basic for Applications вСсьма
Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½Ρ‹ ΠΈ Π²Π°Ρ€ΡŒΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΎΡ‚
ΠΊΡ€Π°ΠΉΠ½Π΅Π³ΠΎ пСссимизма Π΄ΠΎ
Π±Π΅Π·ΡƒΠ΄Π΅Ρ€ΠΆΠ½ΠΎΠ³ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΌΠ°.
ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΆΠ΅ просто ΠΏΠΎΠ»Π΅Π·Π½ΠΎ
Π·Π½Π°Ρ‚ΡŒ VBA хотя Π±Ρ‹ Π½Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ
ΡƒΡ€ΠΎΠ²Π½Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ способным
ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ с Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΠΌΠΈ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ
ΠΈ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ хотя Π±Ρ‹ Π±Π°Π·ΠΎΠ²ΠΎΠΉ
Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ своих дСйствий.

Π’Π°Π΄ΠΈΠΌ Π‘Π’ΠΠΠšΠ•Π’Π˜Π§,
[email protected]

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ пСрСмСнная ΠΈ ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π΅Ρ‘ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ?

Π₯итрости Β»
1 Май 2011 Β  Β Β  Β Π”ΠΌΠΈΡ‚Ρ€ΠΈΠΉ Β  Β Β  Β 166302 просмотров


ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ — это Π½Π΅ΠΊΠΈΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ VBA Ρ…Ρ€Π°Π½ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅. Если ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅, Ρ‚ΠΎ это ΠΊΠ°ΠΊ ΠΊΠΎΡ€ΠΎΠ±ΠΎΡ‡ΠΊΠ°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π° Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости Π΄ΠΎΡΡ‚Π°Ρ‚ΡŒ. Волько Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΡ‹ Ρ…Ρ€Π°Π½ΠΈΠΌ число, строку ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Ρ‚Π΅ΠΌ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ ΠΈΠ· Π½Π΅Ρ‘ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠΎΠ΄Π΅ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости.

Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Π° пСрСмСнная? Π§Ρ‚ΠΎΠ±Ρ‹ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎΠ·ΠΆΠ΅ Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚. НапримСр, Π² ячСйкС А1 записана сумма, Π° Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ запускаСтся ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‚Ρ‡Π΅Ρ‚Π°. ПослС обновлСния ΠΎΡ‚Ρ‡Π΅Ρ‚Π° сумма Π² А1 измСнится. НСобходимо ΡΠ²Π΅Ρ€ΠΈΡ‚ΡŒ сумму Π΄ΠΎ обновлСния с суммой послС ΠΈ Π² зависимости ΠΎΡ‚ этого ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ дСйствиС. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ячСйки Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½Π° обновится ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ послС обновлСния.


Β 
ВрСбования ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ:

Π’ качСствС ΠΈΠΌΠ΅Π½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ символы Π±ΡƒΠΊΠ² ΠΈ числа, Π½ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π² ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ всСгда Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π±ΡƒΠΊΠ²Π°. НС допускаСтся использованиС Ρ‚ΠΎΡ‡ΠΊΠΈ, запятой, ΠΏΡ€ΠΎΠ±Π΅Π»Π° ΠΈ ΠΈΠ½Ρ‹Ρ… Π·Π½Π°ΠΊΠΎΠ² прСпинания, ΠΊΡ€ΠΎΠΌΠ΅ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ подчСркивания. Π”Π»ΠΈΠ½Π° ΠΈΠΌΠ΅Π½ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Ρ‚ΡŒ 254 символов. Π’Π°ΠΊ ΠΆΠ΅ нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² качСствС ΠΈΠΌΠ΅Π½ для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ константы Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° VBA(Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Sub, Msgbox, ubound, Date ΠΈ Ρ‚.ΠΏ.). Π’Π°ΠΊ ΠΆΠ΅ для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π½Π΅Π²Π°ΠΆΠ΅Π½ рСгистр Π±ΡƒΠΊΠ².

Β 
Π’Π΅ΠΏΠ΅Ρ€ΡŒ рассмотрим основныС Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π² VBA Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…:

Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…Π—Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π±Π°ΠΉΡ‚ Π² ΠΏΠ°ΠΌΡΡ‚ΠΈΠŸΡ€Π΅Π΄Π΅Π»Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
Byte1Π¦Π΅Π»Ρ‹Π΅ числа ΠΎΡ‚ 0 Π΄ΠΎ 255
Boolean2True ΠΈΠ»ΠΈ False
Integer2Π¦Π΅Π»Ρ‹Π΅ числа ΠΎΡ‚ (-32768) Π΄ΠΎ 32767
Long4Π¦Π΅Π»Ρ‹Π΅ числа ΠΎΡ‚ (-2147483648) Π΄ΠΎ 2147483647
Single4ΠžΡ‚ (–3. 402823Π•+38) Π΄ΠΎ (–1.401298Π•-45) ΠΈ ΠΎΡ‚ 1.401298Π•-45 Π΄ΠΎ 3.402823Π•+38
Double8ΠžΡ‚ Β±1.79769313486232Π•+308 Π΄ΠΎ Β±4.94065645841247Π•-324
Decimal12ΠžΡ‚ Β±79228162514264337593543950335 Π±Π΅Π· дСсятичных Π·Π½Π°ΠΊΠΎΠ² Π΄ΠΎ Β±7,9228162514264337593543950335 с 28-ю Π·Π½Π°ΠΊΠ°ΠΌΠΈ послС запятой
Currency8ΠžΡ‚ (–922337203685477.5808) Π΄ΠΎ 922337203685477.5807
Date8ΠžΡ‚ 01.01.100 Π΄ΠΎ 31.12.9999(Π½Π΅ Π½Π°Π΄ΠΎ ΠΏΡƒΡ‚Π°Ρ‚ΡŒ с Π΄Π°Ρ‚Π°ΠΌΠΈ Π² Excel — 01.01.1900 Π΄ΠΎ 31.12.9999)
String10(+Π΄Π»ΠΈΠ½Π° строки)ΠžΡ‚ 0 Π΄ΠΎ 65400 символов для фиксированных строк ΠΈ Ρ‡ΡƒΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ 2 ΠΌΠ»Ρ€Π΄. для строк ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹
Object4Π›ΡŽΠ±ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚
ArrayΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ΡΡ ΠΊΠΎΠ»-Π²ΠΎΠΌ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ элСмСнтов
VariantΠΎΡ‚ 16-Ρ‚ΠΈΠ›ΡŽΠ±ΠΎΠΉ ΠΈΠ· встроСнных Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ большС всСго памяти Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Variant. ΠŸΡ€ΠΈΡ‚ΠΎΠΌ это Ссли ΠΎΠ½ Ρ…Ρ€Π°Π½ΠΈΡ‚ числовыС Π΄Π°Π½Π½Ρ‹Π΅. Если ΠΆΠ΅ такая пСрСмСнная Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ строкового Ρ‚ΠΈΠΏΠ°(тСкст), Ρ‚ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠΉ памяти Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Ρ€ΡΡ‚ΡŒΡΡ ΡƒΠΆΠ΅ начиная с 22 Π±Π°ΠΉΡ‚ + Π΄Π»ΠΈΠ½Π° строки, хранящСйся Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π§Π΅ΠΌ большС памяти Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ пСрСмСнная, Ρ‚Π΅ΠΌ дольшС ΠΎΠ½Π° инициализируСтся Π² памяти ΠΈ Ρ‚Π΅ΠΌ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ. Π’ΠΎΡ‚ поэтому ΠΈ Π²Π°ΠΆΠ½ΠΎ явно Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ — это называСтся ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ.

Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Decimal большС Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, поэтому ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π² VBA Π½Π΅ получится — подобная ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ синтаксичСской ошибкС. Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ° Decimal ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ Variant ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π±Π΅Π· Ρ‚ΠΈΠΏΠ° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Dim a), Ρ‚.ΠΊ. Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Variant ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² VBA ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ любой Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ….

Π’Π°ΠΊ ΠΆΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Ρ‚ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π²Ρ‹ΡˆΠ΅ — это Ρ‚ΠΈΠΏΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΉ модСлью ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ «ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½» VBA. НапримСр, Ссли Π·Π°ΠΉΡ‚ΠΈ Π² VBA ΠΈΠ· Excel, Ρ‚ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Ρ‚ΠΈΠΏΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Excel ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… становится доступно мноТСство Ρ‚ΠΈΠΏΠΎΠ² этой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ. МногиС ΠΈΠ· Π½ΠΈΡ… Π·Π½Π°ΠΊΠΎΠΌΡ‹ всСм: Workbook, Worksheet, Range, Cells, Chart ΠΈ Ρ‚.Π΄. Π’.Π΅. это ΠΊΠ½ΠΈΠ³ΠΈ, листы, ячСйки, Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹. Π’ΠΈΠΏΠΎΠ² ΠΌΠ½ΠΎΠ³ΠΎ, ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ. Π Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ здСсь всС бСссмыслСнно. ΠœΠΎΠ³Ρƒ лишь привСсти ΠΏΠ°Ρ€Ρƒ строк ΠΊΠΎΠ΄Π°:

Dim rRange as Range 'Π½Π°Π·Π½Π°Ρ‡ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏ ячСйка/Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½
Set rRange = Range("A1") 'присвоили ссылку Π½Π° ячСйку A1 Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ листа

Dim rRange as Range ‘Π½Π°Π·Π½Π°Ρ‡ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏ ячСйка/Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½
Set rRange = Range(«A1») ‘присвоили ссылку Π½Π° ячСйку A1 Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ листа

ΠŸΡ€ΠΎ объявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ написано Ρ‡ΡƒΡ‚ΡŒ Π½ΠΈΠΆΠ΅.
А Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΏΡ€ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°ΠΌ ΠΈΠ· VBA ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅: Как ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρƒ ΠΈΠ· VBA

Β 
ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅
На самом Π΄Π΅Π»Π΅ всС ΠΎΡ‡Π΅Π½ΡŒ просто. Π­Ρ‚ΠΎ дСлаСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² области дСйствия: Dim, Public,Static ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° присвоСния Ρ‚ΠΈΠΏΠ° As. Π‘Π°ΠΌΡ‹ΠΉ распространСнный ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ — Dim. Π•Π³ΠΎ ΠΈ возьмСм Π² качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°. Бинтаксис объявлСния:

[ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ области дСйствия] Имя_ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ As [Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…]

[ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ области дСйствия] Имя_ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ As [Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…]

ΠžΡ‡Π΅Π½ΡŒ частая ошибка ΠΏΡ€ΠΈ объявлСнии ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Π΅ΠΌΠ°Ρ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌΠΈ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ VBA:

Dim MyVar1, MyVar2, MyVar3 As Integer

Dim MyVar1, MyVar2, MyVar3 As Integer

Π’Ρ€ΠΎΠ΄Π΅ Π±Ρ‹ исходя ΠΈΠ· Π»ΠΎΠ³ΠΈΠΊΠΈ всСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ присвоСн Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Integer. Но это ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎΠ΅ суТдСниС. Π’ΠΈΠΏΒ Integer присвоСн Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послСднСй ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ «ΠΏΡ€ΠΈΠ²ΡΠ·Π°Π½» ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ As — MyVar3. ВсС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Variant. Π’.Π΅. Ссли Π’Ρ‹ Π½Π΅ Π·Π°Π΄Π°Π΅Ρ‚Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ свой Ρ‚ΠΈΠΏ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… явно(Ρ‚.Π΅. Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ для Π½Π΅Ρ‘ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· As), Ρ‚ΠΎ VBA сам присваиваСт для Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Variant, Ρ‚. ΠΊ. ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ любой Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…. А Π²ΠΎΡ‚ Ρ‚Π°ΠΊ выглядит ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ присвоСниС Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…:

Dim MyVar1 As Integer, MyVar2 As Integer, MyVar3 As Integer

Dim MyVar1 As Integer, MyVar2 As Integer, MyVar3 As Integer

Π­Ρ‚ΠΎ ΠΈ Π΅ΡΡ‚ΡŒ объявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Π’.Π΅. сначала ΠΈΠ΄Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ области дСйствия (Dim, Public,Static), сразу Π·Π° Π½ΠΈΠΌ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π·Π°Ρ‚Π΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ As ΠΈ Ρ‚ΠΈΠΏ.
Но это Π½Π΅ всС. НСкоторыС Ρ‚ΠΈΠΏΡ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ Π΅Ρ‰Π΅ ΠΊΠΎΡ€ΠΎΡ‡Π΅ — Π΄Π°ΠΆΠ΅ Π±Π΅Π· ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° As:

Dim MyVar1%, MyVar2%, MyVar3%

Dim MyVar1%, MyVar2%, MyVar3%

ВсСго ΡˆΠ΅ΡΡ‚ΡŒ Ρ‚ΠΈΠΏΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ:
! — Single
# — Double
$ — String
% — Integer
& — Long
@ — Currency
На Ρ‡Ρ‚ΠΎ стоит ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΏΡ€ΠΈ объявлСнии ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ Π·Π½Π°ΠΊΠΎΠΌ Ρ‚ΠΈΠΏΠ° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ².
Π― Π»ΠΈΡ‡Π½ΠΎ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ статСй ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, Ρ‚. Π΅. ΠΏΠΎΠ»Π½ΠΎΠ΅ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ°. Π­Ρ‚ΠΎ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Π΅Π΅ ΠΈ понятнСС. Π’ ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… ΠΌΠΎΠ³Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅, Π² ΠΎΠ±Ρ‰ΠΈΡ…(Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅) — ΠΏΠΎΠ»Π½ΠΎΠ΅. Π’ своих ΠΊΠΎΠ΄Π°Ρ… Π’Ρ‹ Π²ΠΏΡ€Π°Π²Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ Π’Π°ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ — ошибки Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ разбСрСмся с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ области дСйствия(Dim, Public ΠΈ Static):

  • Dim — Π΄Π°Π½Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅, Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ данная пСрСмСнная объявлСна. Π’ΠΎ врСмя запуска ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ такая пСрСмСнная инициализируСтся Π² памяти, Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‘ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ этой ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈ ΠΏΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ пСрСмСнная выгруТаСтся ΠΈΠ· памяти(обнуляСтся) ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ Π½Π΅ΠΉ Ρ‚Π΅Ρ€ΡΡŽΡ‚ΡΡ. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½ΡƒΡŽ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π΅Ρ‰Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ локальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Однако с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, которая Π±ΡƒΠ΄Π΅Ρ‚ доступна Π² любой ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ модуля. НСобходимо ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π²Π½Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ — Π² области объявлСний(Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкой Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅, послС строк объявлСний Ρ‚ΠΈΠΏΠ° — Option Explicit). Π’ΠΎΠ³Π΄Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ доступно Π² любой ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ лишь Ρ‚ΠΎΠ³ΠΎ модуля, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ данная пСрСмСнная Π±Ρ‹Π»Π° объявлСна. Π’Π°ΠΊΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ уровня модуля.
  • Static — Π΄Π°Π½Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ прСдполагаСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, Π½ΠΎ Π½Π΅ тСряя значСния Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π² качСствС Π½Π°ΠΊΠΎΠΏΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… счСтчиков. Вакая пСрСмСнная инициализируСтся Π² памяти ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ запускС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½Π° объявлСна. По Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π΅ Π²Ρ‹Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ ΠΈΠ· памяти, Π½ΠΎ ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ΠΈ Π½Π΅ доступны Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°Ρ…. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π’Ρ‹ запуститС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ с этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΅Ρ‰Π΅ Ρ€Π°Π· — Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π±ΡƒΠ΄ΡƒΡ‚ доступны Π² Ρ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±Ρ‹Π»ΠΈ Π΄ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹. ВыгруТаСтся ΠΈΠ· памяти такая пСрСмСнная Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС закрытия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°(ΠΊΠ½ΠΈΠ³ΠΈ с ΠΊΠΎΠ΄ΠΎΠΌ). Π’ ΠΏΡ€ΠΎΡΡ‚ΠΎΠ½Π°Ρ€ΠΎΠ΄ΡŒΠ΅ Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‡Π°Ρ‰Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ(Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π½ΡŒΡˆΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ объявлялись ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Global, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² настоящСС врСмя устарСл ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ)
  • Public — Π΄Π°Π½Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ доступно Π² любой ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°(Π² ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… модулях, модулях класса, модулях Ρ„ΠΎΡ€ΠΌ, модулях листов ΠΈ ΠΊΠ½ΠΈΠ³). ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ, объявлСнная ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ объявлСна Π²Π½Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ — Π² области объявлСний. Вакая пСрСмСнная загруТаСтся Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ Π²ΠΎ врСмя Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°(ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ ΠΊΠ½ΠΈΠ³ΠΈ) ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄ΠΎ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°(закрытия ΠΊΠ½ΠΈΠ³ΠΈ). Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‘ ΠΌΠΎΠΆΠ½ΠΎ Π² любом ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΈ любой ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π’Π°ΠΆΠ½ΠΎ: ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ строго Π² стандартном ΠΌΠΎΠ΄ΡƒΠ»Π΅. Π’Π°ΠΊΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ уровня ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.
    Для большСго понимания Ρ‚ΠΎΠ³ΠΎ, Π³Π΄Π΅ ΠΈ ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ уровня ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π΄Π²Π° Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°.
    ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ объявлСниС
    Option Explicit
    Β 
    Sub main()
    Public MyVariable As String
    MyVariable = "Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Π°Ρ пСрСмСнная"
    'ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ
    MsgBox MyVariable
    'ΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ
    Call sub_main
    'ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ
    MsgBox MyVariable
    End Sub
    'Π΄ΠΎΠΏ.ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° измСнСния значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ
    Sub ChangeMyVariable()
    MyVariable = "ИзмСнили Π΅Ρ‘ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅"
    End Sub

    Option Explicit

    Sub main()
    Public MyVariable As String
    MyVariable = «Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Π°Ρ пСрСмСнная»
    ‘ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ
    MsgBox MyVariable
    ‘ΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ
    Call sub_main
    ‘ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ
    MsgBox MyVariable
    End Sub
    ‘Π΄ΠΎΠΏ. ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° измСнСния значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ
    Sub ChangeMyVariable()
    MyVariable = «Π˜Π·ΠΌΠ΅Π½ΠΈΠ»ΠΈ Π΅Ρ‘ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅»
    End Sub

    ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΈΠ΄Π½Ρ‹ Π²ΠΎ всСх модулях всСх ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ:
    1. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Public нСдопустим Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹(ΠΌΠ΅ΠΆΠ΄Ρƒ Sub ΠΈ End Sub), поэтому VBA ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ выполнСния Ρ‚Π°ΠΊΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ — Invalid Attribut in Sub or Function.
    2. Π”Π°ΠΆΠ΅ Ссли Public Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π° Dim — это ΡƒΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ пСрСмСнная уровня ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈ для Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ Π±ΡƒΠ΄Π΅Ρ‚ нСдоступна.
    3. Π’.ΠΊ. объявлСниС Π½Π΅Π²Π΅Ρ€Π½ΠΎΠ΅ — вторая ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°(ChangeMyVariable) Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ‚ ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ MyVariable ΠΈ СстСствСнно, Π½Π΅ смоТСт ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΅Ρ‘.
    ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ объявлСниС

    'Π²Ρ‹ΡˆΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ констант ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ†ΠΈΠΈ:
    Option Explicit     'ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ объявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…
    Option Base 1       'ниТняя Π³Ρ€Π°Π½ΠΈΡ†Π° ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅ΠΌΡ‹Ρ… массивов начинаСтся с 1
    Option Compare Text 'сравнСниС тСкста Π±Π΅Π· ΡƒΡ‡Π΅Ρ‚Π° рСгистра
    'глобальная пСрСмСнная - ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкой, Π²Ρ‹ΡˆΠ΅ всСх ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€
    Public MyVariable As String
    'Π΄Π°Π»Π΅Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
    Sub main()
        MyVariable = "Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Π°Ρ пСрСмСнная"
        'ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ
        MsgBox MyVariable, vbInformation, "www. excel-vba.ru"
        'ΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ
        Call ChangeMyVariable
        'ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ
        MsgBox MyVariable, vbInformation, "www.excel-vba.ru"
    End Sub
    'Π΄ΠΎΠΏ.ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° измСнСния значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ
    Sub ChangeMyVariable()
        MyVariable =

Excel VBA Π”Π°Ρ‚Π° ΠΈ врСмя

Π“ΠΎΠ΄, мСсяц, дСнь Π΄Π°Ρ‚Ρ‹ | DateAdd | ВСкущая Π΄Π°Ρ‚Π° ΠΈ врСмя | Час, ΠœΠΈΠ½ΡƒΡ‚Π°, Π‘Π΅ΠΊΡƒΠ½Π΄Π° | TimeValue

Π£Π·Π½Π°ΠΉΡ‚Π΅, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π΄Π°Ρ‚Π°ΠΌΠΈ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ Π² Excel VBA .

ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π½Π° лист ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ строки ΠΊΠΎΠ΄Π° Π½ΠΈΠΆΠ΅. Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ строки ΠΊΠΎΠ΄Π°, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π° листС.

Π“ΠΎΠ΄, ΠœΠ΅ΡΡΡ†, Π”Π΅Π½ΡŒ числа

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ макрос ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π³ΠΎΠ΄ Π΄Π°Ρ‚Ρ‹. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Π΄Π°Ρ‚Ρƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Dim.Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Ρ‚Ρƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ DateValue.

Код:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ тусклого изобраТСния Π”Π°Ρ‚Π° ΠΊΠ°ΠΊ Π”Π°Ρ‚Π°

exampleDate = DateValue («19 января 2020 Π³.»)

MsgBox Π“ΠΎΠ΄ (exampleDate)

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠœΠ΅ΡΡΡ† ΠΈ Π”Π΅Π½ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ мСсяц ΠΈ дСнь Π΄Π°Ρ‚Ρ‹.

DateAdd

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ количСство Π΄Π½Π΅ΠΉ ΠΊ Π΄Π°Ρ‚Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ DateAdd. Ѐункция DateAdd ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Ρ€ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ «d» Π² качСствС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄Π½ΠΈ.Π’Π²Π΅Π΄ΠΈΡ‚Π΅ 3 для Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ 3 дня. Π’Ρ€Π΅Ρ‚ΠΈΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ прСдставляСт Π΄Π°Ρ‚Ρƒ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ количСство Π΄Π½Π΅ΠΉ.

Код:

Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ firstDate ΠΊΠ°ΠΊ Π΄Π°Ρ‚Ρƒ, secondDate ΠΊΠ°ΠΊ Π΄Π°Ρ‚Ρƒ

firstDate = DateValue («19 января 2020 Π³.»)
secondDate = DateAdd («d», 3, firstDate)

MsgBox secondDate

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Β«dΒ» Π½Π° Β«mΒ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ количСство мСсяцСв ΠΊ Π΄Π°Ρ‚Π΅. ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ курсор Π½Π° DateAdd Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ Visual Basic ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ F1, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ справку ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ спСцификаторам ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π°.Π”Π°Ρ‚Ρ‹ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Π² амСриканском Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅. ΠŸΠ΅Ρ€Π²Ρ‹Π΅ мСсяцы, Π²Ρ‚ΠΎΡ€Ρ‹Π΅ Π΄Π½ΠΈ. Π­Ρ‚ΠΎΡ‚ Ρ‚ΠΈΠΏ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° зависит ΠΎΡ‚ Ρ€Π΅Π³ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… настроСк Windows.

ВСкущая Π΄Π°Ρ‚Π° ΠΈ врСмя

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π΄Π°Ρ‚Ρƒ ΠΈ врСмя, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ «БСйчас».

Код:

MsgBox БСйчас

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

час, ΠΌΠΈΠ½ΡƒΡ‚Π°, сСкунда

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ час Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Hour.

Код:

MsgBox Hour (сСйчас)

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ ΠΈ сСкунды, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ ΠΈ сСкунды Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

TimeValue

Ѐункция TimeValue ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ строку Π² Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ порядковый Π½ΠΎΠΌΠ΅Ρ€. Π‘Π΅Ρ€ΠΈΠΉΠ½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ — это число ΠΎΡ‚ 0 Π΄ΠΎ 1. НапримСр, полдСнь (сСрСдина дня) прСдставлСн ΠΊΠ°ΠΊ 0,5.

Код:

MsgBox TimeValue («9:20:01 ΡƒΡ‚Ρ€Π°»)

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ясно Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Excel Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ врСмя ΠΊΠ°ΠΊ числа ΠΎΡ‚ 0 Π΄ΠΎ 1, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ строки ΠΊΠΎΠ΄Π°:

Π Π°Π·ΠΌΠ΅Ρ€ ΠΊΠ°ΠΊ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ
y = TimeValue («09:20:01»)
MsgBox y

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² VBA MGMI Август Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ VBA? VBA = Visual Basic для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠœΠΎΡ‰Π½Ρ‹ΠΉ встроСнный язык программирования Excel УправляСмый событиями.

ΠŸΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΡ Π½Π° Ρ‚Π΅ΠΌΡƒ: Β«Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² VBA MGMI 311 19 августа 2011 Π³ΠΎΠ΄Π°. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ VBA? VBA = Visual Basic для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠœΠΎΡ‰Π½Ρ‹ΠΉ встроСнный язык программирования Excel, управляСмый событиями» — стСнограмма ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΈ:

1

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² VBA MGMI 311 19 августа 2011 Π³.

2

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ VBA? VBA = Visual Basic для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠœΠΎΡ‰Π½Ρ‹ΠΉ встроСнный язык программирования Excel. Π―Π·Ρ‹ΠΊ, управляСмый событиями. Π―Π·Ρ‹ΠΊ, основанный Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ…. Основной макроязык для всСх офисных ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² Microsoft.

3

Π―Π·Ρ‹ΠΊ, управляСмый событиями. НичСго Π½Π΅ происходит, Ссли Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ происходит. Код Π½Π΅ выполняСтся, ΠΊΡ€ΠΎΠΌΠ΅ ΠΊΠ°ΠΊ Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ событиС (ΠΈΠ»ΠΈ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΊΠΎΠ΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ запускаСтся ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ событиСм)

4

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык ΠŸΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ прилоТСния Ρ‚Π°ΠΊΠΈΠ΅ Π²Π΅Ρ‰ΠΈ, ΠΊΠ°ΠΊ ΠΊΠ½ΠΈΠ³ΠΈ, Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ листы, ячСйки, Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Ρ‚. Π”.ΡΠ²Π»ΡΡŽΡ‚ΡΡ Β«ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈΒ». Π£ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π΅ΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ с Π½ΠΈΠΌΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ — эти дСйствия извСстны ΠΊΠ°ΠΊ Β«ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹Β».

5

ΠœΠ°ΠΊΡ€ΠΎΡ БСрия ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хранятся Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ Microsoft Visual Basic, ΠΈ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ  Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ макрос  Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ макрос  Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ макрос  ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ макрос

6

Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ макрос ПанСль инструмСнтов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ макрос для Π²Π²ΠΎΠ΄Π° Имя макроса Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ макрос, Π½Π°ΠΆΠ°Π² сочСтаниС клавиш, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Π±ΡƒΠΊΠ²Ρƒ Π² ΠΏΠΎΠ»Π΅ Β«Π‘ΠΎΡ‡Π΅Ρ‚Π°Π½ΠΈΠ΅ клавиш» Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ мСсто, Π³Π΄Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ макрос ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ Π² Excel , Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ макрос (Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов)

7

Запуск макроса. ИспользованиС сочСтания клавиш. На ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ макрос. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ макрос, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ. НаТмитС Β«Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΒ» — Π˜Π›Π˜ — ЗапуститС макрос с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов.

8

ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° макроса Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ макроса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ выполняСтся, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ESC ΠΈ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠšΠΎΠ½Π΅Ρ† Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ Microsoft Visual Basic. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ автоматичСский запуск макроса ΠΏΡ€ΠΈ запускС Microsoft Excel, ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ Π½Π°ΠΆΠ°Ρ‚ΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Shift Π²ΠΎ врСмя запуска.

9

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Excel — с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ макроса Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ Β«Excel Macro-Enable WorkbookΒ» На ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Β«Macro SecurityΒ» Π² ΠΎΠΊΠ½Π΅ Π¦Π΅Π½Ρ‚Ρ€Π° управлСния Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Β«Disable all macros with notificationΒ» ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΊΠ½ΠΈΠ³ΠΈ Excel с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ макросов Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Β«OptionΒ» Select Β» Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ это содСрТимоС Β»Π² ΠΎΠΊΠ½Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² бСзопасности Microsoft Office.

10

ΠžΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ макрос Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«ΠœΠ°ΠΊΡ€ΠΎΡΒ». Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ имя макроса, ΠΈ откроСтся Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Visual Basic Editor (VBE). ΠžΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ макрос ΠΈΠ· исходного ΠΊΠΎΠ΄Π° Π² VBE.

VBA Compiler — ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°Ρ‰ΠΈΡ‚Ρ‹ VBA.VBA Π² DLL. Π£ΡΠΊΠΎΡ€ΡŒΡ‚Π΅ VBA.

VBA Compiler for Excel — это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°Ρ‰ΠΈΡ‚Ρ‹ VBA, которая ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΠΊΠΎΠ΄ VBA Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΠΊΠ½ΠΈΠ³ Microsoft Excel ΠΈ надстроСк Excel Π² Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ собствСнного Ρ„Π°ΠΉΠ»Π° DLL Windows.

ПослС компиляции ваш ΠΊΠΎΠ΄ VBA Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ скопирован ΠΈΠ»ΠΈ восстановлСн ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Π²Ρ‹ΡΡˆΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ пиратства .

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ VBA — Π»ΡƒΡ‡ΡˆΠ°Ρ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°ΠΌ ΠΊ Π·Π°Ρ‰ΠΈΡ‚Π΅ ΠΊΠΎΠ΄Π° VBA , Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ обфускация ΠΊΠΎΠ΄Π° VBA ΠΈΠ»ΠΈ стандартная Π·Π°Ρ‰ΠΈΡ‚Π° ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° MS Excel VBA.

Бкомпилированная ΠΊΠ½ΠΈΠ³Π° ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ» надстройки Excel остаСтся с исходным Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ Ρ„Π°ΠΉΠ»Π° ΠΈ Π²Π΅Π΄Π΅Ρ‚ сСбя Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ исходный Ρ„Π°ΠΉΠ».

Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π±Π΅ΡΠΏΠ»Π°Ρ‚Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ прСимущСства использования компилятора VBA

  • Бамая надСТная ΠΈ нСпроницаСмая Π·Π°Ρ‰ΠΈΡ‚Π° ΠΊΠΎΠ΄Π° VBA. НСвозмоТно Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ VBA ΠΈΠ· Windows DLL.
  • VBA ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ .ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² VBA Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ увСличиваСтся послС компиляции .
  • НСвозмоТно Π½Π°ΠΉΡ‚ΠΈ, ΠΎΡ‚ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ VBA послС компиляции, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π±Ρ‹Π» скомпилирован ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ Π² Windows DLL.
  • Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ VBA Compiler , Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ языки программирования , ΠΊΡ€ΠΎΠΌΠ΅ VBA — Visual Basic для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
  • Π˜ΡΡ…ΠΎΠ΄Π½Π°Ρ ΠΊΠ½ΠΈΠ³Π° MS Excel ΠΈΠ»ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° надстройки остаСтся Ρ‚Π΅ΠΌ ΠΆΠ΅ , Ρ‡Ρ‚ΠΎ ΠΈ Π΄ΠΎ компиляции.
  • ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ VBA Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ΠΊΠΎΠΏΠΈΠ΅ΠΉ исходного Ρ„Π°ΠΉΠ»Π°, Π° сохраняСт исходный Ρ„Π°ΠΉΠ» Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ .
  • ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° VBA Π²ΠΎ врСмя компиляции происходит автоматичСски , Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ вашСго участия Π² процСссС.
  • Π’Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ VBA Π½ΡƒΠΆΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ — всС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΊΠΎΠ΄Π° VBA (ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ свойства) Π±ΡƒΠ΄ΡƒΡ‚ скомпилированы ΠΎΠ΄Π½ΠΈΠΌ Ρ‰Π΅Π»Ρ‡ΠΊΠΎΠΌ ΠΌΡ‹ΡˆΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ Β«ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΒ».
  • Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ΄ VBA с Π·Π°Ρ‰ΠΈΡ‚ΠΎΠΉ ΠΎΡ‚ копирования вмСстС с ΠΊΠ»ΡŽΡ‡ΠΎΠΌ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ / рСгистрации. Π’Π°ΠΊΠΎΠΉ скомпилированный ΠΊΠΎΠ΄ VBA Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π±Π΅Π· ΠΊΠ»ΡŽΡ‡Π° рСгистрации / Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ смоТСтС Π²Ρ‹Π΄Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹.
  • Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π½ΡƒΡŽ / Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ вашСго ΠΊΠΎΠ΄Π° VBA. Π’Π°ΡˆΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ смогут ΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π²Π°ΡˆΡƒ ΠΊΠ½ΠΈΠ³Ρƒ ΠΈΠ»ΠΈ надстройку Excel Π±Π΅Π· рСгистрации Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ количСства Π΄Π½Π΅ΠΉ, опрСдСляСмого Π²Π°ΠΌΠΈ.

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ компилятор VBA

DoneEx VbaCompiler ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ исходный ΠΊΠΎΠ΄ VBA Π² ΠΊΠΎΠ΄ C, ΠΈ Π½Π° Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ этапС ΠΊΠΎΠ΄ языка C компилируСтся Π² собствСнный Ρ„Π°ΠΉΠ» DLL Windows.

ΠŸΡ€ΠΈ компиляции ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ исходного ΠΊΠΎΠ΄Π° VBA ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ нСсколько этапов:

Π­Ρ‚Π°ΠΏ 1. VbaCompiler Ρ€Π°Π·Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ исходный ΠΊΠΎΠ΄ VBA.

Π­Ρ‚Π°ΠΏ 2. ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ этапа.

Π­Ρ‚Π°ΠΏ 3. ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΠ΄ языка C ΠΈΠ· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, созданного Π½Π° этапС 2.

Π­Ρ‚Π°ΠΏ 4. VbaCompiler запускаСт C-компилятор для компиляции ΠΊΠΎΠ΄Π° языка C (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» сгСнСрирован Π½Π° этапС 3) Π² Windows DLL.

Π­Ρ‚Π°ΠΏ 5. Π—Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ этап компиляции — VbaCompiler удаляСт скомпилированный ΠΊΠΎΠ΄ VBA ΠΈΠ· Ρ„Π°ΠΉΠ»Π° ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ VBA, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ всС скомпилированныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ DLL Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ вмСсто исходного ΠΊΠΎΠ΄Π° VBA.

Π’Ρ‹Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈΠ· исходного ΠΊΠΎΠ΄Π° VBA ΠΏΠ΅Ρ€Π΅Π΄ компиляциСй

Π’ΠΎΡ‚ ΠΆΠ΅ ΠΊΠΎΠ΄ VBA послС компиляции с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ VBA Compiler

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, содСрТимоС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ VBA пСрСмСщаСтся Π² скомпилированный Ρ„Π°ΠΉΠ» DLL ΠΈ замСняСтся Π²Ρ‹Π·ΠΎΠ²Π°ΠΌΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ DLL.

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

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