Изменить название кнопки vba excel

 

spbhope

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

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

Здравствуйте, как переименовать Command Button?

 

spbhope

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

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

То есть как переименовать кнопку, которой присвоен макрос?

 

GIG_ant

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

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

Правой клавишей на кнопке, Объект CommandButton — Edit

 

GIG_ant

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

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

Или Правой клавишей на кнопке, Исходный текст, и в инспекторе свойств меняем Сaption на нужное.

 

spbhope

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

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

{quote}{login=GIG_ant}{date=19.04.2011 01:19}{thema=}{post}Правой клавишей на кнопке, Объект CommandButton — Edit{/post}{/quote}  

  Не подходит. У меня 2003 excel, не знаю — может в 2007 это есть.

 

spbhope

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

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

{quote}{login=GIG_ant}{date=19.04.2011 01:21}{thema=}{post}Или Правой клавишей на кнопке, Исходный текст, и в инспекторе свойств меняем Сaption на нужное.{/post}{/quote}  

  Правой клавишей надо щелкнуть в редакторе VB или на самом листе?

 

GIG_ant

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

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

выложите файл с вашей кнопкой, я вам фото пришлю )

 

spbhope

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

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

{quote}{login=GIG_ant}{date=19.04.2011 01:32}{thema=}{post}выложите файл с вашей кнопкой, я вам фото пришлю ){/post}{/quote}  

  да, было бы круто. ну вот пример прикрепил)

 

GIG_ant

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

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

жмете правую клавишу мыши  на вашей кнопке, выпадает меню там опция «Изменить текст» см файл

 

spbhope

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

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

все бы хорошо, но у меня офис 2003.

 

Юрий М

Модератор

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

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

{quote}{login=spbhope}{date=19.04.2011 03:10}{thema=}{post}все бы хорошо, но у меня офис 2003.{/post}{/quote}  
И что? У меня тоже 2003. Всё меняется.

 

spbhope

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

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

Да, согласен — я просто создал заново кнопку и все получилось. У меня проблемы с кнопками в старом файле. Удалил из него все данные, оставил только кнопку.    

  Попробуйте с ней хоть что-нибудь сделать. файл скинул.

 

Hugo

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

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

 

Юрий М

Модератор

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

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

{quote}{login=spbhope}{date=19.04.2011 03:54}{thema=Re: Re: }{post}Попробуйте с ней хоть что-нибудь сделать{/post}{/quote}  
Попробовал — «что-нибудь» делается :-)  
P.S. У Вас в двух файлах разные кнопки: одна из панели инструментов «Формы», а другая из «Элементы управления». Для второй необходимо включить «Режим конструктора».

 

spbhope

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

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

{quote}{login=Юрий М}{date=19.04.2011 04:22}{thema=Re: Re: Re: }{post}{quote}{login=spbhope}{date=19.04.2011 03:54}{thema=Re: Re: }{post}Попробуйте с ней хоть что-нибудь сделать{/post}{/quote}  
Попробовал — «что-нибудь» делается :-)  
P.S. У Вас в двух файлах разные кнопки: одна из панели инструментов «Формы», а другая из «Элементы управления». Для второй необходимо включить «Режим конструктора».{/post}{/quote}  

    А как переименовать кнопку из панели инструментов «формы»?

 

Юрий М

Модератор

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

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

Включить макрорекордер, переименовать, выключить рекордер и посмотреть код :-)

 

Юрий М

Модератор

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

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

Макрорекордер запишет с выделением объекта. Если нужно без выделения, то пробуем такой код:  
Sheets(«Лист1»).Shapes(«Button 1»).DrawingObject.Characters.Text = «Суперкнопка»

 

Guest

Гость

#18

05.05.2011 14:40:24

Пока не совсем понимаю, но все равно спасибо.    
Буду разбираться

Reference

I am trying to change the name property of ActiveX command buttons with VBA with the following code:

Set shp = ActiveSheet.Shapes(Selection.Name)

With shp.OLEFormat.Object
    .Object.Caption = "Node" & Str(NumNodes)
    .Name = "Node" & Str(NumNodes)
End With

I am able to change the caption name, but the name property cannot be changed with the above code. I need to find a way to concatenate a string with an int (NumNodes) for the name property.

UPDATE

This is the full subroutine which copies a command button and pastes it to a specific cell location. Properties, such as the name and caption are also changed upon button creation.

Public Sub Node_Button_Duplication()
'
'Comments: Copies and pastes Node 1's button to the appropriate column

Dim shp As Shape

' Copy Node 1 button and paste in appropriate location

    ActiveSheet.Shapes("CommandButton1").Select
    Selection.Copy
    Cells(5, 10 + 7 * (NumNodes - 1) - 1).Select
    ActiveSheet.Paste
    Selection.ShapeRange.IncrementLeft 47.25
    Selection.ShapeRange.IncrementTop -13.5


    Set shp = ActiveSheet.Shapes(Selection.Name)

    With shp.OLEFormat.Object
        .Object.Caption = "Node" & Str(NumNodes)
        .Name = "Node" & Str(NumNodes)
    End With

End Sub

Community's user avatar

asked May 17, 2012 at 18:44

Ehudz's user avatar

Is this what you are trying?

Set shp = ActiveSheet.Shapes(Selection.Name)
shp.Name = "Node" & Str(NumNodes)

With shp.OLEFormat.Object
    .Object.Caption = "Node" & Str(NumNodes)
End With

FOLLOWUP

Just tried this and it works…

Public Sub Node_Button_Duication()
    Dim shp As Shape
    Dim NumNodes As Long

    ActiveSheet.Shapes("CommandButton1").Select
    Selection.Copy
    Cells(5, 10 + 7 * (NumNodes - 1) - 1).Select
    ActiveSheet.Paste
    Selection.ShapeRange.IncrementLeft 47.25
    Selection.ShapeRange.IncrementTop -13.5

    NumNodes = 5

    Set shp = ActiveSheet.Shapes(Selection.Name)
    shp.Name = "Node" & Str(NumNodes)

    With shp.OLEFormat.Object
        .Object.Caption = "Node" & Str(NumNodes)
    End With
End Sub

MORE FOLLOWUP

Try this

    Set shp = ActiveSheet.Shapes(Selection.Name)

    With shp.OLEFormat.Object
        .Object.Caption = "Node" & Str(NumNodes)
        .Name = "Node" & NumNodes
    End With

Notice, I changed Str(NumNodes) to NumNodes?

The ActiveX Control Names cannot have spaces :)

Try now.

SNAPSHOT

enter image description here

answered May 17, 2012 at 19:04

Siddharth Rout's user avatar

Siddharth RoutSiddharth Rout

146k17 gold badges206 silver badges250 bronze badges

4

Изменение названия кнопки

pechkin

Дата: Понедельник, 08.09.2014, 12:22 |
Сообщение № 1

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

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

Сообщений: 323


Репутация:

48

±

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


2003

Здравствуйте! Вопрос вот в чем. Рекордером записал Макрос, кое-что убрал и что-то добавил.В результате получилось так[vba]

Код

Sub Макрос1()
ActiveSheet.Shapes(«Button 1»).Select
If Selection.Characters.Text = «ДА» Then
Selection.Characters.Text = «НЕТ»
With Selection.Font
.ColorIndex = 5
End With
Else: Selection.Characters.Text = «ДА»
With Selection.Font
.FontStyle = «полужирный»
.ColorIndex = 3
End With
End If
‘Range(«F20»).Select
End Sub

[/vba]
Подскажите пожалуйста- возможно ли сделать тоже самое, но без выделения кнопки (обратиться напрямую или еще как нибудь) Недостаток здесь в том, что после выполнения этого Макроса кнопка остается выделенной. Как снять выделение не выделяя,например,любую ячейку?
Спасибо!

Сообщение отредактировал pechkinПонедельник, 08.09.2014, 12:25

 

Ответить

RAN

Дата: Понедельник, 08.09.2014, 12:39 |
Сообщение № 2

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

Ранг: Экселист

Сообщений: 5645

[vba]

Код

Sub Enabled_Click()
     If ActiveSheet.DrawingObjects(«Блок»).Characters.Text = «БЛОКИРОВКА ОТКЛЮЧЕНА» Then
         ActiveSheet.DrawingObjects(«Блок»).Characters.Text = «БЛОКИРОВКА ВКЛЮЧЕНА»
     Else
         ActiveSheet.DrawingObjects(«Блок»).Characters.Text = «БЛОКИРОВКА ОТКЛЮЧЕНА»
     End If
End Sub

[/vba]


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

 

Ответить

pechkin

Дата: Понедельник, 08.09.2014, 13:45 |
Сообщение № 3

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

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

Сообщений: 323


Репутация:

48

±

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


2003

Спасибо! Все работает!

 

Ответить

Alex_ST

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

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

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

Сообщений: 3176


Репутация:

604

±

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


2003

Андрей, не узнаю тебя. Ты не заболел?
Без приложенного файла-примера не только советы даёшь, но и какие-то названия сам объектам даёшь, и их текст меняешь…
И самое интересное, что топик-стартеру твой пример подходит! Ты что, в Вольфы Мессинги перекрасился и теперь всё телепатически отгадывать будешь?
Во юзверги-то, не соблюдающие правила форума порадуются!
:)



С уважением,
Алексей
MS Excel 2003 — the best!!!

 

Ответить

RAN

Дата: Понедельник, 08.09.2014, 20:59 |
Сообщение № 5

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

Ранг: Экселист

Сообщений: 5645

Леш, а зачем пример? По коду все ясно. Что отгадывать то?
А названия — так это я кусок из рабочего файла выдрал. Вот переименовывать лениво было. :p


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

 

Ответить

Alex_ST

Дата: Вторник, 09.09.2014, 16:42 |
Сообщение № 6

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

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

Сообщений: 3176


Репутация:

604

±

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


2003

Ну тогда уж ради примера можно и сильно сократить твою блокировку[vba]

Код

Sub Locked_UnLocked()
    With ActiveSheet.DrawingObjects(«Блок»).Characters
       .Text = «БЛОКИРОВКА» & IIf(.Text Like «* ОТ*», » В», » ОТ») & «КЛЮЧЕНА»
    End With
End Sub

[/vba] :)



С уважением,
Алексей
MS Excel 2003 — the best!!!

 

Ответить

pechkin

Дата: Среда, 10.09.2014, 17:09 |
Сообщение № 7

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

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

Сообщений: 323


Репутация:

48

±

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


2003

Здравствуйте. Прошу прощения, если что не так. Вот пример — мне подходит. Спасибо!

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

7887135.xls
(22.5 Kb)

 

Ответить

Alex_ST

Дата: Среда, 10.09.2014, 21:34 |
Сообщение № 8

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

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

Сообщений: 3176


Репутация:

604

±

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


2003

А так всё-таки покомпактнее будет:[vba]

Код

Sub Макрос2()
     With ActiveSheet.DrawingObjects(«Button 1»)
         .Characters.Text = «БЛОКИРОВКА» & IIf(.Characters.Text Like «* ОТ*», » В», » ОТ») & «КЛЮЧЕНА»
         .Font.ColorIndex = IIf(.Font.ColorIndex = 5, 3, 5)
     End With
End Sub

[/vba] :)



С уважением,
Алексей
MS Excel 2003 — the best!!!

 

Ответить

RAN

Дата: Среда, 10.09.2014, 21:46 |
Сообщение № 9

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

Ранг: Экселист

Сообщений: 5645

Alex_ST,
Хорошо и хорошо — это когда хорошо и понятно.
Хорошо и не хорошо — это когда хорошо и не понятно, но компактнее. :p


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

Сообщение отредактировал RANСреда, 10.09.2014, 21:47

 

Ответить

5 / 5 / 1

Регистрация: 11.02.2013

Сообщений: 238

1

06.06.2013, 08:08. Показов 5884. Ответов 4


Студворк — интернет-сервис помощи студентам

Здравствуйте, уважаемые форумчане. Возник следующий вопрос: создал записью макрос по созданию кнопки на exel-листе, но почему-то в сгенерированном коде никак не отобразлся процесс переименования кнопки. Как в коде это можно сделать?



1



Alex77755

11482 / 3773 / 677

Регистрация: 13.02.2009

Сообщений: 11,145

06.06.2013, 11:29

2

А из форм кнопка не подходит?

Visual Basic
1
2
3
4
  With ActiveSheet.Buttons.Add(391.5, 121.5, 109.5, 30.75)
    .Name = "Новая"
    .Characters.Text = "Название"
  End With



0



5 / 5 / 1

Регистрация: 11.02.2013

Сообщений: 238

06.06.2013, 13:29

 [ТС]

3

Я просто с ними никогда не имел дело. Но вроде должна подойти.
Воткнул ее в макрос, запустил, но она почему-то болтается в режиме настроек (то етсь, выделена и ее можно перемещать, но не нажимается). Как подправить? Команду действия писать перед End With?



0



5 / 5 / 1

Регистрация: 11.02.2013

Сообщений: 238

07.06.2013, 16:37

 [ТС]

4

Еще раз подниму тему. Как в коде переименовать кнопку?



0



Hugo121

6875 / 2807 / 533

Регистрация: 19.10.2012

Сообщений: 8,562

07.06.2013, 16:47

5

Visual Basic
1
2
3
4
5
6
7
8
9
10
Sub создать()
    With ActiveSheet.Buttons.Add(391.5, 121.5, 109.5, 30.75)
        .Name = "Новая"
        .Characters.Text = "Название"
    End With
End Sub
 
Sub переименовать()
    ActiveSheet.Buttons("Новая").Name = "Старая"
End Sub



1



Я чувствую себя таким тупицей, но не могу понять, как и где это сделать.

Я вставил командную кнопку в лист, и она пришла с именем по умолчанию «Кнопка 1». Я не могу понять, куда в интерфейсе перейти, чтобы изменить имя кнопки. (Я могу изменить текст метки кнопки, на самом деле меня интересует переименование самой кнопки).

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

Помогите! (К сведению: с использованием Excel 2010).

Вы можете изменить имя кнопки (как и любого другого объекта / диаграммы), выбрав и введя текст в маленькое поле «Имя» слева от строки формул (подтвердите его, нажав Enter):

Возможно, вы пытаетесь присвоить кнопке то же имя, что и одна из ваших процедур или ссылка на ячейку, или, возможно, что-то еще, что уже существует; в противном случае вы сможете щелкнуть правой кнопкой мыши по кнопке, чтобы выбрать, а затем изменить имя в поле имени слева от строки формул.

Выберите режим «Дизайн», щелкните правой кнопкой мыши свойства «Алфавитный» и измените название подписи на желаемое имя.

Вы также можете щелкнуть правой кнопкой мыши командную кнопку, выбрать «объект командной кнопки», а затем выбрать «редактировать»

Пару лет удалили, но нажмите на узел дизайна, затем нажмите на свою кнопку, и вы получите столбцы, щелкните правой кнопкой мыши и щелкните свойства, измените имя в «заголовке» на то, которое вы хотите, чтобы оно было, нажмите «X» , затем снова нажмите на режим разработки.

Like this post? Please share to your friends:
  • Изменить масштаб таблицы в word
  • Изменить масштаб excel 2016
  • Изменить массово формулу в excel
  • Изменить количество символов в ячейке excel
  • Изменить кодировку онлайн excel