Vba excel для всех кнопок

Макрос и средства VBA находятся на вкладке Разработчик, которая по умолчанию скрыта.

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

Вкладка "Разработчик" на ленте

Добавление кнопки (управление формы)

  1. На вкладке Разработчик в группе Элементы управления нажмите кнопку Вставить, а затем в группе Элементы управления формы нажмитекнопку Изображение кнопки .

  2. Щелкните на листе место, где должен быть расположен левый верхний угол кнопки. Появится всплывающее окно Назначение макроса.

  3. Назначьте кнопке макрос и нажмите кнопку ОК.

  4. Чтобы задать свойства кнопки, щелкните ее правой кнопкой мыши и выберите форматирование.

Добавление кнопки (ActiveX управления)

  1. На вкладке Разработчик в группе Элементы управления нажмите кнопку Вставить, а затем вгруппе Элементы управления ActiveX нажмите кнопку Изображение кнопки .

  2. Щелкните на том месте, где должен отображаться левый верхний угол кнопки.

  3. В группе Элементы управления нажмите кнопку Код представления. При этом Visual Basic редактора. Убедитесь, что в списке справа выбрано нажатие кнопки. При нажатии кнопки CommandButton1_Click процедуры (см. рисунок ниже) запускаются эти два макроса: SelectC15 и HelloMessage.

    Подпрограмма в редакторе Visual Basic

  4. В подпроцеду для кнопки сделайте следующее:

    • Введите имя существующего макроса в книге. Макрос можно найти, щелкнув Макрос в группе Код. С помощью кнопки можно запускать несколько макроса, вводя их имена в отдельных строках подпроцесса.

    • При необходимости добавьте собственный код VBA.

  5. Закроем Visual Basic редактора и нажмите кнопку Режим конструктора Изображение кнопки режим конструктора, чтобы отключить режим конструктора.

  6. Чтобы запустить код VBA, который теперь является частью кнопки, нажмите кнопку ActiveX, которую вы только что создали.

  7. Чтобы изменить элемент ActiveX, убедитесь, что выбран режим конструктора. На вкладке Разработчик в группе Элементы управления нажмите кнопку Режим конструктора.

  8. Чтобы задать свойства кнопки, на вкладке Разработчик в группе Элементы управления нажмите кнопку Свойства Изображение кнопки . Можно также щелкнуть правой кнопкой мыши кнопку и щелкнуть свойства .

    Примечание: Перед тем как нажать кнопку Свойства, выделите объект, свойства которого требуется просмотреть или изменить.


    Появится поле Свойства. Для получения дополнительных сведений о каждом свойстве выберите свойство и нажмите клавишу F1, чтобы отобразить соответствующий раздел справка по Visual Basic. Можно также ввести имя свойства в поле Поиск справки Visual Basic. В следующей таблице 2010 2010 2016 2016 2016 2016 201

Описание параметра

Необходимое свойство

Общие

Загружает ли его при открытом книге. (Игнорируется для ActiveX элементов управления.)

AutoLoad (Excel)

Может ли он получать фокус и отвечать на события, созданные пользователем.

Enabled (форма)

Можно ли изменять элемент управления

Locked (форма)

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

Name (форма)

Способ привязки элемента управления к расположенным под ним ячейкам (не закреплен, можно перемещать, но нельзя изменять размер, можно перемещать и изменять размер)

Placement (Excel)

Можно ли выводить элемент управления на печать

PrintObject (Excel)

Является ли элемент управления видимым или скрытым

Visible (форма)

Текст

Атрибуты шрифта (полужирный, курсив, размер, зачеркивание, подчеркивание и насыщенность)

Bold, Italic, Size, StrikeThrough, Underline, Weight (форма)

Поясняющий текст элемента управления, определяющий или описывающий его

Caption (форма)

Будет ли содержимое элемента управления переноситься по словам в конце строки

WordWrap (форма)

Размер и положение

Будет ли размер элемента управления изменяться автоматически для отображения всего содержимого

AutoSize (форма)

Высота или ширина в пунктах

Height, Width (форма)

Расстояние от элемента управления до левого или верхнего края листа

Left, Top (форма)

Форматирование

Цвет фона

BackColor (форма)

Стиль фона (прозрачный или непрозрачный)

BackStyle (форма)

Цвет переднего плана

ForeColor (форма)

Наличие тени элемента управления

Shadow (Excel)

Изображение

Точечный рисунок, отображаемый в элементе управления

Picture (форма)

Положение рисунка относительно его заголовка (слева, сверху, справа и так далее)

PicturePosition (форма)

Клавиатура и мышь

Сочетание клавиш для элемента управления

Accelerator (форма)

Настраиваемый значок мыши

MouseIcon (форма)

Тип указателя, отображаемого при наведите указатель мыши на определенный объект (стандартный, стрелка, I-указатель и так далее).

MousePointer (форма)

Будет ли фокус при щелчке.

TakeFocusOnClick (форма)


Макрос и средства VBA находятся на вкладке «Разработчик», которая по умолчанию скрыта, поэтому сначала нужно включить ее.

  1. Перейдите в Excel > параметры…> ленты & панель инструментов.

  2. В категории Настроить ленту в списке Основные вкладки установите флажок Разработчик, а затем нажмите кнопку Сохранить.

    Чтобы добавить его на ленту, выберите его рядом с "Разработчиком"

Добавление кнопки (управление формы)

Сделайте следующее:

  1. На вкладке Разработчик нажмите кнопку Изображение кнопки .

  2. Щелкните на листе место, где должен быть расположен левый верхний угол кнопки. Появится всплывающее окно Назначение макроса.

    Примечание: Если кнопка уже вставлена, щелкните ее правой кнопкой мыши и выберите назначить макрос.

  3. Назначьте кнопке макрос и нажмите кнопку ОК.

  4. Чтобы задать свойства кнопки, щелкните ее правой кнопкой мыши и выберите форматирование.
     

Добавление кнопки (Visual Basic управления)

  1. На вкладке Разработчик нажмите кнопку Изображение кнопки .

  2. Щелкните место на том месте, где должен отображаться левый верхний угол кнопки.

    Примечание: Если кнопка уже вставлена, щелкните ее правой кнопкой мыши и выберите назначить макрос.

  3. В диалоговом окне Назначение макроса выберите Новый, который откроет редактор Visual Basic(VBE)в области со следующим кодом:

      Sub ButtonX_Click() 
    
      End Sub

  4. В подпроцеду для кнопки между строками Sub и End Sub сделайте следующее:

    • Введите имя существующего макроса в книге. Вы можете запускать несколько макроса с помощью кнопки, введя их имена в отдельных строках внутри под процедуры.

    • Добавьте собственный код VBA.

  5. Нажмите кнопку Режим Изображение кнопки режим конструктора, чтобы режим конструктора отключен, а затем закроем Visual Basic редактора.

  6. Чтобы изменить кнопку, щелкните ее правой кнопкой мыши ивыберите Visual Basic .

  7. Чтобы задать свойства кнопки, щелкните ее правой кнопкой мыши и выберите форматирование.

Элемент управления пользовательской формы CommandButton, используемый в VBA Excel для запуска процедур и макросов. Свойства кнопки, примеры кода с ней.

UserForm.CommandButton – это элемент управления пользовательской формы, предназначенный исключительно для запуска процедур и макросов VBA Excel.

Элемент управления CommandButton

Для запуска процедур и макросов обычно используется событие кнопки – Click.

Свойства элемента CommandButton

Свойство Описание
AutoSize Автоподбор размера кнопки. True – размер автоматически подстраивается под длину введенной надписи (заголовка). False – размер элемента управления определяется свойствами Width и Height.
BackColor Цвет элемента управления CommandButton.
Caption Надпись (заголовок) – текст, отображаемый на кнопке.
ControlTipText Текст всплывающей подсказки при наведении курсора на кнопку.
Enabled Возможность взаимодействия пользователя с элементом управления CommandButton. True – взаимодействие включено, False – отключено (цвет надписи становится серым).
Font Шрифт, начертание и размер текста надписи.
Height Высота элемента управления.
Left Расстояние от левого края внутренней границы пользовательской формы до левого края элемента управления.
Picture Добавление изображения вместо текста заголовка или дополнительно к нему.
PicturePosition Выравнивание изображения и текста на кнопке.
TabIndex Определяет позицию элемента управления в очереди на получение фокуса при табуляции, вызываемой нажатием клавиш «Tab», «Enter». Отсчет начинается с 0.
Top Расстояние от верхнего края внутренней границы пользовательской формы до верхнего края элемента управления.
Visible Видимость элемента управления CommandButton. True – элемент отображается на пользовательской форме, False – скрыт.
Width Ширина элемента управления.
WordWrap Перенос текста заголовка на новую строку при достижении ее границы. True – перенос включен, False – перенос выключен.

В таблице перечислены только основные, часто используемые свойства кнопки. Все доступные свойства отображены в окне Properties элемента управления CommandButton.

Пример кнопки с надписью и изображением

Пример кнопки с надписью и изображением

Примеры кода VBA Excel с кнопкой

Изначально для реализации примеров на пользовательскую форму UserForm1 добавлена кнопка CommandButton1.

Пример 1

Изменение цвета и надписи кнопки при наведении на нее курсора.

Условие примера 1

  • Действия при загрузке формы: замена заголовка формы по умолчанию на «Пример 1», замена надписи кнопки по умолчанию на «Кнопка», запись цвета кнопки по умолчанию в переменную уровня модуля.
  • Сделать, чтобы при наведении курсора на кнопку, она изменяла цвет на зеленый, а надпись «Кнопка» менялась на надпись «Нажми!»
  • Добавление кода VBA Excel, который будет при удалении курсора с кнопки возвращать ей первоначальные настройки: цвет по умолчанию и надпись «Кнопка».

Решение примера 1

1. Объявляем в разделе Declarations модуля пользовательской формы (в самом начале модуля, до процедур) переменную myColor:

2. Загружаем пользовательскую форму с заданными параметрами:

Private Sub UserForm_Initialize()

  Me.Caption = «Пример 1»

    With CommandButton1

      myColor = .BackColor

      .Caption = «Кнопка»

    End With

End Sub

3. Меняем цвет и надпись кнопки при наведении на нее курсора мыши:

Private Sub CommandButton1_MouseMove(ByVal _

Button As Integer, ByVal Shift As Integer, _

ByVal X As Single, ByVal Y As Single)

  With CommandButton1

    .BackColor = vbGreen

    .Caption = «Нажми!»

  End With

End Sub

4. Возвращаем цвет и надпись кнопки при удалении с нее курсора мыши:

Private Sub UserForm_MouseMove(ByVal _

Button As Integer, ByVal Shift As Integer, _

ByVal X As Single, ByVal Y As Single)

  With CommandButton1

    .BackColor = myColor

    .Caption = «Кнопка»

  End With

End Sub

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

Пример 2

Запуск кода, размещенного внутри процедуры обработки события Click элемента управления CommandButton:

Private Sub CommandButton1_Click()

  MsgBox «Код внутри обработки события Click»

End Sub

Пример 3

Запуск внешней процедуры из процедуры обработки события Click элемента управления CommandButton.

Внешняя процедура, размещенная в стандартном модуле проекта VBA Excel:

Sub Test()

  MsgBox «Запуск внешней процедуры»

End Sub

Вызов внешней процедуры из кода обработки события Click

  • с ключевым словом Call:

Private Sub CommandButton1_Click()

  Call Test

End Sub

  • без ключевого слова Call:

Private Sub CommandButton1_Click()

  Test

End Sub

Строки вызова внешней процедуры с ключевым словом Call и без него – равнозначны. На ключевое слово Call можно ориентироваться как на подсказку, которая указывает на то, что эта строка вызывает внешнюю процедуру.

 

Ксения П.

Пользователь

Сообщений: 14
Регистрация: 27.03.2017

#1

12.09.2022 20:44:18

Помогите, пожалуйста, новичку в VBA дописать код.
Посредством макроса у меня добавляется новая строка в таблицу (точнее копируется из другой таблицы), и в одну из ячеек добавляется кнопка, но этих строк в таблице может быть любое количество, в каждой будет кнопка (лучше даже вообще флажок поставить, чтоб галочку ставить, но тут и по оформлению у меня трудности, с кнопкой хоть получилось симпатично)
Мне нужно, чтобы при нажатии каждой такой кнопки вызывалось окно, UserForm готова.
Может это надо в отдельный Sub вынести?

На данный момент у меня выскакивает ошибка 13 Type mismatch

Код
Option Explicit
Dim List As Worksheet
Dim Glavnaya As Worksheet
Dim TablMoto As Range
Dim TablOper As Range
Dim NextFreeCell As Range

' Клик по кнопке ОК в UserForm "Oper"
Sub AddOper()
Set List = ThisWorkbook.Worksheets(2)
Set Glavnaya = ThisWorkbook.Worksheets(1)
Set TablOper = List.Range("A3").EntireRow
Set NextFreeCell = Glavnaya.Cells(Rows.Count, "A").End(xlUp).Offset(RowOffset:=1)
List.Range("B3:G3").ClearContents
' Вставка в таблицу введенных в форме "Oper" данных
List.Range("B3") = Oper.DTPicker1.Value
List.Range("C3") = Oper.TextBox2.Value
List.Range("D3") = Oper.ComboBox1.Value
List.Range("E3") = Oper.TextBox1.Value
' Копирование и вставка шаблона (строка из другой таблицы)
TablOper.Copy
NextFreeCell.PasteSpecial
' Добавление кнопки в добавленную строку в столбец 6
NextFreeCell.Cells(, 6).Activate
Dim obj As OLEObject
Set obj = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
                    Left:=ActiveCell.Left, Top:=ActiveCell.Top, _
                    Width:=ActiveCell.Width, Height:=ActiveCell.Height)

' А вот тут я застопорилась. Надо, чтобы эта кнопка по клику вызывала UserForm "Poluch", но строк уже может быть несколько с этими кнопками. 
' А также нужно, чтобы выделилась эта же ячейка, в которой расположена кнопка, а лучше сразу соседняя справа
For Each obj In Glavnaya.Columns(6)
Poluch.Show
    Next
    Oper.Hide
End Sub

Изменено: Ксения П.12.09.2022 20:52:54

 

лучше не лепить туда ни флажков ни кнопок, а обойтись двойным кликом
и это будет РЕАЛЬНО одна процедура для всех строк

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

 

Ксения П.

Пользователь

Сообщений: 14
Регистрация: 27.03.2017

Не поняла, куда кликать тогда.
Я-то только за упрощение.
У меня такая таблица формируется. В любой момент нужно кликнуть по кнопке, что детали получены, вызывается форма, и именно в этой строке проставляется дата и значок, и эта строка закрашивается зеленым или красным.
Т.е. мне нужна привязка к конкретной строке.
Если делать двойной клик, то по чему кликать?

Изменено: Ксения П.13.09.2022 09:31:10

 

по ячейке. каждая ячейка находится в какой-то, но очень конкретной строке

Изменено: Ігор Гончаренко13.09.2022 09:47:54

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

 

Ксения П.

Пользователь

Сообщений: 14
Регистрация: 27.03.2017

#5

13.09.2022 10:03:36

Цитата
написал:
по ячейке. каждая ячейка находится в какой-то, но очень конкретной строке

А как пользователь поймет, что туда нужно кликнуть дважды? Кнопка-то выглядит как кнопка, тут понятно, что на нее нажать нужно.

 

DANIKOLA

Пользователь

Сообщений: 422
Регистрация: 17.08.2019

#6

13.09.2022 10:11:42

Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    MsgBox Target.Row
End Sub

Если не знаете куда код вставлять,

подучите события листа Excel

.
Вариант2, можно макрос вызова формы добавить на кнопку в панели быстрого доступа, та что с самого верху.
Вариант3, сделать маленькую форму с одной кнопкой, клик по которой будет вызывать главную форму. Прокрутка и фильтр не будет влиять на положение маленькой формы.
P.S. Большое количество кнопок негативно повлияет на размер файла.

Изменено: DANIKOLA13.09.2022 11:44:21

 

Ігор Гончаренко

Пользователь

Сообщений: 13746
Регистрация: 01.01.1970

#7

13.09.2022 10:25:19

Цитата
Ксения П. написал:
А как пользователь поймет

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

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

 

Дмитрий(The_Prist) Щербаков

Пользователь

Сообщений: 14182
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

#8

13.09.2022 10:33:37

Цитата
написал:
Я-то только за упрощение

для начала Вам надо отказаться от элементов ActiveX(ClassType:=»Forms.CommandButton.1″), если нужны именно кнопки. Их можно заменить простыми фигурами.
Но как выше уже написали — идея изначально не самая лучшая. Правильнее сделать одну кнопку, которая вызывает форму, но ориентируется на данные выделенной ячейки. Пользователь по-любому осознает после пары вызовов как это работает.

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

RAN

Пользователь

Сообщений: 7091
Регистрация: 21.12.2012

#9

13.09.2022 10:38:06

Цитата
Ксения П. написал:
А как пользователь поймет, что туда нужно кликнуть дважды?

Так вместо кнопок сделайте инструкцию, куда нажать.

 

см. вложение
(вы догадались куда кликать? и может даже без инструкции поняли для чего это предназначено)

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

 

Ксения П.

Пользователь

Сообщений: 14
Регистрация: 27.03.2017

Спасибо, с двойным кликом поняла.
А с чек-боксом можно эту ячейку сделать, чтобы галочку ставить, как альтернатива двойному клику?

 

Ксения П.

Пользователь

Сообщений: 14
Регистрация: 27.03.2017

#12

13.09.2022 12:29:50

Цитата
написал:
пользователь один раз использует фильтр в вашем файле и все кнопки собьются в кучу, их потом нужно вернуть на свои строки и убедиться, что они не перепутались

Фильтров-то там не будет, таблицы небольшие. Будет расти кол-во таблиц, в каждой из которых не более 10 строк с операциями

 

Ігор Гончаренко

Пользователь

Сообщений: 13746
Регистрация: 01.01.1970

#13

13.09.2022 12:46:55

Цитата
Ксения П. написал:
А с чек-боксом можно эту ячейку сделать

можно. только чем это будет отличаться от кнопки в строке? — ничем
чекбоксов нужно сначала натолкать на лист, на каждый навесить обработку события «чекбоксИзменился» и только потом общая процедура изменения произошли «тут» и она уже сделает основную работу
(с даблкликом первые два пункта уже реализованы)

Изменено: Ігор Гончаренко13.09.2022 12:49:30

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

 

DANIKOLA

Пользователь

Сообщений: 422
Регистрация: 17.08.2019

Еще можно добавить кнопки(и чекбоксы  в том числе) простым протягиванием ячейки за черный крестик, как протягивается обычная формула. Сначала создаем кнопку(элементы управления формы), подгоняем размер кнопки, чтобы она была внутри ячейки, назначаем кнопке макрос и просто протягиваем ячейку за крестик.

Изменено: DANIKOLA13.09.2022 13:10:17

 

Ксения П.

Пользователь

Сообщений: 14
Регистрация: 27.03.2017

#15

13.09.2022 13:42:41

Цитата
написал:
Еще можно добавить кнопки(и чекбоксы  в том числе) простым протягиванием ячейки за черный крестик, как протягивается обычная формула. Сначала создаем кнопку(элементы управления формы), подгоняем размер кнопки, чтобы она была внутри ячейки, назначаем кнопке макрос и просто протягиваем ячейку за крестик.

Не, мне нужно, чтобы они добавлялись вместе с добавляемой строкой, т.к. добавление этих новых строк и будет уже осуществляться пользователем. А строк этих может быть разное кол-во в разных таблицах. В таблице 1 может быть 5, а в таблице 2 — 7 строк, например.
Каждая строка — это описание определенной операции, и когда эта операция будет выполнена (получены детали), то пользователь ставит флажок, заполняет всплывшую форму, строка подсвечивается зеленым/красным, и в эту строку вносятся различные данные из формы.
При таком раскладе и флажок виден, и щелкать понятно сразу куда, когда детали получены, и привязка к строке готова. (Пока у меня просто картинка с галочкой вставляется=)))

Но за подсказку спасибо, возьму на вооружение))

 

Юрий М

Модератор

Сообщений: 60575
Регистрация: 14.09.2012

Контакты см. в профиле

Ксения, если очень хочется галочку, то ведь можно по даблклику и её реализовать : писать в ячейку символ «а» шрифтом Marlettt. Или подобрать символ, где будет галочка в квадратике.

 

Ігор Гончаренко

Пользователь

Сообщений: 13746
Регистрация: 01.01.1970

#17

13.09.2022 14:07:37

Цитата
Ксения П. написал:
добавление этих новых строк и будет уже осуществляться пользователем

а вы за пользователем добавляете в эти строки кнопки или чекбоксы и открываете VBE навешиваете на них макросы и все прекрасно)

Изменено: Ігор Гончаренко13.09.2022 14:12:18

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

 

Дмитрий(The_Prist) Щербаков

Пользователь

Сообщений: 14182
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

#18

13.09.2022 14:11:24

Цитата
написал:
добавление этих новых строк и будет уже осуществляться пользователем

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

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Ксения П.

Пользователь

Сообщений: 14
Регистрация: 27.03.2017

#19

13.09.2022 14:20:38

Цитата
Цитата
на каждый навесить обработку события «чекбоксИзменился»

А как правильно прописать, чтобы каждому новому чек-боксу на листе навешивалась обработка одного события?
Вот я добавила чек-бокс в новую строку, а дальше?

Код
Set NextFreeCell = Glavnaya.Cells(Rows.Count, "A").End(xlUp).Offset(RowOffset:=1)
NextFreeCell.Cells(, 6).Activate
'Добавляю чек-бокс
Dim obj As OLEObject
Set obj = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", _
                    Left:=ActiveCell.Left + 24, Top:=ActiveCell.Top + 4, _
                    Width:=ActiveCell.Width - 40, Height:=ActiveCell.Height - 4.5)
obj.Name = ""
obj.Object.Caption = ""
    Oper.Hide

'И вот тут что-то пытаюсь написать    
    For Each obj In ActiveSheet
    If obj.Value = True Then
    Poluch.Show
    End If
    Next

Но форма Poluch выскакивает сразу после добавления строки с флажком, хоть он и пустой. Если форму закрываю, меняю значение чек-бокса — ничего не происходит

Изменено: Ксения П.13.09.2022 14:21:25

 

Ксения П.

Пользователь

Сообщений: 14
Регистрация: 27.03.2017

#20

13.09.2022 14:24:38

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

Да, строки добавляются по нажатию кнопки из формы. Конечно он не вручную будет добавлять эти строки. В этом и цель. Лист защищу, как все это дело реализую)) Это мне еще тоже предстоит изучить

 

Ксения П.

Пользователь

Сообщений: 14
Регистрация: 27.03.2017

#21

13.09.2022 14:26:34

Цитата
написал:
Ксения, если очень хочется галочку, то ведь можно по даблклику и её реализовать : писать в ячейку символ  «а » шрифтом Marlettt. Или подобрать символ, где будет галочка в квадратике.

Как вариант, попробую
А форму же можно открыть по дабл-клику?

 

Юрий М

Модератор

Сообщений: 60575
Регистрация: 14.09.2012

Контакты см. в профиле

#22

13.09.2022 14:27:46

Цитата
Ксения П. написал:
форму же можно открыть по дабл-клику?

Конечно можно )

 

testuser

Пользователь

Сообщений: 246
Регистрация: 13.06.2022

#23

13.09.2022 15:12:51

Цитата
Ксения П. написал:
А как правильно прописать, чтобы каждому новому чек-боксу на листе навешивалась обработка одного события?

Код
Dim obj As CheckBox
    Set obj = ActiveSheet.CheckBoxes.Add(ActiveCell.Left, ActiveCell.Top, ActiveCell.Width, ActiveCell.Height)
    obj.OnAction = "Макрос1"

Изменено: testuser13.09.2022 15:13:40

 

Ксения П.

Пользователь

Сообщений: 14
Регистрация: 27.03.2017

testuser, спасибо, то что надо!
А как активировать именно ту ячейку, в которой расположен чек-бокс, при нажатии на него?
Она автоматически не выделяется

 

testuser

Пользователь

Сообщений: 246
Регистрация: 13.06.2022

#25

14.09.2022 09:56:19

Цитата
Ксения П. написал:
А как активировать именно ту ячейку, в которой расположен чек-бокс, при нажатии на него?

А не простое это дело )

Код
Sub Добавлениефлажка()    
    Dim ac As Range
    Set ac = ActiveCell
    Set obj = ActiveSheet.CheckBoxes.Add(ac.Left, ac.Top, ac.Width, ac.Height)
    obj.LinkedCell = ac.Address 'связываем чекбокс с ячейкой
    ac.NumberFormat = ";;;" 'скрываем значения чекбокса в ячейке
    obj.OnAction = "Макрос1" 'назначаем макрос
End Sub

Sub Макрос1()
    Range(ActiveSheet.CheckBoxes(Application.Caller).LinkedCell).Select
    'код
End Sub

Изменено: testuser14.09.2022 09:58:19

 

Ксения П.

Пользователь

Сообщений: 14
Регистрация: 27.03.2017

#26

14.09.2022 11:41:34

Цитата
написал:
А не простое это дело )

Код
    [URL=#]?[/URL]       1  2  3  4  5  6  7  8  9  10  11  12  13      Sub   Добавлениефлажка()              Dim   ac   As   Range          Set   ac = ActiveCell          Set   obj = ActiveSheet.CheckBoxes.Add(ac.Left, ac.Top, ac.Width, ac.Height)          obj.LinkedCell = ac.Address   'связываем чекбокс с ячейкой          ac.NumberFormat =   ";;;"   'скрываем значения чекбокса в ячейке          obj.OnAction =   "Макрос1"   'назначаем макрос    End   Sub       Sub   Макрос1()          Range(ActiveSheet.CheckBoxes(Application.Caller).LinkedCell).  Select          'код    End   Sub   

 

Супер! Вот еще дальше пытаюсь допилить

Код
Dim obj As checkbox
Dim ac As Range
    Set ac = ActiveCell
    Set obj = ActiveSheet.CheckBoxes.Add(Left:=ActiveCell.Left + 21, Top:=ActiveCell.Top - 0.75, _
                    Width:=ActiveCell.Width - 40, Height:=ActiveCell.Height - 4.5)
    obj.Caption = ""
    obj.LinkedCell = ac.Address 'ñâÿçûâàåì ÷åêáîêñ ñ ÿ÷åéêîé
    ac.NumberFormat = ";;;" 'ñêðûâàåì çíà÷åíèÿ ÷åêáîêñà â ÿ÷åéêå
    If obj.Value = False Then
obj.OnAction = "Макрос 1"
Else
obj.OnAction = "Макрос 2"
  End If

Но в обоих случаях запускается Макрос 1, т.е. условие if не срабатывает

 

тут огромная дырка в логике, т.е. логики — нет
когда вы вставляете чекбокс а ячейку, он по умолчание пустой (без метки) равен ЛОЖЬ
какой смысл потом писать условие
If obj.Value = False
если я понятно что там False и ВСЕМ вновь вставленным чекбоксам  привязывается макрос1

VBA  выполняет не то, о чем вы мечтаете, а то что вы написали в коде (угадывать мечты не умеет)

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

 

testuser

Пользователь

Сообщений: 246
Регистрация: 13.06.2022

#28

14.09.2022 12:01:27

Ксения П., условие нужно прописать в самом макросе

Код
If ActiveSheet.CheckBoxes(Application.Caller).value = false then 
'Действие 1
Else
'Действие 2
End if

Изменено: testuser14.09.2022 12:02:25

 

testuser

Пользователь

Сообщений: 246
Регистрация: 13.06.2022

#29

14.09.2022 12:12:32

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

Кстати, если надо выделить соседнюю справа

Код
Range(ActiveSheet.CheckBoxes(Application.Caller).LinkedCell).Offset(, 1).Select
 

Ксения П.

Пользователь

Сообщений: 14
Регистрация: 27.03.2017

#30

14.09.2022 20:14:45

Цитата
когда вы вставляете чекбокс а ячейку, он по умолчание пустой (без метки) равен ЛОЖЬ

А когда меняю на галочку, а потом снова меняю на пустой? Т.е. когда снимаю флажок

Цитата
если я понятно что там False и ВСЕМ вновь вставленным чекбоксам  привязывается макрос1

А макрос-то надо привязать к изменению значения чек-бокса, причем на одно изменение (true) один макрос, а на другое (false) — второй

Цитата
VBA  выполняет не то, о чем вы мечтаете, а то что вы написали в коде (угадывать мечты не умеет)

Вот четвертый день только изучаю этот язык)) Словарный запас еще маловат)

А

testuser

, похоже, меня правильно понял

Создание кнопки в Microsoft Excel

Кнопка в Microsoft Excel

​Смотрите также​ выставляется ссылка​Формы​Управление всеми доступными макросами​ она не просто​и​ VBA и файлы​ одни и те​ следующий код:​ с набором элементов​Закрываем редактор, и запускаем​ этой же книге​Теперь после нажатия на​ в документе.​Автор: Максим Тютюшев​ окна. Теперь вкладка​

​ котором желаем расположить​Excel является комплексным табличным​

Процедура создания

​Karataev​через меню​ производится в окне,​ возрвращает Вас в​End Sub​ справки не переводятся​ же действия и​Sub Макрос 1()​ для вставки. Выбираем​ макрос, как и​ (файле), но при​ кнопку будет выполняться​После выбора нажмите кнопку​Табличный процессор Excel вмещает​

Способ 1: автофигура

​ разработчика будет активирована​ объект. Переходим во​ процессором, перед которым​: так можно добавить​

  1. ​Вид — Панели инструментов​​ которое можно открыть​​ предыдущее состояние, но​​- тело макроса,​​ компанией Microsoft на​ операции в Excel.​Range(«M6»).Select​​ первый элемент ActiveX​​ в прошлый раз.​ желании можно установить​ тот макрос, который​ «ОК».​ в себя огромное​ в вашей версии​ вкладку​ пользователи ставят самые​ на ленту кнопку​

    Выбор фигуры в Microsoft Excel

  2. ​ — Формы (View​ с помощью кнопки​ и стирает последнюю​ т.е. команды, которые​ русский язык, поэтому​ Любая офисная работа​End Sub​ – «кнопку» (в​ Как видим, вследствие​

    Сдвиг границ в Microsoft Excel

  3. ​ хранение в новой​ вы указали. Теперь​На этом создание кнопки​ количество опций и​ Excel.​«Вставка»​ разнообразные задачи. Одной​ для макроса средствами​ — Toolbars -​Макросы (Macros)​ записанную команду на​​ будут выполняться при​​ с английскими командами​

    Добавление гиперссылки в Microsoft Excel

  4. ​ предполагает некую «рутинную​Точно так же можно​ виде серого кирпичика).​​ введенных нами изменений​​ книге, или в​ вы знаете все​ первым способом закончено.​ функций, не исключая​​После этого перемещаемся во​​и кликаем по​

Окно создания гиперссылки в Microsoft Excel

​ из таких задач​ самой программы excel​ Forms)​на вкладке​ VBA.​

Кнопка создана в Microsoft Excel

​ запуске макроса. В​​ в меню и​ составляющую» — одни​

Способ 2: стороннее изображение

​ назначить макрос диаграмме,​ Теперь рисуем курсором​ была добавлена ещё​

  1. ​ отдельной книге макросов.​ три способа, как​ Теперь после нажатия​ даже возможность создания​
  2. ​ вкладку​ значку​ является создание кнопки​Файл —> Параметры—>Настройка​​В Excel 2007 и​​Разработчик (Developer)​Чтобы включить запись необходимо:​​ данном случае макрос​​ окнах придется смириться:​ и те же​ объектам WordArt, SmartAtr.​​ кнопку необходимого размера.​​ одна ячейка с​

    Переход к выбору рисунка в Microsoft Excel

  3. ​ Мы оставим значение​ сделать кнопку в​ по ней вы​ кнопки. На первый​«Разработчик»​«Рисунок»​ на листе, нажатие​ ленты —>Выбрать команды​ новее — откройте​​или — в​​в Excel 2003 и​

    Окно выбора рисунка в Microsoft Excel

  4. ​ выделяет ячейку заливает​Макросы (т.е. наборы команд​ еженедельные отчеты, одни​Для показательного примера создайте​Кнопка – элемент управления​ данными. Она также​ по умолчанию.​ Excel.​ будете переходить на​

    Выравнивание размеров кнопки в Microsoft Excel

  5. ​ взгляд абсолютно ненужный​. Щелкаем по кнопке​, который расположен на​ на которую запускало​ —>Макросы—> выберите макрос—>справа​ выпадающий список​ старых версиях Excel​ старше — выбрать​ выделенных диапазон (Selection)​ на языке VBA)​ и те же​ тестовую таблицу как​​ формы. Снова переходим​​ была включена в​

    Переход к назначению макроса в Microsoft Excel

  6. ​В самом нижнем поле​Вот мы и рассмотрели​ другой лист в​ элемент некоторым пользователям​«Вставить»​ ленте в блоке​ бы определенный процесс.​ выберите или создайте​Вставить (Insert)​ — через меню​ в меню​​ желтым цветом (код​​ хранятся в программных​

Выбор макроса в Microsoft Excel

​ действия по обработке​ на рисунке:​ на вкладку «Разработчик».​

Кнопка на листе в Microsoft Excel

​ расчет общей суммы.​​ настройки макросов можно​ три способа, как​

Способ 3: элемент ActiveX

​ документе. Если же​ может быть просто​, расположенной на ленте​ инструментов​ Данная проблема вполне​ вкладку и группу,в​на вкладке​

  1. ​Сервис — Макрос -​Сервис — Макрос -​ = 6) и​ модулях. В любой​ поступивших данных, заполнение​Вместо заголовков колонки таблицы​ Открываем меню инструмента​В случае, если макрос​ оставить любое подходящее​ в Excel сделать​ вы столкнулись с​ необходим. В этой​​ в блоке инструментов​​«Иллюстрации»​ решаема с помощью​​ которую нужно вставить​​Разработчик (Developer)​

    Перемещение в раздел Параметры в Microsoft Excel

  2. ​ Макросы​ Начать запись​​ затем проходит в​​ книге Excel мы​ однообразных таблиц или​ добавим автофигуры, которые​​ «Вставить». Теперь выбираем​​ слишком большой, его​ по контексту описание​ активные кнопки. Как​​ какими-либо трудностями или​​ статье будет рассказано,​«Элементы управления»​.​ инструментария Эксель. Давайте​ кнопку,—>Добавить>>​

    Включение режима разработчика в Microsoft Excel

  3. ​ ​(Tools — Macro -​​(Tools — Macro -​​ цикле по всем​​ можем создать любое​​ бланков и т.д.​ будут служить кнопками​​ элемент «кнопка» из​​ выполнение может занять​​ данного макроса. Но,​​ можно заметить, каждый​ же этот метод​ как сделать кнопку​

    Создание кнопки через элементы ActiveX в Microsoft Excel

  4. ​. В группе​Открывается окно выбора изображения.​ разберемся, какими способами​Vostok​Выберите объект​ Macros)​ Record New Macro)​ ячейкам, заменяя формулы​ количество программных модулей​

    Элемент ActiveX в Microsoft Excel

  5. ​ Использование макросов и​ для сортировки по​ первой группы (такой​

    Щелчок по элементу ActiveX в Microsoft Excel

  6. ​ значительное время. Но,​ это делать не​ из них в​ просто вам не​ в Excel и​«Элементы ActiveX»​ Переходим с помощью​ можно создать подобный​: Идёшь по этому​Кнопка (Button):​:​в Excel 2007 и​ на значения. В​ и разместить там​ пользовательских функций позволяет​ столбцам таблицы.​

Редактор макросов в Microsoft Excel

​ же серый кирпичик).​ путем внесения ручного​

Способ 4: элементы управления формы

​ обязательно.​ значительной мере отличается​ подошел, тогда перейдите​ привязать ее к​кликаем по самому​ него в ту​ объект в этой​ адресу и получает​Затем нарисуйте кнопку на​

  1. ​Любой выделенный в списке​​ новее — нажать​​ конце выводится окно​ наши макросы. Один​​ автоматизировать эти операции,​​В режиме Visual Basic​ Рисуем кнопку. Сразу​​ изменения в код,​​Когда все настройки выполнены,​ друг от друга,​ ко второму способу,​ ячейке.​ первому элементу, который​​ директорию жесткого диска,​​ программе.​ подробнейшее руководство по​ листе, удерживая левую​ макрос можно запустить​ кнопку​ сообщения (MsgBox).​

    Создание элемента управления формы в Microsoft Excel

  2. ​ модуль может содержать​ перекладывая монотонную однообразную​ — ALT+F11 в​ открывается окно для​ мы можем ускорить​
  3. ​ жмем на кнопку​ поэтому, ознакомившись с​ как в Excel​Если перед вами не​​ имеет вид кнопки.​​ где расположен рисунок,​Скачать последнюю версию​ работе с кодом​​ кнопку мыши. Автоматически​​ кнопкой​

Кнопка на листе в программе Microsoft Excel

​Запись макроса (Record macro)​С ходу ясно, что​ любое количество макросов.​ работу на плечи​ папке Modules вставляем​ назначения макроса: можно​ процесс. Добавляем команду​ «OK».​ каждым из них,​ сделать кнопку.​

​ стоит задача создания​

lumpics.ru

Три способа, как сделать кнопку в Excel

​После этого кликаем по​ который предназначен выполнять​ Excel​ RibbonX: Дж.Уокенбах. «Профессиональное​ появится окно, где​Выполнить​на вкладке​ вот так сразу,​ Доступ ко всем​ Excel. Другим поводом​ новый модуль Module1.​ сделать сразу, а​ «Application.ScreenUpdating = False».​После этого, все ваши​ вы сможете подобрать​

Автофигура

​Если вы думаете, что​ оригинальной кнопки и​ любому месту на​ роль кнопки. Выделяем​Как правило, подобная кнопка​ программирование на VBA»​ нужно выбрать макрос,​(Run)​Разработчик (Developer)​ без предварительной подготовки​ модулям осуществляется с​ для использования макросов​ Для этого делаем​ можно попозже.​ Она позволит сохранить​ действия в данной​ для себя самый​ создавать кнопку можно​

  1. ​ вы не хотите​
  2. ​ листе, которое считаем​
  3. ​ его наименование и​ призвана выступать в​ стр. 687, глава​ который должен запускаться​
  4. ​.​Затем необходимо настроить параметры​ и опыта в​ помощью окна Project​ в вашей работе​ по папке правый​Кнопка – автофигура. Переходим​ вычислительные мощности, а​ книге (файле) Excel​ оптимальный.​ только из штатных​
  5. ​ заморачиваться над сложным​ нужным. Сразу вслед​ жмем на кнопку​ качестве ссылки, инструмента​ 22. Как пример,​ при щелчке по​Кнопка​ записываемого макроса в​ программировании вообще и​ Explorer в левом​ может стать необходимость​

как в excel кнопку сделать

​ щелчок мышкой и​ на вкладку «Вставка».​ значит ускорить работу.​ будут записываться в​Автор: Вадим Матузок​ элементов и из​

  1. ​ ее оформлением то​ за этим там​«Вставить»​
  2. ​ для запуска процесса,​
  3. ​ покажу свою вкладку.​ нарисованной кнопке.​Параметры​ окне​ на VBA в​ верхнем углу редактора​ добавить в Microsoft​ выбираем: Insert-Module.​ В меню «Иллюстрации»​ Это достигается путем​ макрос до тех​Макросы программы Microsoft Excel​ действий можно назначать​ проще всего сделать​ отобразится элемент. Как​внизу окна.​ макроса и т.п.​ Создал буквально пару​Создание пользовательских функций или,​(Options)​
  4. ​Запись макроса​ частности, сложновато будет​ (если его не​ Excel недостающие, но​Делаем двойной щелчок по​
  5. ​ выбираем подходящую фигуру.​ отказа от обновления​ пор, пока вы​ позволяют значительно ускорить​ лишь гиперссылку, то​
  6. ​ ее, используя стандартный​ и в предыдущих​

как в excel сделать активные кнопки

​После этого изображение добавляется​ Хотя в некоторых​ недель назад:​ как их иногда​позволяет посмотреть и​:​ сообразить какие именно​ видно, нажмите CTRL+R).​ нужные вам функции.​ Module1 и вводим​ Рисуем. По готовой​ экрана во время​ сами не остановите​ работу с документами​ вы глубоко заблуждаетесь.​

Собственное изображение

​ набор инструментов в​ способах корректируем его​ на плоскость рабочего​ случаях, данный объект​Каждая кнопка запускает​ еще называют, UDF-функций​ отредактировать сочетание клавиш​Имя макроса​ команды и как​ Программные модули бывают​ Например функцию сборки​ в него следующий​ фигуре можно щелкнуть​ выполнения вычислительных действий.​ запись.​ в этом табличном​

  1. ​ Сейчас будет рассказано,​ программе. Такая кнопка​
  2. ​ местоположение и размеры.​ листа. Как и​ может являться просто​
  3. ​ конкретный макрос. Некоторые​ (User Defined Functions)​ для быстрого запуска​- подойдет любое​ надо вводить, чтобы​ нескольких типов для​
  4. ​ данных с разных​ код:Sub Макрос1()​ правой кнопкой мыши​ Чтобы возобновить обновление​Для примера, запишем простейшее​
  5. ​ редакторе. Это достигается​ как сделать кнопку​ будет служить своеобразной​
  6. ​Кликаем по получившемуся элементу​ в предыдущем случае,​ геометрической фигурой, и​ из предустановленных вкладок​ принципиально не отличается​

как сделать кнопку в excel и привязать ее к ячейке

​ макроса.​ имя на русском​ макрос автоматически выполнял​ разных ситуаций:​ листов на один​ActiveWorkbook.Worksheets(«Лист1»).Sort.SortFields.Clear​ и изменить оформление.​

Элемент ActiveX

​ после выполнения макроса,​ арифметическое действие: сложение​ путем автоматизации повторяющихся​ в Excel для​ гиперссылкой для перехода​ двойным щелчком левой​

  1. ​ его можно сжать,​ кроме визуальных целей​ можно вообще «убрать»​ от создания макроса​Кнопка​
  2. ​ или английском языке.​ все действия, которые,​
  3. ​Обычные модули​ итоговый лист, разнесения​ActiveWorkbook.Worksheets(«Лист1»).Sort.SortFields.Add Key:=Range(«A2:A6»), _​Кнопка – рисунок. Переходим​ в его конце​ содержимого трёх ячеек​
  4. ​ действий, записанных в​ запуска макроса, при​ на другие внутренние​
  5. ​ кнопки мыши.​ перетягивая границы. Перемещаем​ не нести никакой​
  6. ​ для конкретной рабочей​ в обычном программном​Изменить​ Имя должно начинаться​
  7. ​ например, Вы делаете​- используются в​ данных обратно, вывод​SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal​ на вкладку «Вставка».​
  8. ​ пишем команду «Application.ScreenUpdating​ (=C4+C5+C6).​

как сделать кнопку в excel для запуска макроса

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

Заключение

​(Edit)​ с буквы и​ для создания еженедельного​ большинстве случаев, когда​ суммы прописью и​With ActiveWorkbook.Worksheets(«Лист1»).Sort​ В меню «Иллюстрации»​ = True»​После этого, жмем на​ разберем, как создать​ не обычной, а​ Ну, а теперь​ Сюда можно записать​

​ область, где желаем,​

fb.ru

Создание макросов в программе Microsoft Excel

Запись макроса в Microsoft Excel

​ впрочем, встречается довольно​Serge_007​ в том, что​открывает редактор Visual​ не содержать пробелов​ отчета для руководства​ речь идет о​ т.д.​.SetRange Range(«A2:D6»)​ выбираем инструмент «Рисунок».​Добавим также команду «Application.Calculation​ кнопку «Остановить запись».​

​ макросы в программе​ в виде изображения,​

Способы записи макросов

​ перейдем непосредственно к​ любой макрос, который​

  • ​ чтобы размещался объект.​
  • ​ редко.​

​:​ макрос выполняет последовательность​ Basic (см. выше)​ и знаков препинания.​ компании. Поэтому мы​ макросах. Для создания​Макрос​.Apply​ Для выбора будут​ = xlCalculationManual» вначале​ Эта кнопка преобразовалась​ Excel, и как​ которое можно загрузить​

​ инструкции, как в​ вы хотите, чтобы​После этого к копке​Прежде всего, рассмотрим, как​Vostok​ действий с объектами​ и позволяет просмотреть​Сочетание клавиш​

Автоматическая запись макросов

​ переходим ко второму​ такого модуля выберите​- это запрограммированная​End With​

Включение макросов в Microsoft Excel

​ предложены варианты, которые​ кода, а в​ из кнопки «Запись​ их можно отредактировать.​ из интернета:​ Excel сделать кнопку:​

Включение записи макроса в Microsoft Excel

​ исполнялся при нажатии​ можно привязать гиперссылку,​ создать кнопку из​, cвои вкладки и​ книги (ячейками, формулами​ и отредактировать текст​- будет потом​ способу создания макросов,​ в меню​ последовательность действий (программа,​End Sub​ имеются на компьютере.​ конце кода дописываем​ макроса», после включения​

​Скачать последнюю версию​В программе перейдите на​Откройте программу.​ на данный объект.​ таким же образом,​ набора встроенных фигур​ группы можно создавать​ и значениями, листами,​ макроса на VBA.​ использоваться для быстрого​ а именно…​Insert — Module​

​ процедура), записанная на​’————————————————​Графический объект создан. Теперь​ «Application.Calculation = xlCalculationAutomatic».​ записи.​ Excel​ вкладку «Вставка».​Перейдите на вкладку «Вставка».​ Например, можно записать​ как это было​ Excel.​ и без Джона​

​ диаграммами и т.д.),​Чтобы не запоминать сочетание​ запуска макроса. Если​Макрорекордер​. В появившееся окно​ языке программирования Visual​Sub Макрос2()​

​ нужно сделать его​ Этим мы вначале​Для того, чтобы проверить,​

Настройки записи макроса в Microsoft Excel

​Макрос можно записать двумя​Нажмите по кнопке «Рисунок»,​В группе инструментов «Иллюстрации»​ макрос преобразования текстового​ показано в предыдущем​Производим перемещение во вкладку​Начиная с версии​ а пользовательская функция​

​ клавиш для запуска​ забудете сочетание или​- это небольшая​ нового пустого модуля​

Формула в Microsoft Excel

​ Basic for Applications​ActiveWorkbook.Worksheets(«Лист1»).Sort.SortFields.Clear​ «рабочим».​ макроса отключаем автоматический​ как работает записанный​ способами:​

Остановка записи макроса в Microsoft Excel

Запуск макроса

​ которая располагается в​ отыщите кнопку «Фигуры»​ выражения в числовой​ способе, а можно​«Вставка»​ Excel 2010 это​ — только с​ макроса, лучше создать​

Переход к запуску макроса в Microsoft Excel

​ вообще его не​ программа, встроенная в​ можно вводить команды​ (VBA). Мы можем​ActiveWorkbook.Worksheets(«Лист1»).Sort.SortFields.Add Key:=Range(«B2:B6»), _​​ пересчет результата после​

Выбор макроса в Microsoft Excel

​ макрос, кликаем в​автоматически;​ группе инструментов «Иллюстрации».​ и нажмите по​ формат, как на​ добавить макрос. В​. Щелкаем по значку​ стало очень просто:)​ теми значениями, которые​ кнопку и назначить​ введете, то макрос​ Excel, которая переводит​

​ на VBA, набирая​ запускать макрос сколько​SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal​К примеру, написали макрос​

Макрос выполнен в Microsoft Excel

Редактирование макроса

​ каждого изменения ячеек,​ том же блоке​вручную.​Откроется окно файлового менеджера​ ней.​ изображении ниже. После​ последнем случае кликаем​

Переход к изменению макроса в Microsoft Excel

​«Фигуры»​Vostok​ мы передадим ей​ ей нужный макрос.​

Microsoft Visual Basic в Microsoft Excel

​ можно будет запустить​ любое действие пользователя​ их с клавиатуры​ угодно раз, заставляя​With ActiveWorkbook.Worksheets(«Лист1»).Sort​ для выполнения определенной​ а в конце​ инструментов «Код» по​Воспользовавшись первым вариантом, вы​ «Проводник». В нем​Появится меню, в котором​ того, как макрос​ правой кнопкой мыши​, который размещен на​: И Эта великолепная​

​ как аргументы (исходные​ Кнопка может быть​ через меню​

​ на язык программирования​
​ или копируя их​

​ Excel выполнять последовательность​.SetRange Range(«A2:D6»)​ задачи. Чтобы запускать​

Изменение макроса в Microsoft Excel

​ макроса – включаем.​ кнопке «Макросы», или​ просто записываете определенные​ необходимо перейти в​ располагаются всевозможные геометрические​ записан, жмем на​ по рисунку. В​ ленте в блоке​ вкладка будет работать​ данные для расчета).​

​ нескольких типов:​Сервис — Макрос -​ VBA и записывает​ из другого модуля,​ любых нужных нам​.Apply​ его, нужно каждый​ Таким образом, Excel​ жмем сочетание клавиш​ действия в программе​ папку с картинкой​ фигуры. Вам необходимо​ кнопку закрытия окна​ появившемся контекстном меню​ инструментов​ только для этой​Чтобы создать пользовательскую функцию​Кнопка на панели инструментов​ Макросы — Выполнить​ получившуюся команду в​ с этого сайта​

​ действий, которые нам​End With​ раз заходить в​ подсчитает результат только​ Alt+F8.​ Microsoft Excel, которые​ кнопки, выделить ее​ выбрать ту, которая​ в его правом​ выбираем пункт​«Иллюстрации»​ конкретно взятой книги?​ для расчета, например,​ в Excel 2003​(Tools — Macro -​ программный модуль. Если​ или еще откуда​

Изменение кода в Microsoft Visual Basic в Microsoft Excel

Написание кода макроса с нуля

​ не хочется выполнять​End Sub​ меню «Разработчик». Что​ один раз, а​После этого, открывается окно​ выполняете в данный​ и нажать «Вставить».​ и будет служить​ верхнем углу.​«Назначить макрос…»​. Раскрывается список всевозможных​Serge_007​

Переход к ручному созданию макроса в Microsoft Excel

​ налога на добавленную​ и старше​ Macros — Run)​

Окно редактора VBE в Microsoft Excel

​ мы включим макрорекордер​ нибудь:​

​ вручную.​’————————————————​ неудобно. Гораздо проще​ не будет его​ со списком записанных​ момент времени. Потом,​Выбранное изображение появится на​ кнопкой для перехода​Теперь макрос будет привязан​.​ фигур. Выбираем ту​: Нет, конечно.​ стоимость (НДС) откроем​Откройте меню​или с помощью​

​ на запись, а​

lumpics.ru

Как сделать кнопку в Excel с помощью макроса и гиперссылки

​Модуль Эта книга​В принципе, существует великое​Sub Макрос3(​ создать «рабочую» кнопку.​ постоянно пересчитывать, чем​ макросов. Ищем макрос,​ можно будет воспроизвести​ листе программы. Измените​ по гиперссылке. В​ к объекту.​

Как сделать кнопку на листе Excel

​Открывается окно управление макросами.​ фигуру, которая, как​Лента — это​ редактор VBA, добавим​Сервис — Настройка​

​ кнопки​

  1. ​ затем начнем создавать​- также виден​ множество языков программирования​) ActiveWorkbook.Worksheets(«Лист1»).Sort.SortFields.Clear​Если мы использовали элемент​ сэкономит время.​ который мы записали,​ эту запись. Данный​ его расположение и​ данном случае мы​Следующий способ очень похож​Кнопка 1.
  2. ​ В нем нужно​ вы считаете, подойдет​ часть Application​ новый модуль через​(Tools — Customize)​Макросы (Macros)​ свой еженедельный отчет,​ в левом верхнем​ (Pascal, Fortran, C++,​ActiveWorkbook.Worksheets(«Лист1»).Sort.SortFields.Add Key:=Range(«C2:C6»), _​ ActiveX, то:​Продвинутые пользователи могут выполнять​ выделяем его, и​Кнопка 2.
  3. ​ способ очень легкий,​ размер по своим​ будем использовать прямоугольник​ по технологии выполнения​ выделить тот макрос,​ более всего на​Vostok​ меню​Кнопка 3.
  4. ​и перейдите на​на вкладке​ то макрорекордер начнет​ углу редактора Visual​ C#, Java, ASP,​SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal​включаем режим конструктора (он​

Кнопка 4.

​ не только редактирование​ жмем на кнопку​ и не требует​

​ предпочтениям.​

Как в Excel сделать кнопку с макросом

​ со скругленными углами.​ на предыдущий вариант.​ который вы желаете​ роль кнопки. Например,​: А моя вкладка​Insert — Module​ вкладку​Разработчик (Developer)​

​ записывать команды вслед​ Basic в окне,​

Макрос 1.

​и введем туда​Команды (Commands)​или нажав ALT+F8.​ за каждым нашим​ которое называется Project​ всех программ пакета​.SetRange Range(«A2:D6»)​ «Разработчик»);​ макросов, но и​

Назначить макрос.

Другие варианты использования кнопок

​Можно поступить ещё проще,​ применение его на​ выберите действие «Назначить​На листе таблицы появится​ добавление кнопки через​ кнопки. Этот макрос​ быть прямоугольник со​ Конкретно Взятой Книги​

​ текст нашей функции:​. В категории​Сохранить в…​ действием и, в​

Гиперссылка.

​ Explorer. В этот​ Microsoft Office стандартом​.Apply​щелкаем два раза кнопкой​ записывать код макросов​ и не вызывать​

Вставка гиперссылки.

​ практике довольно ограничено.​ макрос».​ выбранный элемент. Изначально​ элемент управления формы.​ должен быть уже​ сглаженными углами.​ и не «мозолит»​

​Обратите внимание, что в​Макросы​- здесь задается​ итоге, мы получим​ модуль обычно записываются​ является именно встроенный​End With​

​ мыши по созданной​
​ с нуля. Для​
​ даже окно выбора​

​Ручная запись макросов, наоборот,​Появится окно с перечнем​ он вряд ли​

Как сделать кнопку сортировки в Excel для таблиц

​ Для использования этого​ записан в книге.​После того, как произвели​

Какого товара больше продано по месяцам.

  1. ​ глаза при открытии​ отличие от макросов​легко найти веселый​ место, куда будет​ макрос создающий отчет​Авто-фигуры как заголовки.
  2. ​ макросы, которые должны​ язык VBA. Команды​End Sub​ кнопке – откроется​ того, чтобы приступить​ макросов. Мы же​ требует знаний программирования,​ макросов. Вам остается​Module1.
  3. ​ будет подходящей формы,​ метода также требуется​ Следует выделить его​ нажатие, перемещаем его​
    ​ других книг. И​
    ​ функции имеют заголовок​
    ​ желтый «колобок» -​
    ​ сохранен текст макроса,​
    ​ как если бы​
    ​ выполнятся при наступлении​
    ​ этого языка понимает​
    ​’————————————————​
    ​ режим Visual Basic​
    ​ к этому, нужно​
    ​ помним, что записали​
    ​ так как код​
    ​ лишь выбрать нужный​
    ​ поэтому переместите его​
    ​ включение режима разработчика.​
    ​ наименование и нажать​
    ​ в ту область​
    ​ это очень Удобно!​
    ​Function​
    ​Настраиваемую кнопку​
    ​ т.е. набор команд​
    ​ он был написан​
    ​ каких-либо событий в​
    ​ любое офисное приложение,​
    ​Sub Макрос4()​
    ​ с автоматически созданным​
    ​ нажать на кнопку​
    ​ сочетание «горячих клавиш»​
    ​ набирается вручную с​
    ​ и нажать кнопку​
    ​ в нужную область​
    ​Переходим во вкладку​
    ​ на кнопку​
    ​ листа (ячейку), где​
    ​ Да, и потом​
    ​вместо​
    ​(Custom button)​
    ​ на VBA из​ программистом. Такой способ​ книге (открытие или​ будь то Excel,​
  4. ​ActiveWorkbook.Worksheets(«Лист1»).Sort.SortFields.Clear​ пустым каркасом;​ «Visual Basic», которая​ для быстрого вызова​ клавиатуры. Но, грамотно​

​ «ОК».​ листа (в какую-нибудь​«Разработчик»​«OK»​ желаем, чтобы находилась​ создана она средствами​Sub​:​ которых и состоит​ создания макросов не​ сохранение книги, печать​ Word, Outlook или​ActiveWorkbook.Worksheets(«Лист1»).Sort.SortFields.Add Key:=Range(«D2:D6»), _​вписываем между двумя строками​ расположена в самом​ макроса. В нашем​ написанный таким образом​

​После этого интерактивная кнопка​

​ ячейку) и измените​и кликаем по​.​ кнопка, и двигаем​ RibbonX и VBA.​и непустой список​Перетащите ее к себе​

exceltable.com

Создание макросов и пользовательских функций на VBA

Введение

​ макрос.:​ требует знаний пользователя​ файла и т.п.):​ Access.​SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal​ команду для вызова​ начале ленты разработчика.​ случае, это Ctrl+М.​ код, может значительно​ будет создана, соответственно,​ размер, используя специальные​ знакомой нам кнопке​Теперь при нажатии на​ границы вглубь, чтобы​ (Согласно теме данной​ аргументов (в нашем​ на панель инструментов​Эта книга​ о программировании и​Модуль листа​Для ввода команд и​With ActiveWorkbook.Worksheets(«Лист1»).Sort​ макроса.​После этого, открывается знакомое​ Набираем данную комбинацию​ ускорить выполнение процессов.​ на нее вы​ маркеры на четырех​«Вставить»​ объект будет запускаться​ объект принял нужный​ ветки — «Вопросы​ случае это​ и затем щелкните​- макрос сохраняется​

​ VBA и позволяет​​- доступен через​ формирования программы, т.е.​.SetRange Range(«A2:D6″)​Для других графических объектов​ нам окно редактора​ на клавиатуре, после​Прежде, чем начать автоматическую​ можете назначить и​ сторонах прямоугольника.​, размещенной на ленте​ выбранный макрос.​ нам размер.​ по VBA»).​

​Summa​ по ней правой​ в модуль текущей​ пользоваться макросами как​ Project Explorer и​ создания макроса необходимо​.Apply​ макрос назначается так​ VBE.​ чего макрос запускается.​ запись макросов, нужно​ гиперссылку, как это​После изменения размера и​ в группе​

Способ 1. Создание макросов в редакторе Visual Basic

​Урок:​Теперь следует добавить конкретное​Serge_007​). После ввода кода​ кнопкой мыши. В​ книги и, как​ неким аналогом видеозаписи:​

  • ​ через контекстное меню​ открыть специальное окно​End With​ же. Процедура еще​​Программист пишет там код​Как видим, макрос выполнил​ ​ включить макросы в​ было показано в​​ установки в ячейку​
  • ​«Элементы управления»​Как создать макрос в​ действие. Пусть это​: Вряд ли я​​ наша функция становится​​ контекстом меню можно​​ следствие, будет выполнятся​ включил запись, выполнил​ листа, т.е. правой​ — редактор программ​​End Sub Примечание.​ проще. Нужно щелкнуть​ макроса вручную.​​ в точности все​​ программе Microsoft Excel.​ первом способе.​ нашей своеобразной кнопке​. Открывается список. В​ Excel​ будет переход на​ когда-либо смогу оценить​​ доступна в обычном​ ​ назначить кнопке макрос,​

    Как создать кнопку вȎxcel для макроса​ только пока эта​

​ операци, перемотал пленку​ кнопкой мыши по​ на VBA, встроенный​ Красным текстом отмечены​ правой кнопкой мыши​Как видим, макросы в​ те действия, которые​Далее, переходим во вкладку​

Как создать кнопку вȎxcel для макроса

​Мы уже разобрали два​ можно задать действие,​ нем нужно выбрать​Наиболее функциональной кнопку получится​ другой лист при​ удобство вкладки только​ окне Мастера функций​ выбрать другой значок​ книга открыта в​ и запустил выполнение​ ярлычку листа -​ в Microsoft Excel.​ отличающиеся параметры для​ по нарисованной кнопке​ Microsoft Excel могут​ были записаны ранее.​ «Разработчик». Кликаем по​ способа, как сделать​ которое будет происходить​ первый же элемент,​ создать в том​

​«Элементы управления формы»​ элемент ActiveX. Посмотрим,​ кнопкой мыши. В​

Как создать кнопку вȎxcel для макроса

​ 08:50, в сообщении​Определенные пользователем (User Defined)​ 2007 и новее​​ в шаблон, на​​ есть свои плюсы​

  • ​ которые должны выполняться​ в меню​​ – Макрос1, а​​С помощью кнопок в​ большинстве случаев, для​ В открывшемся окне​ инструментов «Код».​ от предыдущих:​ по прямоугольнику.​. Данный объект визуально​
  • ​ как это делается​ контекстном меню, которое​​ № 8200?’200px’:»+(this.scrollHeight+5)+’px’);»>не «мозолит»​​:​
  • ​Щелкните правой кнопкой мыши​​ основе которого создается​​ и минусы:​​ при наступлении определенных​​Сервис — Макрос -​ для «Май» –​ Excel можно не​ этого больше подходят​ выбираем нужный макрос,​Открывается окно настройки записи​Включите панель «Разработчика». Для​Выберите пункт «Гиперссылка».​ выглядит точно так​ на практике.​ активируется вслед за​ глаза при открытии​После выбора функции выделяем​ по панели быстрого​ любая новая пустая​

​Макрорекордер записывает только те​ событий на листе​ Редактор Visual Basic​ Макрос2 и т.д.​ только выполнять созданные​ макросы, код которых​ и кликаем по​ макроса. Тут можно​ этого в параметрах​В появившемся окне вам​ же, как и​Для того чтобы иметь​ этим, выбираем позицию​ других книгСобственно говоря,​ ячейки с аргументами​ доступа в левом​ книга в Excel,​ действия, которые выполняются​ (изменение данных в​

Способ 2. Запись макросов макрорекордером

​(Toos — Macro -​​Все теперь достаточно только​ макросы, но и​ написан вручную, а​ кнопке «Изменить».​ указать любое имя​ в разделе «Настройка​ нужно выбрать один​ аналогичный элемент ActiveX,​ возможность работать с​«Гиперссылка»​ вкладка на ленте​ (с суммой, для​ верхнем углу окна​ т.е. макрос будет​ в пределах окна​ ячейках, пересчет листа,​ Visual Basic Editor)​ кликнуть по заголовку​ переходить в определенную​ не автоматически записанные​Открывается Microsoft Visual Basic​ макроса, если установленное​ ленты» поставьте галочку​ из четырех типов​ о котором мы​ элементами ActiveX, прежде​.​ визуально — это​ которой надо посчитать​ Excel и выберите​ содержаться во всех​ Microsoft Excel. Как​ копирование или удаление​.​ и таблица отсортирует​

  • ​ ячейку, другой документ,​ действия. Кроме того,​ (VBE) – среда,​ по умолчанию вас​ напротив пункта «Разработчик».​ ссылки. Вы можете​ говорили чуть выше.​ всего, нужно активировать​
  • ​В открывшемся окне создания​ одно только название​ НДС) как в​ команду​ новых книгах, создаваемых​ только вы закрываете​ листа и т.д.)​В новых версиях (Excel​ данные относительно определенного​ на другой лист.​ код макроса можно​ где происходит редактирование​
  • ​ не устраивает. Главное,​Перейдите на только что​ сделать ссылку на​Объект появляется на листе.​ вкладку разработчика. Дело​ гиперссылки переходим во​ вкладки. Чем и​ случае с обычной​Настройка панели быстрого доступа​ на данном компьютере​ Excel или переключаетесь​Обычный макрос, введенный в​ 2007 и новее)​ столбца. Для удобства​ Рассмотрим подробнее.​

​ оптимизировать через редактор​

  • ​ макросов.​ чтобы имя это​ добавленную вкладку «Разработчик».​​ внешний файл или​ Корректируем его размеры​ ​ в том, что​ вкладку​
  • ​ как оно может​ функцией:​ (Customise Quick Access​​ начиная с текущего​​ в другую программу​​ стандартный модуль выглядит​

​ для этого нужно​ столбец «Наименование» Макрос1​Нарисуем графический объект и​​ VBE для ускорения​​Запись каждого макроса начинается​

Как создать кнопку вȎxcel для макроса

  • ​ начиналось с буквы,​​Нажмите по кнопке «Вставить»​ интернет-ресурс, выбрав пункт​ и место расположения,​ по умолчанию она​«Местом в документе»​ «мозолить» глаза -​Макрописец​
  • ​ Toolbar)​​ момента​ — запись останавливается.​ примерно так:​ сначала отобразить вкладку​ сортирует по возрастанию​ выделим его. На​ процесса выполнения задачи.​ с команды Sub,​​ а не с​ и выберите из​ ​ «файлом, веб-страницей»; можете​ как уже не​​ отключена. Поэтому, если​. Выбираем тот лист,​​ мне тоже непонятно​​: Здравствуйте.​​:​​Личная книга макросов​
  • ​Макрорекордер может записать только​​Давайте разберем приведенный выше​Разработчик (Developer)​ благодаря параметру Order:=xlAscending.​ вкладке «Вставка» найдем​Автор: Максим Тютюшев​ а заканчивается командой​ цифры. Также, в​
    • ​ выпадающего меню в​​ сделать ссылку на​ раз делали ранее.​ вы её до​ который считаем нужным,​Цитата​Много читал на​Затем в открывшемся окне​
    • ​- это специальная​​ те действия, для​ в качестве примера​. Выбираем​ Во всех остальных​ кнопку «Гиперссылка».​Кнопка в Excel как​ End Sub. Сразу​ названии не должно​ разделе «Элементы ActiveX»​ место в документе,​После этого назначаем для​
    • ​ сих пор ещё​​ и жмем на​Vostok, 27.06.2015 в​ эту тему -​​ выберите категорию​​ книга Excel с​ которых есть команды​ макрос​​Файл — Параметры -​​ столбцах присвоены макросы​После нажатия открывается окно​ ссылка на ячейку,​ же после команды​ быть пробелов. Мы​ первый пункт, который​

​ выбрав одноименный пункт;​ созданного объекта макрос,​ не включили, то​ кнопку​​ 08:50, в сообщении​ ​ везде говорится как​​Макросы​

Запуск и редактирование макросов

​ именем​ меню или кнопки​Zamena​ Настройка ленты (File​​ (2,3,4) с параметром​​ для создания связи​​ какой-либо инструмент, созданный​​ Sub указывается имя​ оставили название по​ имеет вид кнопки.​​ можно также сослаться​ как это было​ ​ переходите во вкладку​«OK»​​ № 8200?’200px’:»+(this.scrollHeight+5)+’px’);»>…создана она​

Как создать кнопку вȎxcel для макроса

  • ​ сделать кнопку конструктором​и при помощи​Personal.xls​​ в Excel. Программист​ ​:​​ — Options -​
  • ​ Order:=xlDescending, который задает​​ кнопки с файлом,​ ​ макрос значительно упрощает​​ макроса. Оператор «Range(«…»).Select»​ умолчанию – «Макрос1».​Кликните по любому месту​ на другой документ​
  • ​ показано в​​«Файл»​ ​.​​ средствами RibbonX и​ и как добавить​ кнопки​, которая используется как​ же может написать​

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

​Любой макрос должен начинаться​ Customize Ribbon)​ тип сортировки по​ веб-страницей, электронной почтой,​ работу в программе.​ указывает выбор ячейки.​Тут же, при желании,​

​ на листе для​ и на электронную​Способе 2​

​, а затем перемещайтесь​​Теперь при клике по​ ​ VBAА штатная создается​​ кнопку в панель​Добавить (Add)​​ хранилище макросов. Все​​ макрос, который делает​​ с оператора​​и включаем в​ убыванию. Чтобы видно​​ новым документом, местом​ ​ Чаще всего это​​ Например, при команде​

Как создать кнопку вȎxcel для макроса

​ можно установить сочетание​ вставки кнопки.​ почту. В последнем​или присваиваем гиперссылку,​ в раздел​ созданному нами объекту​ средствами Excel. Процитируйте,​ быстрого доступа. А​перенесите выбранный макрос​

Как создать кнопку вȎxcel для макроса

​ макросы из​ то, что Excel​Sub​

​ правой части окна​ было, в каком​ в текущем документе.​ графический объект с​ «Range(«C4»).Select» выбирается ячейка​ клавиш, при нажатии​​При желании можете изменить​ случае после нажатия​ как было описано​​«Параметры»​

Как создать кнопку вȎxcel для макроса

​ будет осуществляться перемещение​ пожалуйста, текст топика,​​ вот про ленту​​ в правую половину​Personal.xls​​ никогда не умел​​, за которым идет​ флажок​ месяце было больше​Достаточно выбрать необходимый вариант​

Как создать кнопку вȎxcel для макроса

​ назначенным макросом или​

​ C4. Оператор «ActiveCell.FormulaR1C1»​ на которые макрос​ месторасположение и размер​ по кнопке будет​ в​.​ на выбранный лист​

  • ​ в котором автор​ — ничего.Можно ли​ окна, т.е. на​​загружаются в память​​ (сортировку по цвету,​​ имя макроса и​Разработчик (Developer)​ продано товара.​ и прописать к​
  • ​ гиперссылкой. Рассмотрим, как​ используется для записи​ будет запускаться. Первой​​ элемента.​​ создано новое письмо​​Способе 1​​В активировавшемся окне параметров​

​ документа.​​ просит решить задачу​

Как создать кнопку вȎxcel для макроса

​ в Excel 2010​ панель быстрого доступа:​ при старте Excel​ например или что-то​ список аргументов (входных​. Теперь на появившейся​Скачать пример кнопки сортировки​ нему путь. Этот​

Создание пользовательских функций на VBA

​ сделать такую кнопку.​ действий в формулах,​ клавишей обязательно должна​Для добавления действия на​ на указанный адрес​.​ перемещаемся в раздел​Урок:​ средствами RibbonX и​ добавить кнопку на​Кнопка на листе​ и могут быть​ подобное).​ значений) в скобках.​ вкладке нам будут​Примечание. Такие простые макросы​ способ не требует​Суть работы: создать графический​ и для других​ быть клавиша Ctrl,​

​ кнопку кликните по​ почты.​Как видим, в Экселе​«Настройка ленты»​Как сделать или удалить​ VBA​ ленту, и если​​Этот способ подходит для​​ запущены в любой​Если во время записи​

Как создать кнопку вȎxcel для макроса

​ Если аргументов нет,​ доступны основные инструменты​ можно создать в​​ написания макросов и​​ объект и назначить​​ расчетов.​​ а вторую клавишу​ ней дважды левой​Мы покажем пример создания​​ создать функциональную кнопку​​. В правой части​ гиперссылки в Excel​Цитата​ да — то​ любой версии Excel.​​ момент и в​​ макроса макрорекордером вы​​ то скобки надо​​ для работы с​

Как создать кнопку вȎxcel для макроса

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

Как создать кнопку вȎxcel для макроса

planetaexcel.ru

Вставка кнопки макроса на ленту в Excel 2010 (Макросы/Sub)

​ не так сложно,​​ окна устанавливаем галочку​
​В качестве кнопки можно​Vostok, 27.06.2015 в​ как?​ Мы добавим кнопку​ любой книге.​ ошиблись — ошибка​ оставить пустыми.​ макросами, в том​ программирования или без​ возможности.​ или гиперссылку. Рассмотрим​ Для этого, в​ Например, мы, в​Откроется окно с полем​

​ место в документе.​​ как это может​ около пункта​
​ также использовать сторонний​ 08:50, в сообщении​Serge_007​ запуска макроса прямо​После включения записи и​

​ будет записана. Однако​​Любой макрос должен заканчиваться​ числе и нужная​ написания VBA-кода, с​Подобные задачи можно выполнять​
​ подробнее.​ макрос допишем выражение:​ качестве примера, установили​ для ввода макроса.​ Кликаем по одноименной​ показаться неопытному пользователю.​«Разработчик»​

​ рисунок.​​ № 8200?’200px’:»+(this.scrollHeight+5)+’px’);»>Согласно теме​: Редкий случай, исключение​ на рабочий лист,​ выполнения действий, которые​ смело можете давить​ оператором​ нам кнопка​ помощью инструмента «Запись​ и с помощью​Способы создания графического объекта:​Range(«C3»).Select​
​ клавишу М.​ В него вы​ кнопке.​ К тому же​, если она отсутствует.​Находим стороннее изображение, например,​

​ данной ветки -​​ из правил​​ как графический объект.​​ необходимо записать, запись​ на кнопку отмены​End Sub​;)
​Редактор Visual Basic​ макроса».​ макросов. Например, чтобы​


​Кнопка – элемент ActiveX.​​ActiveCell.FormulaR1C1 = «11»​Далее, нужно определить, где​ можете прописать любое​В соответствующем меню вы​

​ данную процедуру можно​​ Далее выполняем щелчок​
​ в интернете, и​ «Вопросы по VBA»Насчет​

​Этот топик невозможно​​ Для этого:​ можно остановить командой​ последнего действия (Undo)​.​(Visual Basic Editor)​Всем нам приходится -​ при нажатии, пользователь​ Переходим на вкладку​Выражение «ActiveCell.FormulaR1C1 = «=R[-3]C+R[-2]C+R[-1]C»»​ будет храниться макрос.​ необходимое действие.​ можете указать адрес​ выполнить с помощью​

​ по кнопке​​ скачиваем его себе​ расположения темы -​ поделить на категории,​В Excel 2003 и​:D
​Остановить запись​​ — во время​Все, что находится между​:​ кому реже, кому​ попадал в определенную​ «Разработчик». Нажимаем кнопку​ заменим на «ActiveCell.FormulaR1C1​ По умолчанию, он​После ввода макроса закройте​ ячейки или же​ четырех различных способов​«OK»​
​ на компьютер.​​ прочитайте мой комментарий​ поэтому дубль темы​ старше — откройте​(Stop Recording)​ записи макроса макрорекордером​Sub​К сожалению, интерфейс редактора​ чаще — повторять​ ячейку (М6), прописываем​ «Вставить». Открывается меню​ = «= R[-4]C+R[-3]C+R[-2]C+R[-1]C»».​
​ будет храниться в​​ окно.​ определить другое место​ на свое усмотрение.​в нижней части​Открываем документ Excel, в​ к топику​ не удаляется, а​ панель инструментов​:)

excelworld.ru

​.​

Обработка нескольких кнопок (CommadButton) одной процедурой

Игорь

Дата: Четверг, 02.01.2014, 23:51 |
Сообщение № 1

Здравствуйте!
Помогите пожалуйста обработать одной процедурой 20 кнопок

Короче, есть форма на которой 28 кнопок, необходимо циклом, перебирая все кнопки поменять свойство Caption/ Например кнопке с Name- CommandButton28.Caption = «Название28», кнопке с Name- CommandButton29.Caption = «Название29» и т.д всем кнопкам. Процедура см. ниже — у меня не работает, Вариантов в голове нет, все форумы пересмотрел:

[vba]

Код

Public Sub VyborGruppy()
For i = 28 To 43
cmb = CommandButton & i
cmb.Caption = «Название» & i
Next i
End Sub

[/vba]

 

Ответить

wild_pig

Дата: Пятница, 03.01.2014, 00:26 |
Сообщение № 2

Группа: Проверенные

Ранг: Обитатель

Сообщений: 516


Репутация:

97

±

Замечаний:
0% ±


2003, 2013

Вечер добрый!
[vba]

Код

For i = 28 To 43
UserForm1.Controls(«CommandButton» & i).Caption = «Название» & i
Next

[/vba]

 

Ответить

Hugo

Дата: Пятница, 03.01.2014, 00:27 |
Сообщение № 3

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3140


Репутация:

670

±

Замечаний:
0% ±


2010, теперь уже с PQ

И где та форма?
Хотя может так подойдёт:
[vba]

Код

Public Sub VyborGruppy()
      Dim btn As Object, t&
      For Each btn In Me.Controls
          If btn.Name Like «CommandButton*» Then
              t = Replace(btn.Name, «CommandButton», «»)
              Select Case t
                  Case 28 To 43: btn.Caption = «Название» & t
              End Select
          End If
      Next
End Sub

[/vba]

Но у wild_pig конечно проще :)


excel@nxt.ru
webmoney: R418926282008 Z422237915069

 

Ответить

Игорь

Дата: Пятница, 03.01.2014, 00:32 |
Сообщение № 4

Большое спасибо, все работает.

 

Ответить

Игорь

Дата: Пятница, 03.01.2014, 15:58 |
Сообщение № 5

Всем спасибо за ответы, Но теперь выплыл новый вопрос.
Как из этих 28 кнопок узнать какая была нажата? Все эти кнопки имеют Name от CommandButtom28 до CommandButtom42 и объединены одной рамкой (Frame). Т.е. в зависимости от нажатой кнопки выводится другой экран со следующим набором для выбора.
Спасибо за оперативное решение.

 

Ответить

……….

Дата: Пятница, 03.01.2014, 16:47 |
Сообщение № 6

Все кнопки имеют
1. Свойство TabIndex.
2. Свойство Tag.
3. Свойство Name.
4. Свойство Caption.
И любое можно использовать для разрешения задачи.

 

Ответить

Игорь

Дата: Пятница, 03.01.2014, 17:12 |
Сообщение № 7

Имеют, но как определить какая кнопка нажата, писать процедуру Click для каждой кнопки — можно, но глупо.
Нужен универсальный обработчик нажатия кнопок из диапазона от commandbutton28 до commandbutton42

 

Ответить

аопавоапв

Дата: Пятница, 03.01.2014, 17:19 |
Сообщение № 8

>> для каждой кнопки — можно, но глупо <<
Пишите класс. :D

 

Ответить

Игорь

Дата: Пятница, 03.01.2014, 17:32 |
Сообщение № 9

Ну согласитесь писать обработку пятидесяти кнопок процедурами:

Private Sub CommandButton43_Click()
strGruppa = CommandButton43.Caption
End Sub

как-то, мягко сказать — неправильно и непрофессионально….

 

Ответить

KuklP

Дата: Пятница, 03.01.2014, 17:41 |
Сообщение № 10

Группа: Проверенные

Ранг: Старожил

Сообщений: 2369


Репутация:

486

±

Замечаний:
0% ±


2003-2010


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728

Сообщение отредактировал KuklPПятница, 03.01.2014, 17:41

 

Ответить

ожлоржлор

Дата: Пятница, 03.01.2014, 17:42 |
Сообщение № 11

Не соглашусь.
Правильный ответ — «Вы думаете, это я все это руками писал?»

 

Ответить

Игорь

Дата: Пятница, 03.01.2014, 17:44 |
Сообщение № 12

Не ужели, Вы не понимаете что я прошу???

 

Ответить

KuklP

Дата: Пятница, 03.01.2014, 17:50 |
Сообщение № 13

Группа: Проверенные

Ранг: Старожил

Сообщений: 2369


Репутация:

486

±

Замечаний:
0% ±


2003-2010

Игорь, во-первых — «неужели» пишется так. Во-вторых, Вы попробовали то, что Вам предложили? В-третьих — знаете, очень неприятно общаться на форуме с анонимами. Не тяжело же зарегистрироваться! Минута дела.


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728

 

Ответить

кеууке

Дата: Пятница, 03.01.2014, 17:52 |
Сообщение № 14

>>Не ужели, Вы не понимаете что я прошу<<
Класс написать. :D

 

Ответить

IgorShuldybin

Дата: Пятница, 03.01.2014, 17:55 |
Сообщение № 15

Группа: Пользователи

Ранг: Прохожий

Сообщений: 4


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Я правильно отреагировал на замечание и зарегистрировался, но что такое «класс написать » — я не понимаю.
С уважением …

 

Ответить

wqeqwer

Дата: Пятница, 03.01.2014, 17:59 |
Сообщение № 16

>>я не понимаю<<
И не парьтесь.
В Excel существует масса способоб быстор прописать 100 процедур
[vba][code]Private Sub CommandButton43_Click()
strGruppa = CommandButton43.Caption
End Sub [/code][/vba]

 

Ответить

KuklP

Дата: Пятница, 03.01.2014, 18:03 |
Сообщение № 17

Группа: Проверенные

Ранг: Старожил

Сообщений: 2369


Репутация:

486

±

Замечаний:
0% ±


2003-2010

Вот. А когда регистрировались, Правила читали? Что там насчет примера пишут?
В честь НГ Выложу пример для кнопок. Разбирайтесь.

К сообщению приложен файл:

Class.xls
(58.5 Kb)


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728

 

Ответить

www

Дата: Пятница, 03.01.2014, 18:09 |
Сообщение № 18

Благодетель! :D
Мог бы и попроще найти.

 

Ответить

Hugo

Дата: Пятница, 03.01.2014, 18:11 |
Сообщение № 19

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3140


Репутация:

670

±

Замечаний:
0% ±


2010, теперь уже с PQ

Простейший — в любую ячейку, начиная с 43-й строки пишем формулу:

Код

=»Private Sub CommandButton» & ROW() & «_Click():strGruppa = CommandButton» & ROW() & «.Caption:End Sub»

и тянем вниз сколько нужно.
Результат копируем в VBE.


excel@nxt.ru
webmoney: R418926282008 Z422237915069

 

Ответить

IgorShuldybin

Дата: Пятница, 03.01.2014, 18:20 |
Сообщение № 20

Группа: Пользователи

Ранг: Прохожий

Сообщений: 4


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

KuklP, Спасибо. Есть ссылка где можно про Class() почитать, не пойму как работает и в какой последовательности. И еще если не затруднит как из приложенной Вами программы получить название нажатой кнопки, убрав в коменты все лишнее.

 

Ответить

Понравилась статья? Поделить с друзьями:
  • Vba excel для андроид
  • Vba excel десятичный логарифм
  • Vba excel день недели по номеру
  • Vba excel денежный формат ячейки
  • Vba excel деление на ноль