最近、このサイト・インストラクターのネタ帳では、PowerPointのマクロを時々ご紹介しています。
それらのマクロをショートカットキーで実行する方法を、Microsoft MVB for Office Systemsのきぬあさ(@kinuasa)さんが、「[Mayhem]PowerPointマクロにショートカットキーを割り当てる。」という記事で紹介していらっしゃいます。
確かに、ショートカットキーなどから利用できるほうが便利です。
確かに、そうなのですが、実は大きな問題もあります。
文字サイズを小さくするマクロ、大きくするマクロ、行間を広くするマクロをご紹介してきて、このあと勿論、行間を狭くするマクロもご紹介します。
その他にもこういったちょっとしたマクロをご紹介していくことになるだろうと考えています。
それらにすべてショートカットキーを割り当てていくことも可能ですが、その場合、それらのショートカットキーをすべて覚えておかなければならない、という大問題が出てきます。
このような問題の解決策の一つとして、マクロを簡単に実行できるようなフォームを用意するという方法を考えてみました。
下図のようなフォームを表示させておいて、実行したいマクロを選択しておいて、そこでショートカットキーを利用するという操作です。
今回ご紹介するマクロの中では、[F8]キーをショートカットキーに割り当てて、「シェイプの文字を1ポイント大きくする」が選択されているときに[F8]キーを押すと、「シェイプの文字を1ポイント大きくする」マクロが実行され、「シェイプの文字を1ポイント小さくする」が選択されているときに[F8]キーを押すと、「シェイプの文字を1ポイント小さくする」マクロが実行されます。
サンプルファイルには以下のような複数のプロシージャが作成してあります。
Private Sub lstMacroList_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
'F8キーが押されると選択されていたマクロを実行する
If IsNull(lstMacroList.Value) Then Exit Sub
If KeyCode = vbKeyF8 Then Application.Run lstMacroList.Value
まずフォーム上のリストボックス「lstMacroList」に、上記のイベントプロシージャを作成してあります。
リストが選択されていないときは、このプロシージャを終了して、
If IsNull(lstMacroList.Value) Then Exit Sub
押されたのが[F8]キーならば
If KeyCode = vbKeyF8 Then Application.Run lstMacroList.Value
選択されているリストのマクロを実行しています。
リストボックスへのマクロ名の登録は以下のプロシージャで行っています。
Private Sub UserForm_Initialize()
With lstMacroList
.AddItem "シェイプの文字を1ポイント大きくする"
.AddItem "シェイプの文字を1ポイント小さくする"
End With
標準モジュールのほうには、既にご紹介している「シェイプの文字を1ポイント大きくする」マクロと、「シェイプの文字を1ポイント小さくする」マクロのコードを用意し、それとは別に以下のマクロを作成しておきました。
Sub マクロランチャーの表示()
frmMacroLauncher.Show
End Sub実行すると、「frmMacroLauncher」フォームが表示されるだけのマクロです。
使い方としては、「マクロランチャーの表示」マクロを実行して、ダイアログを表示させて、フォントサイズを変更したいプレースホルダなどを選択しておいて[F8]キーを押すというイメージです。
- Newer:Word2003でコメントを一括削除する
- Older:プロシージャ一覧を作成するマクロ
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » PowerPointでマクロを実行するダイアログ