VBA Excel
242 subscribers
88 photos
23 links
VBA Excel для начинающих. Справка по VBA Excel. Visual Basic for Applications. Справочник. Самоучитель.
Download Telegram
📋 ListView в режиме lvwSmallIcon
ListView в режиме lvwSmallIcon - это более удачный вариант, чем ListView в режиме lvwIcon. По крайней мере, на моём программном обеспечении.

Пример использования ListView в режиме lvwSmallIcon
1️⃣ Подключите библиотеку Microsoft Windows Common Controls 6.0 (SP6), если она не подключена.
2️⃣ Добавьте на панель Toolbox элементы управления «Microsoft ListView Control» и «Microsoft ImageList Control».
3️⃣ Создайте новую форму и перетащите на неё элементы ListView, ImageList и CommandButton с панели элементов управления (Toolbox).
4️⃣ Создайте несколько иконок (в примере их 5 штук) и поместите их в папку с именем «Test» на диске «C».
5️⃣ В модуль формы вставьте следующий код:

Private Sub UserForm_Initialize()
' Настройка формы
With Me
.Caption = "Сообщество смурфов"
.Width = 350
.Height = 250
End With

' Настройка кнопки
With CommandButton1
.Caption = "Выбрать"
.Width = 60
.Height = 24
.Top = Me.Height - 70
.Left = Me.Width / 3 + 20
.Font.Size = 10
End With

' Настройка ListView
With ListView1
.View = lvwSmallIcon
.LabelEdit = lvwManual
.Sorted = True
.MultiSelect = False
.HideSelection = False
.FullRowSelect = False
.Left = Me.Left
.Top = Me.Top
.Width = Me.Width ' По ширине разворачиваем на всю форму
.Height = Me.Height - 80 ' Внизу оставляем место для кнопок
End With

With ImageList1.ListImages
.Add , "PapaSmurf", LoadPicture("C:\Test\PapaSmurf.ico")
.Add , "Smurfette", LoadPicture("C:\Test\Smurfette.ico")
.Add , "BrainySmurf", LoadPicture("C:\Test\BrainySmurf.ico")
.Add , "GutsySmurf", LoadPicture("C:\Test\GutsySmurf.ico")
.Add , "ClumsySmurf", LoadPicture("C:\Test\ClumsySmurf.ico")
End With

' Привязка ImageList к ListView
Set ListView1.SmallIcons = ImageList1

' Добавление элементов с иконками
With ListView1.ListItems
.Add , , "Папа Смурф", , "PapaSmurf"
.Add , , "Смурфетта", , "Smurfette"
.Add , , "Смурф Знайка", , "BrainySmurf"
.Add , , "Смурф Храбрец", , "GutsySmurf"
.Add , , "Смурф Растяпа", , "ClumsySmurf"
End With
End Sub


Запустите форму, нажав на треугольник (Run Sub/UserForm) или на клавишу F5. Результат работы кода на скриншоте ниже.

#VBA #Excel #ListView #Icon #Значок #Иконка
👍31
📋 ListView в режиме lvwSmallIcon (продолжение)

Для определения, какой элемент ListView1 выбран, добавьте в модуль формы процедуру для кнопки:

Private Sub CommandButton1_Click()
MsgBox ListView1.selectedItem.Text
End Sub


Теперь при нажатии на кнопку «Выбрать», информационное окно будет выводить текст выбранного элемента.

#VBA #Excel #ListView #Icon #Значок #Иконка
👍3🔥21
☀️ Создание фигур в VBA Excel

Фигуры в VBA Excel создаются методом Shapes.AddShape:
Shapes.AddShape (Type, Left, Top, Width, Height)


Параметры метода AddShape:
🔸 Type - константа из коллекции MsoAutoShapeType, определяющая тип создаваемой фигуры.
🔸 Left - расстояние от левой границы фигуры до левой границы табличной части рабочего листа в пунктах. Тип данных — Single.
🔸 Top - расстояние от верхней границы фигуры до верхней границы табличной части рабочего листа в пунктах. Тип данных — Single.
🔸 Width - ширина фигуры по внешним границам в пунктах.
🔸 Height - высота фигуры по внешним границам в пунктах.

Пример создания фигур:
Sub Primer1()
With ActiveSheet.Shapes
'При создании фигуры без присвоения ее переменной скобки не нужны
.AddShape msoShapeCube, 30, 40, 72, 72
.AddShape msoShapeIsoscelesTriangle, 130, 40, 72, 72
.AddShape msoShapeSun, 230, 40, 72, 72
.AddShape msoShapeLightningBolt, 330, 40, 72, 72
'Чтобы выбрать фигуру, параметры необходимо заключить в скобки
.AddShape(msoShapeCloud, 430, 40, 72, 72).Select
End With
End Sub

Результат работы кода на скриншоте ниже.

#VBA #Excel #Shape #AddShape #Фигура #Создать
5👍2
Скриншот к посту: Создание фигур в VBA Excel
👍3
🔢 Метод Evaluate и квадратные скобки

А вы знали, что действие квадратных скобок в VBA Excel аналогично действию метода Application.Evaluate?

💡 У метода Evaluate есть более короткий и удобный синоним — квадратные скобки. У квадратных скобок есть недостатки: в них не получится использовать переменные и вычислять математические выражения, переданные текстовой строкой.

🔬 Сравнение доступа к ячейке разными способами: традиционным, стандартным Evaluate и сокращенным (квадратные скобки).

1️⃣ Ссылка на ячейку в текущей книге
Debug.Print Sheets("Лист2").Range("A14")
Debug.Print Evaluate("Лист2!A14")
Debug.Print [Лист2!A14]


2️⃣ Ссылка на ячейку в другой книге
Debug.Print Workbooks("Книга2.xlsm").Sheets("Лист2").Range("A14")
Debug.Print Evaluate("'[Книга2.xlsm]Лист2'!A14")
Debug.Print ['[Книга2.xlsm]Лист2'!A14]


Доступ к ячейке через Evaluate не рекомендуется использовать в циклах, так как он медленнее, чем через Range.

Больше примеров с методом Evaluate и квадратными скобками на сайте Время не ждёт в статье: VBA Excel. Метод Application.Evaluate.

#VBA #Excel #Evaluate #Метод #Ссылка #Скобки
👍5