Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«VBA для Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΎΠ²Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 91

Автор Π‘Ρ‚ΠΈΠ² Каммингс

Private Sub Worksheet_Change(ByVal Target As Range)

For Each oCell In Target

If oCell> 4 And oCell < 11 Then

With oCell.Font

.Bold = True

.Size = 16

.Color = RGB(0, 255, 0) β€˜ Π—Π΅Π»Π΅Π½Ρ‹ΠΉ

End With

End If

Next oCell

End Sub


ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Target ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ ΠΎΠ΄Π½ΠΎΠΉ ячСйкой, Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ, благодаря Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π°Π»ΠΈΠ²ΠΊΠΈ, удалСния ΠΈ вставки ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΊ нСскольким ячСйкам. Для этого ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° сообщСния Change Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² сСбя структуру

For Each ... Next; Π² Ρ‚Π°ΠΊΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠ° ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ячСйкС, Ρ‚Π°ΠΊ ΠΈ ΠΊ нСскольким ячСйкам, Ρ‡Ρ‚ΠΎ ΠΈ дСмонстрируСт ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

Π’ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, события Change ΠΈ Sheet Change ΠΌΠΎΠ³ΡƒΡ‚ Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄Π°ΠΆΠ΅ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ измСнялось. Π”Π°Π½Π½Ρ‹Π΅ события Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ячСйки (послС Ρ‰Π΅Π»Ρ‡ΠΊΠ° Π² ΠΏΠ°Π½Π΅Π»ΠΈ Ρ„ΠΎΡ€ΠΌΡƒΠ» ΠΈΠ»ΠΈ наТатия клавиши <F2>), Π΄Π°ΠΆΠ΅ Ссли сразу послС этого ΠΎΠ½ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚ΠΈΠ» Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π½Π΅ внСся Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (Π½Π°ΠΆΠ°Π² ΠΊΠ»Π°Π²ΠΈΡˆΡƒ <Enter>, Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ Π’Π²ΠΎΠ΄ ΠΈΠ»ΠΈ Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ листС). Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ Π½Π΅ активизируСтся, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ клавиши <Esc> ΠΈΠ»ΠΈ Ρ‰Π΅Π»Ρ‡ΠΊΠΎΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ ΠžΡ‚ΠΌΠ΅Π½Π°.

Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ Calculate распознаваСмоС ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Worksheet, Ρ‚Π°ΠΊ ΠΈ Chart, происходит ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ Excel Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ листа ΠΈΠ»ΠΈ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹.

Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ Sheet Calculate для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Workbook ΠΈ Application происходит Π² ΠΎΡ‚Π²Π΅Ρ‚. Если срСдство автоматичСского вычислСния Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ, Π΄Π°Π½Π½ΠΎΠ΅ событиС активизируСтся, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ измСняСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ любой ячСйки, Ρ‚.Π΅. происходит Π² Ρ‚Π°Π½Π΄Π΅ΠΌΠ΅ с событиСм Change. Когда срСдство пСрСсчСта Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ Π² Ρ€ΡƒΡ‡Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, событиС Calculate происходит лишь Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ пСрСсчСт Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ клавиши <F9>.

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ событий для событий Calculate ΠΈ SheetCalculate ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для измСнСния Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ листа Π² соотвСтствии с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ вычислСний. НапримСр, Ссли извСстно, Ρ‡Ρ‚ΠΎ пСрСсчСт ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ элСмСнты упорядочСнного списка, цСлСсообразно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ события Worksheet _Calculate для упорядочСния списка послС провСдСния вычислСний. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π½Π΅ ΡΠΎΠΎΠ±Ρ‰Π°ΡŽΡ‚, какая ΠΈΠ· ячССк измСнялась Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ вычислСний, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² ΠΊΠΎΠ΄ адрСса ячССк, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ трСбуСтся ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ.

ΠŸΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ячСйки, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ сТатии выдСлСния Excel Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ событиС SelectionChange для Worksheet. ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ происходит событиС Sheet SelectionChange для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Workbook ΠΈ Application. ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ событий для Π΄Π°Π½Π½Ρ‹Ρ… событий ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связи с Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ. Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ событиС Selection Change ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для отобраТСния Π² Π»Π΅Π²ΠΎΠΉ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ ячСйкС Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ листа адрСса Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ячСйки, Π° Ρ‚Π°ΠΊΠΆΠ΅ для помСщСния ΠΈΠΌΠ΅Π½ΠΈ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ листа ΠΈ адрСса выдСлСния Π² строку состояния. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, ΠΊΠ°ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Sh позволяСт ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ вСсти Ρ€Π°Π±ΠΎΡ‚Ρƒ с Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ листом:


Private Sub Workbook Sheet SelectionChange (ByVal Sh As Object, _

ByVal Tarqet As Excel.Range)

Sh.Range("Al") = ActiveCell.Address

Application.StatusBar = Sh.Name & " : " & Target.Address

End Sub


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


Private Sub Worksheet_SelectionCharge (ByVal Target As Excel.Range)

If Target.Address = "$3$2" Then

MsgBox "Π’Ρ‹ нашли Π½ΡƒΠΆΠ½ΡƒΡŽ ячСйку!"

End If

End Sub


ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ Excel способны Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚ΡŒ большоС число событий, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… связаны с ΠΌΡ‹ΡˆΠΊΠΎΠΉ, ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ большим элСмСнтом управлСния ActiveX, ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹ΠΌ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠ½ΠΈΠ³Π΅. Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°ΡŽΡ‚ события Activate, DeActivate ΠΈ Calculate. Π’ΠΎΡ‚ Π΅Ρ‰Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ события, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ написаниС ΠΊΠΎΠ΄ΠΎΠ².

* DragOver ΠΈ DragPlot. ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΡΡ‚, ΠΊΠΎΠ³Π΄Π° ячСйки ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡˆΠ°ΡŽΡ‚ΡΡ Π½Π°Π΄ Π²Π½Π΅Π΄Ρ€Π΅Π½Π½ΠΎΠΉ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠΎΠΉ ΠΈΠ»ΠΈ ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ Π½Π° Π½Π΅Π΅ соотвСтствСнно.

* MouseDown. MouseUp ΠΈ MouseMove. ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΡΡ‚ Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° дСйствия ΠΌΡ‹ΡˆΠΈ.

* Select. ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€ΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ части Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹. Написанный ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Ρ‚ΠΈΠΏ ΠΈ характСристики Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ элСмСнта ΠΈ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡˆΠΈΠ΅ дСйствия.

* Series Change. ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ измСняСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ Ρ‡Π΅Ρ€Π΅Π· саму Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡƒ (Π° Π½Π΅ измСняя значСния, содСрТащиСся Π² листС).

Π“Π»Π°Π²Π° 17. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ….

Π’ этой Π³Π»Π°Π²Π΅ ...


~ Знакомство с Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ

~ НаписаниС ΠΊΠΎΠ΄Π° Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… ActiveX

~ ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ DAO

~ УскорСниС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ SQL


НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Access - ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, входящСС Π² состав Office, Π²Ρ‹ Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ этим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΈ создании ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ VBA. Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, любоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰Π΅Π΅ VBA, - ΠΎΡ‚ Word Π΄ΠΎ CorelDraw, - позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свСдСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хранятся Π² Π±Π°Π·Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, сСрвСрС локальной сСти ΠΈΠ»ΠΈ любом Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ Π² Internet. Π’ настоящСй Π³Π»Π°Π²Π΅ ΠΌΡ‹ остановимся Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΈΠ΅ΠΌΠ°Ρ… программирования Π½Π° VBA, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ прямо ΠΈΠ· Π²Π°ΡˆΠΈΡ… собствСнных VBA-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° VBA: основныС Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Ρ‹ смоТСтС ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ собствСнный ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Π²Π°ΠΌ слСдуСт ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с основной Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ. Π­Ρ‚ΠΎΠΌΡƒ ΠΈ посвящСн ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» настоящСго Ρ€Π°Π·Π΄Π΅Π»Π°.

О ядрС Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…

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

Π₯отя эта ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для выполнСния Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Access нСльзя Π½Π°Π·Π²Π°Ρ‚ΡŒ ядром Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Access- это "ΠΊΠ»ΠΈΠ΅Π½Ρ‚" (front end), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Π°ΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ доступны, Π° Ρ‚Π°ΠΊΠΆΠ΅ воспринимаСт ваши инструкции ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π΅Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅. ВсС эти инструкции ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ сСрвСрной части (back end) Π‘Π£Π‘Π”.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΌ ядром Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… для Access являСтся Microsoft Jet. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… Access (Π²Ρ‹ всСгда смоТСтС ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈΡ… ΠΏΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡŽ .mdb) Π½Π° самом Π΄Π΅Π»Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Jet. Работая Ρ‡Π΅Ρ€Π΅Π· Jet, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ инструмСнты Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Visual Basic, ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ² Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ свСдСния.

Jet ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ для обслуТивания ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… Π³Ρ€ΡƒΠΏΠΏ. Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, уровня прСдприятия, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ядра Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…. Бюда относятся Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Microsoft - SQL Server, Π° Ρ‚Π°ΠΊΠΆΠ΅ прСдлоТСния ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²Π΅Π΄ΡƒΡ‰ΠΈΡ… поставщиков, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Oracle ΠΈ Informix. ВСрсия SQL Server для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, которая называСтся SQL Server 2000 Desktop Engine, поставляСтся Π² составС Access 2002. Она позволяСт Π²Π°ΠΌ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π±Π°Π·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ΡΡ Π½Π° тСхнологиях SQL Server прилоТСниях Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… прямо Π½Π° своСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΡ… "настоящСй" вСрсии SQL Server, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΉ Π² сСти.

Π’ любом случаС, всСгда ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡ‚Π°Ρ‚ΡŒΡΡ, ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ касаСтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π½ΠΎΠΉ ΠΈ сСрвСрной частСй Π‘Π£Π‘Π”. Работая с Access ΠΈΠ»ΠΈ Π»ΡŽΠ±Ρ‹ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ VBА -ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ядрами Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…, Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΡƒΡΡΡŒ ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго вашими ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌΠΈ потрСбностями. Access прСдоставляСт большС возмоТностСй программисту Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Word, CorelDraw ΠΈΠ»ΠΈ любоС Π΄Ρ€ΡƒΠ³ΠΎΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰Π΅Π΅ VBA ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ этом Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ прСвосходныС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹.

SQL ΠΈ VBA

SQL (Structured Query Language - Π―Π·Ρ‹ΠΊ структурированных запросов) - это общСпринятый стандарт ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ запросов Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… (запрос - это ΠΊΠΎΠΌΠ°Π½Π΄Π°, которая ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΈΠ»ΠΈ измСняСт ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, которая содСрТится Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…). Π›ΡŽΠ±Π°Ρ систСма управлСния Π΄Π°Π½Π½Ρ‹Ρ…, Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ Jet ΠΈΠ»ΠΈ Oracle, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ язык SQL. SQL- это ΠΏΠΎΠ»Π½ΠΎΠΏΡ€Π°Π²Π½Ρ‹ΠΉ язык программирования, ΠΎΠ΄Π½Π°ΠΊΠΎ Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΎΠ½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ для управлСния Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π’Ρ‹ создаСтС инструкции SQL для Π²Ρ‹Π±ΠΎΡ€Π°, измСнСния ΠΈΠ»ΠΈ удалСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π½Π°Π±ΠΎΡ€ΠΎΠ² записСй.

А ΠΊΠ°ΠΊ ΠΆΠ΅ SQL ΠΈ VBA Π΄ΠΎΠΏΠΎΠ»Π½ΡΡŽΡ‚ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°? VBA позволяСт ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ядру Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… инструкции SQL для ΠΈΡ… дальнСйшСй ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ПослС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ инструкций ΠΈ извлСчСния Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° записСй ядром Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Π°ΠΌ снова потрСбуСтся VBA для отобраТСния ΠΈ форматирования Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ²: SQL ΠΏΡ€ΠΈ этом Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ.

ВсС ΠΎΠ± ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ… Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…

Π‘Π°ΠΌ ΠΏΠΎ сСбС язык VBA Π½Π΅ прСдоставляСт Π½ΠΈΠΊΠ°ΠΊΠΈΡ… срСдств для доступа ΠΊ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ манипулирования содСрТащСйся Π² Π½ΠΈΡ… ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ. Однако послС объСдинСния с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… VBA тотчас прСвращаСтся Π² инструмСнт для программирования Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… с ΠΎΡ‡Π΅Π½ΡŒ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΌΠΈ возмоТностями.