Когда вы редактируете ячейку в 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, чтобы его имя было btnExit, а заголовок — Exit.

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

Private Sub UserForm_Activate()

TextBox1.Text = ActiveCell.Formula End Sub
Private Sub btnSuper_Click()

Dim intStart As Integer     Dim intLength As Integer     intLength = TextBox1.SelLength     If intLength > 0 Then         intStart = TextBox1.SelStart + 1         ActiveCell.Characters(intStart, intLength).Font.Superscript = True     End If End Sub
Private Sub btnSub_Click()

Dim intStart As Integer     Dim intLength As Integer     intLength = TextBox1.SelLength     If intLength > 0 Then         intStart = TextBox1.SelStart + 1         ActiveCell.Characters(intStart, intLength).Font.Subscript = True     End If End Sub Private Sub btnExit_Click()

Unload UserForm1 End Sub
Private Sub btnNormal_Click()

Dim intStart As Integer     Dim intLength As Integer     intLength = TextBox1.SelLength     If intLength > 0 Then         intStart = TextBox1.SelStart + 1         ActiveCell.Characters(intStart, intLength).Font.Superscript = False         ActiveCell.Characters(intStart, intLength).Font.Subscript = False     End If End Sub

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

Sub DoForm()

UserForm1.Show End Sub

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

Затем вы можете выделить текст в пользовательской форме и использовать кнопки (Надстрочный, Подстрочный и Обычный) для изменения форматирования фактического содержимого ячейки. Макрос влияет на содержимое ячейки, а не на содержимое пользовательской формы. Таким образом, полезно иметь возможность одновременно видеть на экране и выбранную ячейку, и форму пользователя.

_Примечание: _

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

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (1945 г.) применим к Microsoft Excel 97, 2000, 2002 и 2003.