VBA для чайников
Шрифт:
Удалить. Щелчок на кнопках Перемещение позволяет сдвинуть изображение в сторону, где еще нет закрашенных ячеек.
Теперь на кнопке есть изображение и можно удалить с нее текст.
7. Снова откройте контекстное меню (см. п. 2).
8. Установите флажок Основной стиль.
Рис. 4.7, При открытом окне Настройка щелчок правой кнопкой в панели инструментов открывает показанное здесь контекстное меню
Лис. 4.8. Используйте предлагаемый Office редактор кнопок для создания своих собственных изображений на кнопках
Как
В Office можно удалить ненужную кнопку, перетащив ее за пределы панелей инструментов. Хитрость здесь заключается в том, что при перетаскивании нужно нажать и удерживать клавиш Alt. Когда рядом с указателем мыши возникнет значок X, отпустите кнопку мыши, и удаление произойдет.
Чувствую я, что ваше VBA-приложение как раз и не позволяет просто перетаскивать нужное при настройке кнопок. Необходимость использовать VBA при создании кнопок в самом начале знакомства с VBA, наверное, выглядит устрашающе. Но на самом деле такой способ создания кнопок не слишком сложен. Главное - выяснить, какими объектами в вашем VBA приложении представляются кнопки и панели инструментов и какие свойства и методы нужно использовать для изменений.
В Office объекты кнопок называются CormandBarButtons, а принадлежат они коллекции CommandBarControls. Объект CommandBar (панель инструментов, содержащая коллекцию CcmmandBarControls) размещается в коллекции ComrnandBars, которое может принадлежать объекту Application или объекту Document.
А в Visio, например, отдельная кнопка представляется объектом ToolbarItem. Однако, чтобы воспользоваться конкретным экземпляром объекта ToolbarItem, необходимо получить доступ к той коллекции ToolbarItems, которой этот экземпляр объекта принадлежит.
Сама же коллекция ToolbarItems принадлежит коллекции Toolbars, в свою очередь принадлежащей коллекции ToolbarSet, а уж последняя принадлежит конкретному экземпляру объекта UlObject (объект пользовательского интерфейса). Немного позже в этой же главе с помощью несложного программного кода я покажу, как все это реализуется практически.
Если все эти сложности вас пугают, успокойтесь: вам не придется создавать программный код для своих кнопок с чистого листа. Поищите в справочной системе своего VBA-приложения разделы, посвященные настройке панелей инструментов, и вы наверняка обнаружите там пример, который после несложных модификаций можно использовать в вашем конкретном случае.
Комбинации клавиш в Word, Excel и Access
Если вы хоть немного умеете печатать, то часто используемые вами команды просто умоляют вас назначить им комбинации клавиш. В большинстве приложений, даже в тех, которые ориентированы исключительно на работу с изображениями, нажать клавиши часто быстрее, чем перемещать туда-сюда мышь и щелкать ее кнопками. Единственный недостаток комбинаций клавиш - необходимость запоминать их.
В любом случае некоторые VBA-приложения - в том числе Word, Excel и Access - дают прямой доступ к клавиатуре, позволяя назначить комбинации клавиш VBA-программам. Если вам предлагают такой способ управления, используйте его, не сомневаясь.
Назначение комбинаций
Если уж зашла речь о настройке клавиатуры, то изо всех VBA-приложений самым гибким и простым в этом отношении является Word. Например, чтобы назначить в Word программе с именем Double Current Font Size комбинацию клавиш Alt+Shift+. (т.е. Alt + Shift + клавиша с точкой), действуйте следующим образом.
1. Откройте диалоговое окно Настройка, для чего либо выберите
Сервис= Настройка из меню, либо щелчком правой кнопкой мыши в любой из панелей инструментов откройте контекстное меню и затем выберите пункт Настройка в нем.
2. Щелкните на кнопке Клавиатура в нижней части вкладки Параметры.
Появится диалоговое окно Настройка клавиатуры (рис. 4.9).
3. В списке Категории выберите Макросы.
4. Найдите и выберите свою программу в появившемся справа списке Макросы.
Если программе уже была назначена комбинация клавиш, она будет в поле Текущие сочетания клавиш.
5. Нажмите комбинацию клавиш, которую вы хотите назначить своей программе.
Если предложенная вами комбинация уже используется, диалоговое окно сообщит, какую из команд она вызывает, и вы сможете либо оставить в силе имеющееся назначение, либо заменить его новым.
Рис. 4.9. С помощью такого диалогового окна вы можете назначить своим VBA-программам комбинации клавиш в Word
6. Щелкните сначала на кнопке Назначить, а затем на кнопке Закрыть, чтобы выйти из диалогового окна.
С этого момента назначенная вами комбинация клавиш будет готова к действию.
Разместите свои программы в контекстных меню
Приложив совсем немного усилий, вы сможете поселить свою скромную VBA-программу в фешенебельных апартаментах любого контекстного (т.е. вызываемого щелчком правой кнопки мыши) меню.
В Office контекстные меню настраиваются в диалоговом окне Настройка. Сначала нужно сделать видимой панель инструментов Контекстные меню. Откройте диалоговое окно Настройка, выбрав
Сервис=Настройка, и в нем перейдите на вкладку Панели инструментов (если она еще не открыта), щелкнув на соответствующем ярлыке в верхней части диалогового окна. Пролистайте вниз список панелей инструментов, найдите в нем пункт Контекстные меню и щелкните в маленьком квадратике около него.
Панель инструментов Контекстные меню станет видимой. С помощью этой панели инструментов вы сможете получить доступ к любому контекстному меню, чтобы настроить его. Открыв таким образом нужное вам контекстное меню, используйте обсуждавшиеся в начале этого раздела приемы перетаскивания макросов из вкладки Команды диалогового окна Настройка.
Например, Visio позволяет поместить макрос в контекстное меню любой из форм. Выделив форму, выберите Window=Show ShapeSheet. В окне ShapeSheet щелкните в ячейке Action. (Если нужно, вставьте перед этим раздел Actions, выбрав Insert=Section и отметив Actions.)
Затем выберите EditoAction. Вы получите возможность впечатать текст и определить другие свойства пункта меню и назначить ему программу для выполнения. По окончании редактирования это контекстное меню, вызываемое щелчком правой кнопки мыши на данной форме, уже будет включать и пункт для вашей VBA- программы.