ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² ΡƒΡ‡Ρ‘Π±Π΅, ΠΎΡ‡Π΅Π½ΡŒ быстро...
Π Π°Π±ΠΎΡ‚Π°Π΅ΠΌ вмСстС Π΄ΠΎ ΠΏΠΎΠ±Π΅Π΄Ρ‹

ИспользованиС элСмСнтов ПолС со списком ΠΈ Бписок

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

List — элСмСнты списка. Для доступа ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ элСмСнту Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€Π° строки ΠΈ ΡΡ‚ΠΎΠ»Π±Ρ†Π° (Ссли столбСц Π½Π΅ ΠΎΠ΄ΠΈΠ½). МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ списка; Style — опрСдСляСт, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ввСсти значСния Π² ΠΈΠΎΠ»Π΅ списка: Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0 позволяСт ввСсти Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Ρ‚ Π² ΡΠΏΠΈΡΠΊΠ΅, 2 Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ввСсти Π½ΠΎΠ²Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. ΠŸΡ€ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ списка ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив ΠΈ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ИспользованиС элСмСнтов ПолС со списком ΠΈ Бписок (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ ПолС со ΡΠΏΠΈΡΠΊΠΎΠΌ (ComboBox) Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° ΠΈΠ»ΠΈ ввСсти Π΅Π³ΠΎ Π² ΠΏΠΎΠ»Π΅ списка. Бписок Π² ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π΅ ПолС со ΡΠΏΠΈΡΠΊΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ нСсколько столбцов. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ ΠΈ ΡΡ‚ΠΎΠ»Π±Ρ†Ρ‹ Π½ΡƒΠΌΠ΅Ρ€ΡƒΡŽΡ‚ΡΡ с 0.

ОсновноС событиС элСмСнта — Change. Оно Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° Π²Π²Π΅Π΄Π΅Π½ΠΎ ΠΈΠ»ΠΈ Π²Ρ‹Π±Ρ€Π°Π½ΠΎ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ списка.

Бвойства элСмСнта ПолС со ΡΠΏΠΈΡΠΊΠΎΠΌ (ComboBox):

List — элСмСнты списка. Для доступа ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ элСмСнту Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€Π° строки ΠΈ ΡΡ‚ΠΎΠ»Π±Ρ†Π° (Ссли столбСц Π½Π΅ ΠΎΠ΄ΠΈΠ½). МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ списка;

Listlndex — ΠΏΠΎΠΌΠ΅Ρ€ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ строки. Π Π°Π²Π΅Π½ — 1, Ссли Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ элСмСнт Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π½;

ListCount — количСство строк Π² ΡΠΏΠΈΡΠΊΠ΅;

RowSource — источник элСмСнтов списка. Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ значСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ссылка Π½Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ листа Microsoft Excel. НапримСр, MyList. RowSource = «Π1:А10»;

Text — Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ отобраТаСтся Π² Ρ‚Скстовом ΠΏΠΎΠ»Π΅;

Style — опрСдСляСт, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ввСсти значСния Π² ΠΈΠΎΠ»Π΅ списка: Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0 позволяСт ввСсти Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Ρ‚ Π² ΡΠΏΠΈΡΠΊΠ΅, 2 Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ввСсти Π½ΠΎΠ²Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ элСмСнта ПолС со ΡΠΏΠΈΡΠΊΠΎΠΌ (ComboBox):

Addltem — добавляСт элСмСнт Π² ΡΠΏΠΈΡΠΎΠΊ: Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΈΠ»ΠΈ Π² ΠΊΠΎΠ½Π΅Ρ† списка, Ссли позиция Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½Π°. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ элСмСнта ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡ — ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°;

Removeltem — удаляСт ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° элСмСнт с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ;

Clear — удаляСт всС строки ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°.

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Бписок (ListBox) примСняСтся для хранСния списка Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π’ΠΎ Π²Ρ€Π΅ΠΌΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ нСсколько Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ ΡΠΎΠ±Ρ‹Ρ‚ия элСмСнта Бписок Ρ‚Π°ΠΊΠΈΠ΅ ΠΆΠ΅, ΠΊΠ°ΠΊ Ρƒ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π° ПолС со ΡΠΏΠΈΡΠΊΠΎΠΌ.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ свойства элСмСнта Бписок (ListBox):

List, ListCount, RowSource — ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ смысл, ΠΊΠ°ΠΊ Ρƒ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π° ПолС со ΡΠΏΠΈΡΠΊΠΎΠΌ;

Listlndex — Π½ΠΎΠΌΠ΅Ρ€ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ строки. Π Π°Π²Π½ΠΎ — 1, Ссли Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ элСмСнт Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π½. Если Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΎ нСсколько строк, Ρ‚ΠΎ Ρ€Π°Π²Π½ΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ строки, которая ΠΈΠΌΠ΅Π΅Ρ‚ фокус;

MultiSelect — опрСдСляСт, ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ нСсколько элСмСнтов списка;

Selected — массив логичСских Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, состоящий ΠΈΠ· Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ количСства элСмСнтов, Ρ‡Ρ‚ΠΎ ΠΈ ΡΠΏΠΈΡΠΎΠΊ. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ массива Ρ€Π°Π²Π΅Π½ True, Ссли ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт списка Π²Ρ‹Π΄Π΅Π»Π΅Π½, ΠΈ False, Ссли Π½Π΅Ρ‚;

Text — Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта списка.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 10.33.

Рассмотрим, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² ΡΠΏΠΈΡΠΎΠΊ значСния Π²ΠΎ Π²Ρ€Π΅ΠΌΡ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Для заполнСния списка ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ свойства List, RowSource ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ Addltem. Бвойству List Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ значСния ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ массив, свойству RowSource — строку со ΡΡΡ‹Π»ΠΊΠΎΠΉ Π½Π° Π½ΡƒΠΆΠ½Ρ‹ΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ значСния ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ столбца Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°). Если Π΄Π°Π½Π½Ρ‹Π΅ находятся Π² ΡΡ‚Ρ€ΠΎΠΊΠ΅, Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΅Π΅ Ρ‚ранспонированиС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ стандартной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Excel. ΠœΠ΅Ρ‚ΠΎΠ΄ Addltem позволяСт Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² ΡΠΏΠΈΡΠΎΠΊ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ элСмСнту.

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ„ΠΎΡ€ΠΌΡƒ, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΡƒΡŽ Π½Π° Ρ€ΠΈΡ. 10.8. На ΡΡ‚ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ элСмСнт ListBox ΠΈΠΌΠ΅Π΅Ρ‚ имя List Box 1.

Π€ΠΎΡ€ΠΌΠ°, создаваСмая Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ 10.33.

Рис. 10.8. Π€ΠΎΡ€ΠΌΠ°, создаваСмая Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ 10.33.

РСшСниС

Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ списка значСниями выполняСтся ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ способа заполнСния (для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΠΈ). НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ событий Click для этих ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ.

'Массив констант.

Private Sub OptionButtonl_Click ().

ListBoxl.RowSource = «» .

ListBoxl.List = Array («Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1», «Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 2», «Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 3») End Sub.

'Массив.

Private Sub OptionButton2_Click ().

Dim A (1 To 5) As String For i = 1 To 5.

A (i) = «Π‘Ρ‚Ρ€ΠΎΠΊΠ° «& i Next.

ListBoxl.RowSource = «» .

ListBoxl.List = A End Sub.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ присваивании значСния свойству List свойство RowSource Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ пустоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΈΠ½Π°Ρ‡Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ошибка.

Π’ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ Π½ΠΈΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΠ—: А7 листа с ΠΈΠΌΠ΅Π½Π΅ΠΌ Лист1. Если имя листа Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ листа.

'Ѐиксированный Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Private Sub OptionButton3_Click ().

ListBoxl.RowSource = «Π›ΠΈΡΡ‚1!АЗ:A7» .

End Sub.

'Π’Π²ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½.

Private Sub OptionButton4_Click ().

Dim R As Range.

On Error GoTo NoDate 'Если Π²Ρ‹Π±Π΅Ρ€ΡƒΡ‚ «ΠžΡ‚ΠΌΠ΅Π½Π°» .

ListBoxl.RowSource = «» .

Set R = Application. InputBox (.

Prompt:="Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½", Type:=8).

If R.Rows.Count 1 Then.

ListBoxl.RowSource = R. Address Else.

ListBoxl.List =.

Application.WorksheetFunction.Transpose®.

End If NoDate:

End Sub.

Π’ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ случаС значСния бСрутся ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ столбца Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°.

'ΠΠ΅ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ значСния ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Private Sub 0ptionButton5_Click ().

Dim R As Range, S As String, p As Boolean ListBoxl. RowSource = «» .

Set R = ActiveCell. CurrentRegion ListBoxl.Addltem R (l, 1).

For i = 2 To R.Rows.Count p = True.

For j = 0 To ListBoxl. ListCount — 1 S = R (i, 1).

If ListBoxl. List (j) = S Then p = False: Exit For Next.

If p Then ListBoxl. Addltem R (i, 1).

Next.

ListBoxl.Listlndex = 0 End Sub.

Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ значСниями элСмСнта ComboBox выполняСтся ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ.

Рассмотрим, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ со ΡΠΏΠΈΡΠΊΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит нСсколько столбцов:

  • — ΡΠ²ΠΎΠΉΡΡ‚Π²Ρƒ ColumnCount Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ€Π°Π²Π½ΠΎΠ΅ количСству столбцов;
  • — ΠΏΡ€ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ списка ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив ΠΈ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π΅Π³ΠΎ свойству List элСмСнта ListBox ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ свойству RowSource строку с Π°Π΄Ρ€Π΅ΡΠΎΠΌ Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°;

Ρ‡Ρ‚ΠΎΠ±Ρ‹ вывСсти Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ столбцов, свойство ColumnHeads Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°Π²Π½Ρ‹ΠΌ True, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ся Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π² ΡΠ²ΠΎΠΉΡΡ‚Π²Π΅ RowSource. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ автоматичСски бСрутся ΠΈΠ· ΡΡ‚Ρ€ΠΎΠΊΠΈ, находящСйся Π½Π°Π΄ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ RowSource;

— ΡΡ‚Ρ€ΠΎΠΊΠΈ ΠΈ ΡΡ‚ΠΎΠ»Π±Ρ†Ρ‹ Π² ΡΠΏΠΈΡΠΊΠ΅ Π½ΡƒΠΌΠ΅Ρ€ΡƒΡŽΡ‚ΡΡ с Π½ΡƒΠ»Ρ, для обращСния ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ конструкция ListBoxl. List (ij);

ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ ΡΠ²ΠΎΠΉΡΡ‚Π²Ρƒ Value элСмСнта ListBox Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, находящССся Π² ΡΡ‚ΠΎΠ»Π±Ρ†Π΅, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ Π² ΡΠ²ΠΎΠΉΡΡ‚Π²Π΅ BoundColumn;

— ΡˆΠΈΡ€ΠΈΠ½Π° столбцов (Π² ΠΏΡƒΠ½ΠΊΡ‚Π°Ρ…, 1 ΠΏΡƒΠ½ΠΊΡ‚ = 1/72 дюйма) опрСдСляСтся Π² ΡΠ²ΠΎΠΉΡΡ‚Π²Π΅ ColumnWidths. ЗначСния Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с Π·Π°ΠΏΡΡ‚ΠΎΠΉ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 10.34

ΠŸΡƒΡΡ‚ΡŒ Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ листС имССтся Ρ‚Π°Π±Π»ΠΈΡ†Π°, изобраТСнная Π½Π° Ρ€ΠΈΡ. 10.9.

Π”Π°Π½Π½Ρ‹Π΅ Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ листС для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° 10.34.

Рис. 10.9. Π”Π°Π½Π½Ρ‹Π΅ Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ листС для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° 10.34

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Ρ„ΠΎΡ€ΠΌΡƒ со ΡΠΏΠΈΡΠΊΠΎΠΌ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ информация выводится Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π² Ρ‚Ρ€ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ.

РСшСниС

Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² Ρ„ΠΎΡ€ΠΌΡƒ элСмСнт ListBox ΠΈ Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ события Initialize. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ пСрСмСнная R ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ Π²Π½Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹. Π­Ρ‚ΠΎ сдСлано ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ присваиваСтся Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ UserForm_Initialize, Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ся ΠΎΠ½ΠΎ Π΅Ρ‰Π΅ ΠΈ Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ CommandButton2_Click.

Dim R As Range.

Private Sub UserForm_Initialize ().

Set R = ActiveCell. CurrentRegion ListBoxl.ColumnCount = R.Columns.Count 'ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ссылку Π½Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π±Π΅Π· строки Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ListBoxl. RowSource =.

R.Offset (l, 0) .Resize (R.Rows.Count — 1, R.Columns.Count).

Address.

ListBoxl.ColumnHeads = True ListBoxl. ColumnWidths = «60;50;40» .

End Sub.

УстановитС свойство MultiSelect элСмСнта ListBoxl Ρ€Π°Π²Π½Ρ‹ΠΌ 1. Π’ ΡΡ‚ΠΎΠΌ случаС Π² ΡΠΏΠΈΡΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ нСсколько элСмСнтов (строк), щСлкая ΠΏΠΎ Π½ΠΈΠΌ ΠΌΡ‹ΡˆΡ‹ΠΎ ΠΈΠ»ΠΈ наТимая ΠΊΠ»Π°Π²ΠΈΡˆΡƒ «ΠΏΡ€ΠΎΠ±Π΅Π»». Π£ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… элСмСнтов свойство Selected ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ True.

Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² Ρ„ΠΎΡ€ΠΌΡƒ 2 ΠΊΠ½ΠΎΠΏΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° стала Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π½Π° Ρ€ΠΈΡ. 10.10.

Π€ΠΎΡ€ΠΌΠ°, создаваСмая Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ 10.34.

Рис. 10.10. Π€ΠΎΡ€ΠΌΠ°, создаваСмая Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ 10.34.

Кнопки Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ½ΡΡ‚ΡŒ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρƒ Π²ΡΠ΅Ρ… Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… строк ΠΈ Π΄Π»Ρ записи Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… строк Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ лист. ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ события Click для ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π½ΠΈΠΆΠ΅.

'Π‘Π½ΡΡ‚ΡŒ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅.

Private Sub CommandButtonl_Click ().

For i = 0 To ListBoxl. ListCount — 1 ListBoxl. Selected (i) = False Next End Sub.

'Π—Π°ΠΏΠΈΡΡŒ Π½Π° Π»ΠΈΡΡ‚.

Private Sub CommandButton2_Click ().

S = InputBox («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ имя листа»).

If S «» Then 'Π½Π΅ Π½Π°ΠΆΠ°Π»ΠΈ ΠžΡ‚ΠΌΠ΅Π½Π°.

Sheets.Add after:=Sheets (Sheets.Count).

Sheets (Sheets.Count).Name = S.

R.Resize (l, R.Columns.Count).Copy 'ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ActiveSheet. Paste k = 2.

For i = 0 To ListBoxl. ListCount — 1 If ListBoxl. Selected (i) Then.

For j = 1 To ListBoxl.ColumnCount.

Cells (k, j) = ListBoxl. List (i, j — 1).

Next.

k = k + 1 End If Next End If End Sub.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ