Нужно вызвать форму и скрыть кнопки, номера которых указаны в массиве - VBA

Узнай цену своей работы

Формулировка задачи:

Есть UserForm с 40 кнопками ("CB1"-"CB40"). Есть массив в основном модуле проги. Нужно вызвать форму и скрыть кнопки (.Visible=False), номера которых указаны в массиве. 1) Проблема: нужно передать значения массива в подпрограмму инициализации формы. Но как? Находил ответ для 1 переменной: через UserForm.Frame1.Capture=..., но тут целый массив. 2) Есть ли выход по-проще? - например скрыть эти кнопки на этапе перед инициализацией формы через модуль основной программы. 3) Как передать данные обратно в основной модуль проги? 4) Как запустить при нажатии кнопки на форме какую-либо функцию, подпрограмму: VBA ругается на выражения вроде: Call Workbook_Open внутри Private Sub CB1_Click()
5) Можно ли чтобы макрос основного модуля продолжал выполняться сразу после UserForm.Show, не ожидая закрытия формы?

Решение задачи: «Нужно вызвать форму и скрыть кнопки, номера которых указаны в массиве»

textual
Листинг программы
Option Explicit
Public WithEvents BtnInArr As MSForms.CommandButton
 
Private Sub BtnInArr_Click()
    Dim nn As Integer
    nn = CInt(Replace(BtnInArr.Name, "CommandButton", ""))
    BtnInArr.Parent.Caption = "Кнопка №" & nn
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.143 из 5
Похожие ответы