MyTetra Share
Делитесь знаниями!
Использование элементов управления ActiveX на листах
Время создания: 16.03.2019 23:43
Текстовые метки: ActiveX, shape
Раздел: Разные закладки - VBA - Excel - Shapes
Запись: xintrea/mytetra_db_adgaver_new/master/base/1521920896j4d5kap03v/text.html на raw.githubusercontent.com

Использование элементов управления ActiveX на листах

office 365 dev account|Последнее обновление: 29.09.2017
|
1 Участник

В этом разделе описываются конкретные сведения об использовании элементов управления ActiveX в листы и листы диаграмм.Общие сведения о добавлении и работа с элементами управления просмотрите С помощью элементов управления ActiveX в документе и Создание настраиваемого диалогового окна .

При работе с элементами управления на листах необходимо помните следующее:

  • Помимо стандартных свойств, доступных для элементов управления ActiveX, можно использовать следующие свойства с помощью элементов управления ActiveX в Microsoft Excel: BottomRightCell , LinkedCell , ListFillRange , Размещение , Печать объекта , TopLeftCell и ZOrder .

Эти свойства можно задать и возвращаются в имени элемента управления ActiveX.Следующий пример прокрутка окна книги, поэтому CommandButton1 находится в левом верхнем углу.

Set t = Sheet1.CommandButton1.TopLeftCell

With ActiveWindow

.ScrollRow = t.Row

.ScrollColumn = t.Column

End With



  • При активации элемента управления ActiveX отключены некоторые свойства и методы Microsoft Excel Visual Basic.Например метод сортировки не может использоваться, когда элемент управления активен, поэтому следующие возникает ошибка кода кнопки в процедуре события click (так как элемент управления остаются активными при нажатии его).

Private Sub CommandButton1.Click

Range("a1:a10").Sort Key1:=Range("a1")

End Sub



You can work around this problem by activating some other element on the sheet before you use the property or method that failed. For example, the following code sorts the range:



Private Sub CommandButton1.Click

Range("a1").Activate

Range("a1:a10").Sort Key1:=Range("a1")

CommandButton1.Activate

End Sub



  • Элементы управления на книги Microsoft Excel, внедренные в документ в другом приложении не будут работать при двойном щелчке рабочей книги для ее редактирования.Элементы управления будет работать, если пользователь щелкает правой кнопкой мыши книгу и выбирает команду Открыть контекстное меню.

  • При сохранении книги Microsoft Excel в формате книги Microsoft Excel 5.0/95 теряются данные элемента управления ActiveX.

  • Ключевое слово Me в процедуре события для элемента управления ActiveX на листе ссылается на лист, не к элементу управления.

Добавление элементов управления с помощью Visual Basic

В Microsoft Excel элементы управления ActiveX, представлены OLEObject объектов в коллекции OLEObjects (все объекты OLEObject также находятся в коллекции фигур ).Для программного добавления элемента управления ActiveX в лист, используйте метод Add коллекции OLEObjects .В следующем примере добавляется кнопка команды на листе 1.

Worksheets(1).OLEObjects.Add "Forms.CommandButton.1", _

Left:=10, Top:=10, Height:=20, Width:=100



С помощью свойства элемента управления с помощью Visual Basic

Чаще всего кода Visual Basic будет ссылаться на элементы управления ActiveX с именем.В следующем примере изменяется заголовок элемента управления с именем «CommandButton1».

Sheet1.CommandButton1.Caption = "Run"



Обратите внимание, что при использовании имя элемента управления за пределами модуль класса для таблицы, содержащей элемент управления, необходимо указать имя элемента управления, с помощью имя листа.

Чтобы изменить имя элемента управления, используемого в коде Visual Basic, выберите элемент управления и в окне Свойства задайте для свойства (имя) .

Так как элементы управления ActiveX также представлены OLEObject объектов в коллекции OLEObjects , можно задать с помощью объектов в коллекции свойств элемента управления.В следующем примере задается положение левого края элемента управления с именем «CommandButton1».

Worksheets(1).OLEObjects("CommandButton1").Left = 10



Возвращает объект фактического элемента управления, с помощью свойства объекта можно задать свойства элемента управления, которые не отображаются в виде свойства объекта OLEObject .В следующем примере задается заголовок для CommandButton1.

Worksheets(1).OLEObjects("CommandButton1"). _

Object.Caption = "run me"



Так как все объекты OLE, также входят в коллекции фигур , коллекции можно использовать для настройки свойств для нескольких элементов управления.Следующий пример выравнивание левого края все элементы управления на листе 1.

For Each s In Worksheets(1).Shapes

If s.Type = msoOLEControlObject Then s.Left = 10

Next



Имена элементов управления с помощью фигур и OLEObjects семейств сайтов

Элемент управления ActiveX на листе имеет два имени: имя, который содержит элемент управления, который можно просмотреть в поле имя при просмотре листа и имя кода для элемента управления, который можно просматривать в ячейке справа от (имя) в свойств фигуры окно ES.При первом добавлении элемента управления в лист, соответствующие имени фигуры и с кодовым именем.Тем не менее если изменить код имени или имени фигуры, другой не изменяется автоматически в соответствии с.

Использование кода имя элемента управления в именах его процедур обработки событий.Тем не менее при вернуть элемент управления из коллекции фигур или OLEObjects для листа, необходимо использовать имя фигуры, а не имя кода, для ссылки на элемент управления по имени.Например предположим, что флажок Добавить в лист и наличия CheckBox1 фигуры имя по умолчанию и имя кода по умолчанию.Нажмите, чтобы изменить имя элемента управления кода с помощью следующей команды chkFinished рядом с пунктом (имя) в окне Свойства, необходимо использовать chkFinished в процедуру имен событий, но по-прежнему необходимо использовать CheckBox1 возвращает элемент управления из фигур или ** OLEObject** семейства сайтов, как показано в следующем примере.

Private Sub chkFinished_Click()

ActiveSheet.OLEObjects("CheckBox1").Object.Value = 1

End Sub



Так же в этом разделе:
 
MyTetra Share v.0.65
Яндекс индекс цитирования