Создание кнопок верхнего и нижнего индекса (Microsoft Excel)
Когда вы редактируете ячейку в Excel, у вас есть доступ к нескольким кнопкам панели инструментов форматирования, которые могут немного упростить форматирование ячейки. Например, вы можете использовать инструменты Полужирный или Курсив, чтобы изменить эти два атрибута для любого текста, выбранного в ячейке. В какой-то момент вы можете захотеть создать другие кнопки панели инструментов для обработки другого форматирования, такого как применение надстрочного или подстрочного индекса.
Однако Excel не позволяет создавать собственные инструменты форматирования и делать их доступными при редактировании ячейки. Это связано с тем, что Excel «деактивирует» все пользовательские макросы, пока вы выполняете редактирование.
Вам остается форматировать содержимое ячейки с помощью Format | Ячейки, или нажав Ctrl + 1, чтобы напрямую открыть диалоговое окно Формат ячеек.
Однако есть хитрый способ создания собственных инструментов форматирования. Это предполагает использование пользовательских форм и VBA для создания собственного «диалогового окна» форматирования. (Я знаю — на самом деле это не диалоговое окно, а форма.) Создать собственную пользовательскую форму не так уж и сложно, но это не для слабонервных, когда дело касается макросов. Чтобы создать свою форму, выполните следующие действия:
-
Нажмите Ctrl + F11, чтобы открыть редактор VBA.
-
В редакторе VBA выберите User Form из меню Insert. Отобразится новая пустая форма пользователя вместе с панелью инструментов формы.
-
Используя элементы управления на панели инструментов формы, добавьте три элемента управления CommandButton в верхней части формы.
-
Измените свойства левого элемента управления CommandButton, чтобы его имя было btnSuper, а заголовок — надстрочный.
-
Измените свойства центрального элемента управления CommandButton, чтобы его имя было btnSub, а заголовок — подстрочный.
-
Измените свойства правого элемента управления CommandButton, чтобы его имя было btnNormal, а заголовок — Normal.
-
Сразу под тремя кнопками добавьте элемент управления TextBox. Вам не нужно изменять какие-либо свойства этого элемента управления.
-
Сразу под элементом управления TextBox добавьте четвертый элемент управления CommandButton.
-
Измените свойства этого последнего элемента управления 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.