Что такое режим конструктора в excel
Покопался в И-нете и в MSDN нарыл как войти в режим конструктора:
Sub TurnOnDesignMode()
ThisWorkbook.ToggleFormsDesign
End Sub
Попробовал приписать этот макрос к шэйпу на листе.
Работает!
Но описанный там же переключатель режима «вкл-выкл» почему-то не работает, а ругается, что свойства Workbook.DesignMode не существует:
Private Sub WorkbookToggleFormsDesign()
If Not ThisWorkbook.DesignMode Then
ThisWorkbook.ToggleFormsDesign
End If
End Sub
С уважением, Алексей (ИМХО: Excel-2003 — THE BEST. )
Пользователь
Сообщений: 1220 Регистрация: 13.05.2010
19.07.2010 14:50:03
Дмитрий, нашел Ваш пример, но для меня это загадка.
Юрий, гляньте пожалуйста, все сразу поймете.
Пользователь
Сообщений: 1220 Регистрация: 13.05.2010
19.07.2010 14:51:27
Дмитрий, глянте Ваш пример, там как-то через гиперссылку, хотя могу и ошибаться, но явно не через макрос.
Пользователь
Сообщений: 14617 Регистрация: 15.09.2012
Профессиональная разработка приложений для MS Office
19.07.2010 14:55:21
Где именно загадка? Какой пример?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы.
Пользователь
Сообщений: 1220 Регистрация: 13.05.2010
19.07.2010 14:59:01
Простите, на работе кондиционер полетел, очень жарко, поэтому могу что-то не так сделать 🙂
Прикрепленные файлы
- post_138707.zip (61.43 КБ)
Пользователь
Сообщений: 14617 Регистрация: 15.09.2012
Профессиональная разработка приложений для MS Office
19.07.2010 15:05:50
Ё-маё, Дмитрий! Какое это имеет отношение к данной теме? Тут разговор про режим конструктора, а Вы про переход в редактор VBA спрашиваете. Что мешает свою тему создать или спросить хотя бы в той, где пример есть?
А делается это так:
Правый клик на фигуре- Гиперссылка- Веб-страница
Пишите туда: #ИмяМодуля.ИмяМакроса
P.S. В следующий раз за такое безобразие с вопросом не по теме и вообще из головы — удалю все посты не глядя и не отвечая. У нас тут тоже жара и лишний раз голову ломать, про какие Вы там примеры думаете, желания мало.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы.
Пользователь
Сообщений: 1220 Регистрация: 13.05.2010
19.07.2010 15:31:01
Видимо я не так понял что означает «перейти в режим Конструктора».
В дальнейшем обещаю быть более внимательным!
Спасибо за помощь!
Пользователь
Сообщений: 2746 Регистрация: 22.12.2012
На лицо ужасный, добрый внутри
20.07.2010 09:12:15
Так всё-таки: как программно узнать, включен в книге режим конструктора или нет?
А метод ToggleFormsDesign и макрос:
Sub TurnOnDesignMode()
ThisWorkbook.ToggleFormsDesign
End Sub
почему-то только включает, а не переключают (ON-OFF) режима конструктора
А как тогда выйти из него ?
С уважением, Алексей (ИМХО: Excel-2003 — THE BEST. )
Пользователь
Сообщений: 14617 Регистрация: 15.09.2012
Профессиональная разработка приложений для MS Office
20.07.2010 09:37:45
Алекс, ну ведь в ссылке, которую я дал есть строка, которая снимает режим конструктора:
Application.CommandBars.FindControl(ID:=1605).Reset
Насчет узнать включен он или нет надо подумать.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы.
Пользователь
Сообщений: 2746 Регистрация: 22.12.2012
На лицо ужасный, добрый внутри
20.07.2010 12:42:58
Application.CommandBars.FindControl(ID:=1605).Reset
всего лишь выполняет пункт меню (т.е. имитирует нажатие кнопки).
При этом вовсе не факт что ID:=1605 будет соответствовать режиму конструктора в других версиях и локализациях Ёкселя.
Вот, к примеру, Юрий М 19.07.2010, 13:22 предлагал использовать
Application.CommandBars(«Control Toolbox»).Controls(1).Execute
а у меня панели настроены «под себя» и режиму конструктора соответствует вовсе не Controls(1), а Controls(2). Поэтому это предложение мне сразу не очень понравилось и я стал искать альтернативные методы.
То же вполне может касаться и обращению по ID.
Согласитесь, что это своего рода «протез» в отличие от использования МЕТОДА
Workbook.ToggleFormsDesign, который воздействует непосредственно на объект.
И собственно вопрос-то остался только в том, почему этот метод не переключает, а только включает режим конструктора?
А если это баг, то нельзя ли его обойти, запросив программно СВОЙСТВО состояния (включен/выключен) режима конструктора и (опять же узнав как) выключить его, используя соответствующий МЕТОД.
С уважением, Алексей (ИМХО: Excel-2003 — THE BEST. )
Пользователь
Сообщений: 14617 Регистрация: 15.09.2012
Профессиональная разработка приложений для MS Office
20.07.2010 13:29:42
Не соглашусь и очень категорично.
всего лишь выполняет пункт меню (т.е. имитирует нажатие кнопки).
При этом вовсе не факт что ID:=1605 будет соответствовать режиму конструктора в других версиях и локализациях Ёкселя.
Вот, к примеру, Юрий М 19.07.2010, 13:22 предлагал использовать
Application.CommandBars(«Control Toolbox»).Controls(1).Execute
а у меня панели настроены «под себя» и режиму конструктора соответствует вовсе не Controls(1), а Controls(2). Поэтому это предложение мне сразу не очень понравилось и я стал искать альтернативные методы.
То же вполне может касаться и обращению по ID.
Согласитесь, что это своего рода «протез» в отличие от использования МЕТОДА
Workbook.ToggleFormsDesign
Во-первых: ID во всех локализациях один и не может быть заменен. А вот индекс(.Controls(1))как раз и меняется, о чем я и писал ранее — 19.07.2010, 13:48.
Во-вторых: метод .Reset не «всего лишь выполняет пункт меню (т.е. имитирует нажатие кнопки)», а сбрасывает нажатую кнопку меню. А выполняет .Execute.
Я так полагаю, что метод Workbook.ToggleFormsDesign Вы не считаете протезом, несмотря на то, что как раз он способен только включить режим конструктора? А .DesignMode вообще умер в 97 Exele.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы.
Пользователь
Сообщений: 2746 Регистрация: 22.12.2012
На лицо ужасный, добрый внутри
20.07.2010 13:59:18
Ну, на счёт постоянства ID вам, ГУРУ, конечно виднее, а я просто намотаю себе это на ус.
Но согласитесь, что программный код, в котором режим конструктора включается методом Workbook.ToggleFormsDesign, намного «читабельнее» чем то же действие, выполняемое по директиве Application.CommandBars.FindControl(ID:=1605).Execute .
Ведь что делается при Workbook.ToggleFormsDesign ясно безо всяких комментариев, а вот для того, чтобы узнать, что выполняется по директиве Application.CommandBars.FindControl(ID:=1605).Execute, придётся очень поломать голову (я не думаю, что кто-нибудь в состоянии запомнить соответствие этих почти 1,5 тысячи номеров выполняемым действиям).
Ну, ведь не пишете же вы для того чтобы ВСТАВИТЬ директиву Application.CommandBars.FindControl(ID:=22).Execute
С уважением, Алексей (ИМХО: Excel-2003 — THE BEST. )
Пользователь
Сообщений: 14617 Регистрация: 15.09.2012
Профессиональная разработка приложений для MS Office
20.07.2010 14:03:52
Ну тогда я пас. Если для Вас читабельность важнее функционала — это не ко мне. Я других универсальных методов включения режима конструктора не знаю.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы.
Пользователь
Сообщений: 1220 Регистрация: 13.05.2010
20.07.2010 14:29:45
Алексей, а я вот понял, что я ничего не понял.
А смысл этого всего?! Для чего такие сложности?!
Объясните пожалуйста на примере. С выложенного файла ничего не понял.
Я Вам помочь не могу, но хочется для себя разобраться, зачем все это, вдруг пригодиться 🙂
Пользователь
Сообщений: 2746 Регистрация: 22.12.2012
На лицо ужасный, добрый внутри
20.07.2010 16:12:19
Дъмитръ, вы мой файл post_138679.zip открывали?
Тему http://www.planetaexcel.ru/forum.php?thread_id=12706 смотрели?
Вроде бы и в файле и в коде и в теме вполне должно хватать разъяснений и комментариев . (уж чем-чем, а недостаточностью комментариев в программах я, кажется, не грешу)
Ну, что же там может быть не понятно?
Я просто для того, чтобы указать программе, по каким диапазонам работать, поставил на лист элементы управления — Label1 и Label2.
В результате появилась возможность для изменения диапазонов данных (это может потребоваться, например, при удалении или добавлении строк/столбцов в таблицу) не лезть в код VBA чтобы там ручками исправлять диапазоны, а просто переместить в нужные места (в заголовки диапазонов) элементы управления.
При удалении/добавлении столбцов/строк на листе эти элементы управления скорее всего переместятся вместе с ячейками, к которым они «привязаны» сами и ничего перетаскивать мышкой не придётся.
Но уж если вдруг почему-то нужно будет самому изменить диапазоны данных, то тут без режима конструктора никак не обойтись, т.к. элементы управления мышкой «цепляются» только в нём.
Вот мне и хотелось бы ещё больше упростить работу с таблицей путём введения возможности входа в режим конструктора ну, например, по событию двойного клика по ячейке, где стоит элемент управления, и выхода из него по событию Worksheet_SelectionChange.
уф-ф-ф. теперь понятно?
Создание таблиц с помощью конструктора
Создавая таблицу в конструкторе таблиц вы можете более тщательно подойти к проектированию базы данных, настроить типы полей, создать список подстановки, а также внешний ключ, связанный с первичным ключом.
Создание таблицы с помощью конструктора таблиц
- На вкладке Создание нажмите кнопку Конструктор таблиц.
- В новой таблице введите имя первого поля и выберите его тип.
- Чтобы задать первичный ключ для таблицы, выберите ячейку Имя поля для соответствующего поля, а затем нажмите кнопку Ключевое поле. Слева от имени поля появится индикатор первичного ключа. Первичный ключ можно сменить в любой момент, но в каждой таблице может быть только один первичный ключ.
- На вкладке Файл выберите пункт Сохранить и присвойте таблице имя.
При создании и изменении таблиц с помощью конструктора таблиц доступно также множество других возможностей.
- Переключайтесь между режимами конструктора и таблицы при работе с любой сохраненной таблицей.
- Устанавливайте любое поле в качестве первичного ключа таблицы.
- Используйте Построитель для создания выражений и масок ввода.
- Тестируйте правила проверки.
- Вставляйте и удаляйте строки.
- Создавайте списки подстановки.
- Создавайте, переименовывайте и удаляйте макросы данных.
- Определяйте связи и зависимости объектов.
Вкладки работа с таблицами
Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).
При вставке или выберите таблицу в Microsoft Publisher 2010 Контекстная вкладка Работа с таблицами будут доступны на ленте. Эта вкладка содержит две вкладки, Оформление и Макет, предоставляющие возможность быстро отформатировать таблицу, вставка или удаление строк и столбцов, задать выравнивание ячеек и форматировать оформление текста в таблицу.
Вкладка «Оформление»
Вкладка » Конструктор » включает в себя форматирование, таблицы и ячеек границ таблицы, упорядочивания таблицы на страницу, а также размер таблицы.
Совет: При наведении указателя мыши на команды появляется их краткое описание.
Форматы таблиц
Группа Форматов таблицы содержит коллекцию заготовок форматы, которые можно применить к таблице. При наведении указателя мыши на каждый отформатированных таблицы стилей, вы можете просмотреть, как будет выглядеть таблица.
- Щелкните таблицу, для которой требуется задать формат.
- В разделе Работа с таблицами откройте вкладку Конструктор.
- В группе Форматирование таблицы наведите указатель на каждый стиль таблицы, пока найдете стиль, который вы хотите использовать.
Примечание: Чтобы просмотреть другие стили, щелкните стрелку Дополнительно .
Границы
Чтобы придать таблице нужный вид, можно добавить или удалить границы.
Добавление границ в таблицу
- В разделе Работа с таблицами откройте вкладку Конструктор.
- Изменение толщины границы, выберите в раскрывающемся меню Толщина линии в группе границы.
- Чтобы изменить цвет границы, выберите в раскрывающемся меню Цвет линии в группе границы.
- Затем в группе границы щелкните границы и выберите нужные. параметры границы
Удаление границ во всей таблице
- Выберите таблицу.
- В разделе Работа с таблицами откройте вкладку Конструктор.
- В группе границы выберите пункт границы и выберите пункт Нет границы.
Добавление границ к отдельным ячейкам
- Выделите нужные ячейки.
- В разделе Работа с таблицами откройте вкладку Конструктор.
- В группе границы выберите пункт границы и выберите нужные параметры границы.
Удаление границ в определенных ячейках
- Выделите нужные ячейки.
- В разделе Работа с таблицами откройте вкладку Конструктор.
- В группе границы выберите пункт границы и выберите пункт Нет границы.
Упорядочение
В группе » Упорядочить » вы можно задать обтекание текста вокруг таблицы, перевести таблица вперед или назад относительно других объектов на странице выравнивание таблицы на странице или относительно направляющие полей, Группировка и разгруппировать таблицу с другими объектами и поворот Таблица.
Размер
В группе » размер » можно настроить высоты и ширины ячеек в таблице. Если установлен флажок Автоподбор высоты строки автоматически увеличивается, чтобы вписать текст.
Вкладка «Макет»
Вкладка » Макет » включает выделение ячеек, строк, столбцов и всю таблицу; средства для удаления или Вставка строк и столбцов; Работа, чтобы объединить или разделить ячейки; Выравнивание в ячейке и параметры полей; элементы управления оформления для открытого типа шрифтов.
Выбрать
Инструмент « Выделение » позволяет быстро выделить ячейку, столбец, строки или таблицу целиком. Отобразить сетку средства будет отображение или скрытие линий сетки между ячейками в таблице.
Строки и столбцы
Группа » строки и столбцы » содержит инструменты для удаления и вставки строк и столбцов в таблице.
Удаление
Инструмент «Удалить» можно удалять строки или столбцы выделенной ячейке или вы можете удалить всю таблицу.
Вставить
Существует четыре Вставка средств:
- Вставить выше вставит строки выше ваш текущий фрагмент. Если у вас есть ячеек в двух строк, выбранных вставит две строки выше верхнюю ячейку.
- Вставить снизу вставит строки под ваш текущий фрагмент. Если у вас есть ячеек в двух строк, выбранных вставит две строки ниже нижнюю ячейку.
- Вставить слева будет вставлен слева от текущего выбора столбцов. Если у вас есть ячеек в двух столбцах выбран вставит два столбца слева от левую ячейку.
- Вставить справа будет вставлять столбцы справа от ваш текущий фрагмент. Если у вас есть ячеек в двух столбцах выбран вставит два столбца справа от правую ячейку.
Слияние
Группа » Слияние » позволяет объединение и разбиение ячеек в таблице, включая разбиение ячеек по диагонали.
- Объединить ячейки позволяет объединение двух или нескольких выделенных ячеек.
- Разбиение ячеек позволяет разделение ранее объединенных ячеек обратно в отдельные ячейки.
- Диагонали позволяет разделить отдельные ячейки по диагонали вниз, вправо или вправо до. Можно также объединить по диагонали разделенные ячейки, выбрав Нет деления.
Выравнивание
Группа «Выравнивание» предоставляет вам контролировать выравнивание, направление и перенос текста в ячейках таблицы и управления поля ячейки.
Оформление
Группа «Оформление» обеспечивает расширенный типографских элементы управления для некоторых шрифтах открытый тип, а также возможность использования буквицы. Дополнительные сведения о функции оформления перейдите в раздел использование типографских стилей для увеличения влияние публикации.
Какой режим использовать — «Макет» или «Конструктор»?
Вносить изменения в формы можно в двух режимах — макета и конструктора. В любом из режимов можно выполнять одни и те же задачи конструирования и разметки, но есть задачи, которые проще выполнять в каждом из них. В этой статье описано сходство и различие режимов макета и конструктора, а также показано, как выполнять распространенные задачи конструирования форм в каждом из режимов.
Примечание: Эта статья написана для форм, но многие описанные здесь подходы применимы и к изменению отчетов.
В этой статье
- Общие сведения о режимах макета и конструктора
- Изменение формы в режиме макета
- Изменение формы в режиме конструктора
Общие сведения о режимах макета и конструктора
Режим макета. Режим макета в большей степени ориентирован на визуальное восприятие, чем режим конструктора. При просмотре формы в режиме макета в каждом элементе управления отображаются реальные данные. Этот режим очень удобен для настройки размера элементов управления и выполнения многих других задач, которые влияют на визуальное представление и удобство использования формы.
Некоторые задачи невозможно выполнить в этом представлении, и для них требуется переключиться в конструктор. В некоторых ситуациях в Access отображается сообщение о том, что необходимо переключиться в конструктор, чтобы внести определенное изменение.
Режим конструктора. В режиме конструктора более детально представлена структура формы. Здесь вы видите заголовок, подробности и нижний колонтитул формы. При внесении изменений в структуру вы не можете просматривать базовые данные, тем не менее определенные задачи проще выполнять в режиме конструктора. Вы можете:
- добавлять в форму больше разнообразных элементов управления, таких как надписи, изображения, линии и прямоугольники;
- изменять источники для текстовых полей в самих полях, не открывая их страницу свойств;
- изменять размер разделов формы, например ее заголовка или раздела подробностей;
- изменять некоторые свойства формы, которые невозможно изменить в режиме макета (такие как Режим по умолчанию или Режим формы).
Изменение формы в режиме макета
После создания формы вы можете легко настроить ее структуру, используя режим макета. Вы можете перемещать элементы управления и изменять их размеры, ориентируясь на сами данные. Можно добавить в форму новые элементы управления, а также задать свойства для формы и ее элементов управления.
Чтобы перейти в режим макета, щелкните правой кнопкой мыши имя формы в области навигации и выберите команду Режим макета .
Access выведет форму в режиме макета.
Для изменения свойств формы, элементов управления и разделов можно использовать страницу свойств. Чтобы открыть страницу свойств, нажмите клавишу F4.
С помощью области Список полей можно добавлять поля из базовой таблицы или запроса в структуру формы. Отобразить область Список полей можно одним из следующих способов:
- На вкладке Формат в группе Элементы управления нажмите кнопку Добавить поля .
- Нажмите клавиши ALT+F8.
Затем можно перетащить поля прямо из области Список полей в форму.
- Чтобы добавить одно поле, дважды щелкните его и перетащите из области Список полей в нужный раздел формы.
- Чтобы добавить сразу несколько полей, щелкните их, удерживая нажатой клавишу CTRL. Затем перетащите выбранные поля в форму.
Изменение формы в режиме конструктора
Настроить структуру формы можно и в режиме конструктора. Вы можете добавить в форму новые элементы управления и поля, поместив их на бланк. На странице свойств можно задать множество свойств для настройки формы.
Чтобы переключиться на конструктор, щелкните правой кнопкой мыши имя формы в области навигации и выберите команду Конструктор .
Access выведет форму в конструкторе.
Для изменения свойств формы, элементов управления и разделов можно использовать страницу свойств. Чтобы открыть страницу свойств, нажмите клавишу F4.
С помощью области Список полей можно добавлять поля из базовой таблицы или запроса в структуру формы. Отобразить область Список полей можно одним из следующих способов:
- На вкладке Конструктор в группе Сервис нажмите кнопку Добавить существующее поле.
- Нажмите клавиши ALT+F8.
Затем можно перетащить поля прямо из области Список полей в форму.
- Чтобы добавить одно поле, дважды щелкните его и перетащите из области Список полей в нужный раздел формы.
- Чтобы добавить сразу несколько полей, щелкните их, удерживая нажатой клавишу CTRL. Затем перетащите выбранные поля в форму.