Создание кнопок надстрочного и подстрочного индекса

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

Однако Excel не позволяет вам создавать собственные инструменты форматирования и иметь их доступно при редактировании ячейки. Это связано с тем, что Excel “деактивирует” все пользовательские макросы, пока вы выполняете редактирование. Вам остается отформатировать содержимое ячейки с помощью Format | Ячейки, или нажав Ctrl + 1 , чтобы напрямую отобразить диалоговое окно «Форматирование ячеек».

Существует хитрый способ, который вы можете использовать для создания собственных инструментов форматирования, тем не мение. Это предполагает использование пользовательских форм и VBA для создания собственного «диалогового окна» форматирования. (Я знаю – на самом деле это не диалоговое окно, а форма.) Создать собственную пользовательскую форму не так уж и сложно, но это не для слабонервных, когда дело касается макросов. Выполните следующие действия, чтобы создать свою собственную форму:

  1. Нажмите Ctrl + F11 , чтобы открыть редактор VBA.
  2. В редакторе VBA выберите User Form из меню Insert. Отобразится новая пустая форма пользователя вместе с панелью инструментов формы.
  3. Используя элементы управления на панели инструментов формы, добавьте три элемента управления CommandButton в верхней части формы.
  4. Измените свойства левого элемента управления CommandButton так, чтобы его Имя было btnSuper, а его Заголовок – Надстрочный.
  5. Измените свойства для центрального элемента управления CommandButton, чтобы его Имя было btnSub, а его Заголовок – Подстрочный.
  6. Измените свойства правого элемента управления CommandButton, чтобы его имя было btnNormal, а заголовок – Normal.
  7. Сразу под тремя кнопками добавьте элемент управления TextBox. Вам не нужно изменять какие-либо свойства этого элемента управления.
  8. Сразу под элементом управления TextBox добавьте четвертый элемент управления CommandButton.
  9. Измените свойства для этого последнего CommandButton. control, поэтому его имя – btnExit, а заголовок – Exit.

Вот и все; вы создали свою пользовательскую форму и готовы связать код макроса с только что размещенными элементами управления. Выбрав пользовательскую форму, нажмите F7 , чтобы отобразить окно кода для формы. Окно может содержать строку или две автоматически сгенерированного кода. Замените это следующим кодом:

Private Sub UserForm_Activate () TextBox1.Text = ActiveCell.FormulaEnd Sub Private Sub btnSuper_Click () Dim intStart As Integer Dim intLength As Целое число intLength = TextBox1.SelLength Если intLength> 0 Тогда intStart = TextBox1.SelStart + 1 ActiveCell.Characters (intStart, intLength) .Font.Superscript = True End IfEnd Sub Private Sub btnSub_Click () Dim intStart как целое число Dim intLength как целое число intLength = TextBox1. SelLength, если intLength> 0, то intStart = TextBox1.SelStart + 1 ActiveCell.Characters (intStart, intLength) .Font.Subscript = True End IfEnd SubPrivate Sub btnExit_Click () Выгрузить UserForm1End Sub Private SubClick ( ) Dim intStart As Integer Dim intLength As Integer intLength = TextBox1.SelLength Если intLength> 0 Тогда intStart = TextBox1.SelStart + 1 ActiveCell.Characters (intStart, intLength) .Font.Superscript = False ActiveCell.Characters (intStart)., IntStart). .Subscript = False End IfEnd Sub

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

Sub DoForm () UserForm1.ShowEnd Sub

Теперь вы можете закрыть VBA Окно редактора. Чтобы использовать макрос, выберите ячейку, которую вы хотите отредактировать, а затем запустите макрос DoForm. Excel отобразит вашу пользовательскую форму, содержащую текст в выбранной ячейке. Затем вы можете выделить текст в пользовательской форме и использовать кнопки (надстрочный, подстрочный и обычный) для изменения форматирования фактического содержимого ячейки. Макрос влияет на содержимое ячейки, а не на содержимое пользовательской формы. Таким образом, полезно иметь возможность одновременно видеть на экране и выбранную ячейку, и форму пользователя.

Источник: frestage.ru

Бытовой вопрос