Microsoft Excel:

  Таблицы и VBA. Справочник.
  Вопросы и Ответы. Советы. Примеры.
Меню Заметки | Ввод символов и специальных знаков с помощью диалогового окна


Rambler's Top100


Counter CO.KZ



Если Вам часто приходится вводить различные спецсимволы с помощью клавиатуры, но этот способ, по каким-то причинам, Вам не очень подходит, например, необходим предварительный просмотр символов (до ввода в ячейку), то обладатели MS Excel XP, 2003 могут просто выбрать в меню Вставка команду Символ и пользоваться стандартным диалоговым окном.




Если же Вы работаете с более ранними версиями, то в таком случае можно использовать Таблицу символов © Корпорация Майкрософт (Microsoft Corp.)




Для того, чтобы в дальнейшем, быстро отобразить это диалоговое окно, проделайте следующее (если же процесс доступа к этой программе не важен, то добраться до неё можно также с помощью кнопки Пуск с панели задач Windows) :

1. В меню Сервис выберите пункт Макрос и команду Начать запись...

2. В появившемся диалоговом окне в поле Имя макроса: введите CharMapDialogShow , а в поле со списком Сохранить в: выберите Личная книга макросов. Если планируете отображать таблицу символов с помощью горячих клавиш, то в поле Сочетание клавиш: введите r (на самом деле, Вам доступны и другие клавиши, но r , в отличии от большинства других, не используется Excel'ем) и нажмите кнопку Ok.

3. Кликните кнопку Остановить запись, которая находится на панели инструментов Остановка записи

4. В меню Сервис выберите пункт Макрос и команду Макросы (или нажмите ALT + F8)

5. Выберите только один из двух способов :

- В поле Имя макроса: введите (или вставьте предварительно скопированный текст) PERSONAL.xls!CharMapDialogShow и кликните кнопку Войти.

- В поле со списком Находится в: опять выберите Personal.xls, затем, в списке макросов выделите макрос, который Вы только что создали, и кликните кнопку Войти.

6. Добавьте одну единственную строчку
Shell "CharMap.exe", vbNormalFocus
Теперь, в результате всех действий, Вы получите приблизительно такой макрос
Sub CharMapDialogShow()
'
' CharMapDialogShow Макрос
' Макрос записан 20.03.2011 (Климов П.Ю.)
'
' Сочетание клавиш: Ctrl+r
'

    Shell "CharMap.exe", vbNormalFocus

End Sub
7. В меню Файл (File) выберите команду Сохранить Personal.xls (Save ...) (или просто нажмите клавиши CTRL + S)

8. В меню Файл (File) выберите команду Закрыть и вернуться в Microsoft Excel (Close And Return ...) (или нажмите клавиши ALT + Q или ALT + F4)

9. Выберите только один из трёх способов :

- В меню Вид выберите пункт Панели инструментов и команду Настройка

- В меню Сервис выберите команду Настройка

- Подведите курсор мышки к любой панели инструментов и кликните правой кнопкой мышки и в появившемся контекстном меню выберите команду Настройка

10. Затем, выделите закладку Команды, в списке Категории выберите Макросы, а в соседнем списке Команды выберите Настраиваемая кнопка. После этого, кликните по ней левой кнопкой мышкой и, не отпуская кнопку, перетащите выделенную команду на нужную часть панели, затем отпустите кнопку мышки.

11. После того как кнопка будет создана, подведите к ней курсор и кликните правой кнопкой мышки. Теперь, в поле Имя: введите более осмысленное название, к примеру, Таблица Символов, если захотите убрать весёлую физиономию, то вместо Основного стиля выберите Только текст(всегда), и главное, кликните команду Назначить макрос... и, собственно, назначьте этой кнопке макрос PERSONAL.xls!CharMapDialogShow




Примечание :
  • Если существует вероятность, что кнопка может быть удалена, то в таком случае, имеет смысл создавать её программно, также можно программно и назначить горячим клавишам нужный макрос.
  • Если кнопка вообще не нужна, например, если Вы предпочитаете горячие клавиши (пункт #2), то пункты с 9 по 11 можно пропустить.
  • Не стоит забывать, что диалоговое окно "Таблица символов" будет немодальным, т.е. даже после его отображения, Вы сможете продолжить работу с Excel, причём не закрывая этого окна. К сожалению, именно немодальность позволит повторно запускать программу CharMap.exe, когда работа с предыдущей копией ещё не была завершена (проще говоря, Вы можете последовательно кликнуть кнопку, допустим, три раза и получить три окна с таблицей) Если подобный расклад Вас не устраивает, то используйте нижеопубликованный код.
  • Принцип же работы с таблицей символов довольно подробно описан в справке этой программы, от себя лишь добавлю, что шрифт ячейки должен был такой же, что и шрифт, выбранный Вами в таблице символов, иначе, полученные результаты могут отличаться от ожидаемых (сравните, к примеру, Arial и Wingdings)
  • Private Declare Function FindWindow _
            Lib "user32.dll" Alias "FindWindowA" ( _
            ByVal lpClassName As String, _
            ByVal lpWindowName As String) As Long
    Private Declare Function ShowWindow _
            Lib "user32.dll" ( _
            ByVal hWnd As Long, _
            ByVal nCmdShow As Long) As Long
    Private Declare Function BringWindowToTop _
            Lib "user32.dll" (ByVal hWnd As Long) As Long
    'Private Declare Function SetForegroundWindow _
            Lib "user32.dll" (ByVal hWnd As Long) As Long

    Private Sub CharMapDialogShow()
        ihWnd& = FindWindow("MyDlgClass", vbNullString) '"Таблица символов")
        If ihWnd& = 0 Then
           Shell "CharMap.exe", vbNormalFocus
        Else
           BringWindowToTop ihWnd&: ShowWindow ihWnd&, 9&
        End If
    End Sub


    Вопросы, связанные с этой темой
  • Как ввести спецсимволы с использованием клавиатуры ?
  • Как добавить новые команды и кнопки на панель инструментов ?
  • Как вручную назначить макрос любой стандартной или собственной кнопке, команде на панели инструментов ?
  • Как изменить стандартную панель инструментов?
  • Как отменить изменения в стандартной панели инструментов ?
  • Как добавить новые команды и кнопки на панель инструментов ?
  • Как быстро удалить любой контрол с панели инструментов ?
  • Kак быстро скопировать кнопку на другую панель инструментов ?
  • Как создать разделительную полосу между контролами, расположенными на панели инструментов ?
  • Как создать собственный значок для команды или кнопки на панели инструментов ?

  • FAQ95 : Как в т.ч. и программно "назначить" клавишам свой собственный макрос ?
  • FAQ58 : Как программно добавить свои элементы управления в стандартную панель инструментов ?




  • Автор : Климов Павел Юрьевич
    © 2004-2016 Климов П.Ю. Все права защищены. WebDesign & Error's Klimoff