Oc-windows.ru

IT Новости из мира ПК
4 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Включить режим конструктора в excel

Microsoft Excel

трюки • приёмы • решения

Режим конструктора и элементы ActiveX в VBA Excel

В наших статьях мы подробно рассмотрим практические примеры, связанные с использованием программирования, которое заложено в Microsoft Office. Оно основывается на языке VBA, название которого в полном виде выглядит так Visual Basic for Application. Учитывая, что все рассматриваемые разработки будут использовать VBA, наша первоочередная задача познакомиться сданным языком.

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

Рис. 1.4. Закладка Основные окна Параметры Excel

Предполагается, что читатель хотя бы в незначительной степени знаком с чисто пользовательскими возможностями Microsoft Excel прошлых версий. Важно отметить, что наибольший эффект будет наблюдаться, если запустить Microsoft Excel параллельно с чтением наших статей и выполнять все описанные разработки на компьютере. При рассмотрении примеров на протяжении всего изучения нам понадобятся элементы ActiveX, которые по-другому можно назвать Элементы управления.

И в качестве первого шага необходимо в окне, показанном на рис. 1.2, щелкнуть кнопкой Параметры Excel. В результате перед вами откроется новое окно с набором закладок. Здесь на закладке Основные следует сделать установку для отображения на ленте вкладки Разработчик, что реализуется с помощью флажка Показывать вкладку «Разработчик» на ленте (рис. 1.4).

В Microsoft Excel элементы ActiveX можно размещать и на пользовательских формах, и на самих рабочих листах (на верхнем графическом слое, где располагаются рисунки, диаграммы и другие объекты). Часто вставка нескольких элементов ActiveX значительно упрощает работу с данными на рабочем листе. Все элементы управления делятся на две группы: элементы управления формами и элементы управления ActiveX. Оба набора элементов управления имеют свои преимущества и недостатки. В общем случае элементы управления формами проще в применении, но зато элементы ActiveX являются более гибкими. В наших примерах мы будем использовать исключительно элементы ActiveX.

В результате окно приложения Microsoft Excel дополнится новыми пиктограммами, которые нам потребуются в дальнейшем (рис. 1.5). Среди тех, которыми мы будем активно пользоваться на протяжении всей книги, отметим пиктограмму с надписью Вставить. С се помощью на рабочем листе можно размещать элементы ActiveX, которые существенно дополняют функциональность книг Microsoft Excel. Они типичны для различных приложений Windows (речь идет о кнопках, полосах прокрутки, текстовых окнах, переключателях, списках и т. д.). Кроме пиктограммы Вставить мы будем активно пользоваться и другими присутствующими на ленте Режим конструктора, Свойства, Visual Basic и Макросы.

Перед тем как начать какие-либо действия с тем или иным элементом ActiveX, его необходимо поместить на рабочий лист. Это легко выполнить, если воспользоваться пиктограммой Вставить. На рис. 1.6 показано размещение на рабочем листе элемента ActiveX Кнопка.

Рис. 1.5. Отображение вкладки Разработчик на ленте

При наведении курсора мыши на пиктограмму элемента ActiveX Кнопка в качестве подсказки появляется еще один вариант его названия: элемент управления «Кнопка». Далее по тексту мы будем использовать оба варианта названия — элементы ActiveX и элементы управления.

Для того чтобы перенести элемент ActiveX на рабочий лист, необходимо щелкнуть на панели инструментов на его пиктограмме левой кнопкой мыши и далее переместить курсор мыши на рабочий лист. Курсор мыши примет вид, аналогичный математическому знаку «плюс». Теперь следует нажать левую кнопку мыши и, не отпуская ее, переместить мышь вправо и вниз, а затем отпустить ее левую кнопку. В результате на рабочем листе мы увидим изображение появившегося элемента ActiveX, окруженного маркерами (рис. 1.6).

Рис. 1.6. Размещение кнопки на рабочем листе в режиме конструктора

После размещения элемента ActiveX на рабочем листе активизируется кнопка Режим конструктора, которая позволяет пользователю далее работать в одном из двух режимов. Один из них так и называется режим конструктора. В этом случае можно работать с элементами ActiveX для создания необходимого интерфейса на рабочем листе. Также в этом режиме пользователю предоставляется возможность создавать программные разработки.

Появление маркеров (см. рис. 1.6), окружающих элемент ActiveX, как раз и является признаком того, что мы работаем в режиме конструктора (кнопка Режим конструктора в этом случае выглядит нажатой). На начальном этапе создания разработки работа в режиме конструктора сводится к размещению элементов управления на рабочем листе и изменению их свойств. Далее производится программирование различных событий, связанных с элементами управления, листами и книгой в целом.

Читать еще:  Лучший видеоплеер для 7

Важно отметить, что после размещения элемента ActiveX на рабочем листе, в нашей книге (можно даже сказать — на данном листе книги) появился новый элемент, который фактически представляет собой «программный» объект. Аналогичным образом на рабочих листах книг Excel можно размещать и другие элементы ActiveX.

Рис. 1.7. Вид рабочего листа при выходе из режима конструктора

Другой режим можно назвать режимом выполнения или режимом работы (какого-то однозначно принятого названия не существует). Чтобы перейти в этот режим (то есть выйти из режима конструктора), необходимо отжать кнопку Режим конструктора (рис. 1.7). После этого в нашем случае можно просто пощелкать кнопкой, которую мы создали на рабочем листе (функциональные действия, которые можно обеспечить в этом случае, мы рассмотрим в дальнейшем). Далее опять вернемся в режим конструктора. С помощью маркеров, окружающих кнопку, можно легко изменить се размеры. Также с помощью мыши можно перемещать созданную кнопку по рабочему листу.

Включить режим конструктора в excel

Модератор форума: _Boroda_, Manyasha, SLAVICK, китин
Мир MS Excel » Вопросы и решения » Вопросы по VBA » При нажатии конструктор не активна кнопка вставить (Макросы/Sub)

При нажатии конструктор не активна кнопка вставить

lebensvollДата: Понедельник, 18.07.2016, 17:40 | Сообщение № 1

Кто бы ты ни был, мир в твоих руках

Ответить

_Boroda_Дата: Понедельник, 18.07.2016, 17:47 | Сообщение № 2

А если Конструктор отжать, то Вставить активна?
Если нет, то посмотрите:
1. Не выделено ли несколько листов сразу?
2. Не стоит ли защита листа?
3. Нет ли общего доступа к файлу и разрешения нескольким пользователям редактировать?
4. Такое безобразие везде или только в этой книге ?

Если на все вопросы ответ «нет», то попробуйте скопировать этот лист в отдельную книгу и положить сюда

А если Конструктор отжать, то Вставить активна?
Если нет, то посмотрите:
1. Не выделено ли несколько листов сразу?
2. Не стоит ли защита листа?
3. Нет ли общего доступа к файлу и разрешения нескольким пользователям редактировать?
4. Такое безобразие везде или только в этой книге ?

Если на все вопросы ответ «нет», то попробуйте скопировать этот лист в отдельную книгу и положить сюда _Boroda_

Скажи мне, кудесник, любимец ба’гов.
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

Ответить

Сообщение А если Конструктор отжать, то Вставить активна?
Если нет, то посмотрите:
1. Не выделено ли несколько листов сразу?
2. Не стоит ли защита листа?
3. Нет ли общего доступа к файлу и разрешения нескольким пользователям редактировать?
4. Такое безобразие везде или только в этой книге ?

Если на все вопросы ответ «нет», то попробуйте скопировать этот лист в отдельную книгу и положить сюда Автор — _Boroda_
Дата добавления — 18.07.2016 в 17:47

lebensvollДата: Понедельник, 18.07.2016, 17:49 | Сообщение № 3

Кто бы ты ни был, мир в твоих руках

Ответить

RANДата: Понедельник, 18.07.2016, 17:58 | Сообщение № 4

Быть или не быть, вот в чем загвоздка!

Ответить

SGermanДата: Понедельник, 18.07.2016, 18:53 | Сообщение № 5

Мудрость приходит со старостью. Но иногда старость приходит одна 🙂

Ответить

SGermanДата: Понедельник, 18.07.2016, 19:04 | Сообщение № 6

Был код для Worksheet_Change и Worksheet_SelectionChange, где ничего особенного не проиходило (проверки там всякие и все).
Проект большой, файл не цепляется.

Был код для Worksheet_Change и Worksheet_SelectionChange, где ничего особенного не проиходило (проверки там всякие и все).
Проект большой, файл не цепляется. SGerman

Мудрость приходит со старостью. Но иногда старость приходит одна 🙂

Ответить

Был код для Worksheet_Change и Worksheet_SelectionChange, где ничего особенного не проиходило (проверки там всякие и все).
Проект большой, файл не цепляется. Автор — SGerman
Дата добавления — 18.07.2016 в 19:04

SGermanДата: Понедельник, 18.07.2016, 19:17 | Сообщение № 7

Сейчас внимательнее просмотрел код SelectionChange: в нем проверяется, с какой строки ушел фокус и для старой строки пвыполняется проверка всех ячеек и изменение цвета фона тех из них, где были обнаружены ошибки. При этом собственно перемещения фокуса не происходит.

Так вот, если окраски не было (для строк заголовка), то функция «Вставить» остается активной, а если была, то неактивной. Такие вот вареники 🙂

Вот код функции окраски:

200?’200px’:»+(this.scrollHeight+5)+’px’);»> Public Function Check_PaintCells(rRange As Range, sCode As String) As Boolean
‘ По указанному коду ищет в таблице цветовой палитры ячейку — образец и, если в колонке
‘ «Красить» найденной строки значение «Да», красит указанный диапазон ячеек
‘ в соответствующий цвет (фон и символы) и возвращает true
‘ В противном случае возвращается false
Dim i As Integer
Dim j As Integer

Check_PaintCells = False
i = Find_ManualTableRow(«Цветовая палитра выделения ошибок при проверке данных»)
If i > 0 Then
For j = i + 1 To i + 10 ‘ Таблица не должна быть более 9 строк
If Worksheets(«Manual»).Cells(j, 5).Value = sCode Then
‘ Указанный код найден
If Worksheets(«Manual»).Cells(j, 6).Value = «Да» Then
‘ Установлен режим окраски для этого кода
rRange.Interior.Color = Worksheets(«Manual»).Cells(j, 3).Interior.Color
rRange.Font.Color = Worksheets(«Manual»).Cells(j, 3).Font.Color
Check_PaintCells = True
Else
‘ Не установлен режим окраски для этого кода ошибки
Check_PaintCells = False
End If
Check_PaintCells = True
Exit For
End If
Next j
End If

Сейчас внимательнее просмотрел код SelectionChange: в нем проверяется, с какой строки ушел фокус и для старой строки пвыполняется проверка всех ячеек и изменение цвета фона тех из них, где были обнаружены ошибки. При этом собственно перемещения фокуса не происходит.

Так вот, если окраски не было (для строк заголовка), то функция «Вставить» остается активной, а если была, то неактивной. Такие вот вареники 🙂

Вот код функции окраски:

200?’200px’:»+(this.scrollHeight+5)+’px’);»> Public Function Check_PaintCells(rRange As Range, sCode As String) As Boolean
‘ По указанному коду ищет в таблице цветовой палитры ячейку — образец и, если в колонке
‘ «Красить» найденной строки значение «Да», красит указанный диапазон ячеек
‘ в соответствующий цвет (фон и символы) и возвращает true
‘ В противном случае возвращается false
Dim i As Integer
Dim j As Integer

Check_PaintCells = False
i = Find_ManualTableRow(«Цветовая палитра выделения ошибок при проверке данных»)
If i > 0 Then
For j = i + 1 To i + 10 ‘ Таблица не должна быть более 9 строк
If Worksheets(«Manual»).Cells(j, 5).Value = sCode Then
‘ Указанный код найден
If Worksheets(«Manual»).Cells(j, 6).Value = «Да» Then
‘ Установлен режим окраски для этого кода
rRange.Interior.Color = Worksheets(«Manual»).Cells(j, 3).Interior.Color
rRange.Font.Color = Worksheets(«Manual»).Cells(j, 3).Font.Color
Check_PaintCells = True
Else
‘ Не установлен режим окраски для этого кода ошибки
Check_PaintCells = False
End If
Check_PaintCells = True
Exit For
End If
Next j
End If

Мудрость приходит со старостью. Но иногда старость приходит одна 🙂

Ответить

Сообщение Сейчас внимательнее просмотрел код SelectionChange: в нем проверяется, с какой строки ушел фокус и для старой строки пвыполняется проверка всех ячеек и изменение цвета фона тех из них, где были обнаружены ошибки. При этом собственно перемещения фокуса не происходит.

Так вот, если окраски не было (для строк заголовка), то функция «Вставить» остается активной, а если была, то неактивной. Такие вот вареники 🙂

Включить режим конструктора в excel

Если вы хотите изменить форму, следует открыть ее в режиме конструктора или, если она уже открыта, включить этот режим. Воспользуйтесь одним из нижеприведенных способов:

Выделите нужное имя на вкладке Формы (Forms) окна базы данных, а затем нажмите кнопку Конструктор (Design) — рис. 31.22;

Если вы уже работаете с формой, нажмите кнопку Вид (View) на панели инструментов Access и выберите в раскрывшемся списке пункт Конструктор (Design View) — рис. 31.23;

Выполните команды меню Вид Р Конструктор (View Design View).

Чтобы выбрать формат для формы или изменить уже существующий, выполните команды меню Формат О Автоформат (Format о Autoformat), затем выберите соответствующий стиль.

Перемещение элемента управления

Вы можете переместить элемент управления в форме, причем допускается перетаскивание его надписи отдельно от него самого.

Произведите следующие операции:

1. После открытия формы в режиме конструктора (рис. 31.24) наведите указатель мыши на какой-либо элемент управления.

2. Удерживая нажатой левую клавишу мыши, передвиньте указатель на новое место в пределах формы (рис. 31.25).

3. Отпустите клавишу мыши. Результат показан на рис. 31.26.

4. Для сохранения изменений щелкните по кнопке Сохранить (Save);

Нажмите клавиши Ctrl+S;

Выберите команды Файл Сохранить (File Save).

Чтобы увеличить область сетки, щелкните мышью по правой или нижней границе области и, удерживая клавишу мыши нажатой, переместите указатель (рис. 31.27).

Изменение размеров элемента управления и перемещение его надписи

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

В первом случае воспользуйтесь следующим методом:

1. Переместите один из маркеров изменения размера выбранного объекта (рис. 31.28-31.29).

2. Сохраните изменения.

Если вы решили переместить сразу несколько элементов управления, удерживайте нажатой клавишу Shift и щелкайте по каждому из них или с помощью мыши обведите всю группу объектов рамкой выделения. Затем примените способ, рассмотренный выше.

Длина текстового поля не изменяется, даже если вы меняете размер текстового блока, относящегося к данному полю.

Если вы задались целью переместить надпись, не сдвигая поля, с которыми она связана, произведите следующие операции:

1. Перетащите маркер перемещения надписи (большой черный квадрат в верхнем левом углу) в нужном направлении (рис. 31.30).

Создание кнопки в excel для макросов

Рассмотрим несколько вариантов создания кнопок в Excel для запуска какой-нибудь процедуры. Для примера напишем простую процедуру, которая будет присваивать текстовой значение ячейки равным «Привет, мир!»

Переходим на вкладку Разработчик (о том как добавить ее вы можете узнать из статьи о вкладках в Excel ) и нажимаем иконку Visual Basic (либо можно воспользоваться комбинацией клавиш Alt+F11).

Откроет окно Microsoft Visual Basic for Applications. Создадим модуль.

В левой области окна Project – VBAProject нажимаем правую кнопку мыши на Microsoft Excel Objects – Insert – Module

В открывшемся окне пишем процедуру:

Далее переходим на лист Excel.

Создание кнопки через картинку или изображение

Создадим на листе простой прямоугольник с надписью «Кнопка». Нажимаем по нему правой кнопкой мыши и выбираем пункт назначить макрос.

В открытом окне программа предложит список макросов со всех открытых книг. В моем случае открыта только одна книга и в не всего один макрос «Привет». Выделяем его и нажимаем ОК.

Снимаем выделение с прямоугольника. Теперь при нажатии мышкой на него будет выполняться макрос «Привет». Для выделения элементов с назначенными макросам для последующего редактирования используйте правую кнопку мыши.

Создание кнопки элемент управления формой

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

Добавляем элемент: переходим на вкладку Разработчик – Вставить – Выбираем элемент кнопка:

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

Для того, чтобы изменить название кнопки, надо выделить кнопку правой кнопкой мыши, а затем нажать левой по названию.

Создание кнопки ActiveX на листе и форме.

Как и в предыдущем примере нажимаем на вкладке Разработчик иконку вставить, но теперь выбираем кнопку элемент ActiveX:

Рисуем кнопку в нужном месте. Для начала сразу давайте поменяем ее название, для этого выделяем левой кнопкой мыши, при этот обратите внимание, что режим конструктора должен быть активен:

Далее на панели инструментов нажимаем свойства:

Сейчас нас интересует свойство Caption – именно оно отвечает за надпись на кнопке. Атрибут Name отвечает за обращение к кнопке в коде процедуры, давайте тоже изменим, напишем просто Btn1 (использовать только латинские буквы).

Далее на панели инструментов в блоке элементы управления нажимаем Просмотр кода или просто двойной щелчок левой кнопкой мыши на кнопке, и переходим в код процедуры:

Пишем код для запуска процедуры с названием Привет, которую мы создали в самом начале:

Все, кнопка создана, можно проверять (не забудьте перед проверкой отключить режим конструктора).

Кнопка на форме создается аналогично, только сперва создадим форму. Переходим в окно VBA (ALT+F11). Нажимаем правой кнопкой мыши на Microsoft Excel Objects – Insert – UserForm

По умолчанию вызвался инструмент Toolbox из которого мы должны добавить кнопку CommandButton. Вставляем ее на форму и сразу изменим имя. Это делается точно также, как и со случаем кнопки ActiveX на листе, только сейчас для того, чтобы выбрать свойства нажимает правой клавишей на кнопке и выбираем Properties:

Также изменяем свойство Caption на Кнопка, а свойство Name на Btn1. Далее заходим в код кнопки – двойной щелчок на кнопке. Пишем в коде процедуры Call Привет:

Теперь мы сделаем так – кнопка из предыдущего примера будет вызывать эту форму, а кнопка на форме изменять значения ячейки A1.

Свойство Name созданной формы имеет значение UserForm1 (это легко проверить, зайдя в свойства (Properties) самой формы). Для того, чтобы выводить форму, теперь заходим в код кнопки на листе (режим конструктора должен быть включен). И меняем Call Привет на UserForm1.Show вот так:

Все проверяем. Нажимаем кнопку на листе (перед этим отключаем режим конструктора):

Ссылка на основную публикацию
Adblock
detector