Word(ワード)で2007以前のワードアートを使うショートカットキーをマクロ(VBA)で実現 | 滋賀県大津市の小さなパソコン教室「ぱそこんる~む123」

滋賀県大津市の小さなパソコン教室「ぱそこんる~む123」

滋賀県大津市にある小さなパソコン教室「ぱそこんる~む123」を主宰する竹内よしひろが教室のこと、エクセル、ワード、の技、日常を語ります。

こんにちは、滋賀県大津市のちいさなパソコン教室「ぱそこんる~む123」の竹内よしひろです。

早朝、ご近所の受講生の方がお見えになりました。


印刷が出来ないとの事でした。


お伺いすると、USB接続の不具合で、通常使うプリンターが認識されなくなっていて、それが原因で通常使うプリンターが「Microsoft XPS Document Writer」に変わっていたのが原因でした。


USB接続の不具合は接続し直すと再現せず、一時的なものだったようで、通常使うプリンターを変更することで解決しました。



Word(ワード)の機能に飾り文字を作るワードアートという物がありますが、Word2010から、このデザインと機能が大きく変わりました。

しかし、以前デザインを使いたいと言う隠れてニーズがあります。

実は、Word2010以降にもこの以前のワードアートが残っています。


でも、通常のメニューからは実行できず、キーボードからのシュートカットキーから呼び出す必要があります。


この方法については、以前

「Word2010や2013で直接2007以前のワードアートを使う」


に書きました。


しかし、このショートカットキーは複雑で面倒なので、メニューやクイックアクセスツールバーから実行できないかと言うご質問を頂きました。


そこで、登場するのがマクロ(VBA)です。


今回はキーボードからのショートカット操作をVBAで実現する方法をご紹介します。



Word2007以前の「ワードアートギャラリー」のダイヤログボックを表示するには、次の3回のキー操作が操作が必要です。



  (Alt)キー  +   (i) キー を押します。




  (Alt)キー  +   (p)キーを押します。



  (Alt)キー   +    (w)キー を押します。





しかし、大変面倒なので、これを

VBAのSendKeysメソッドを使用して、アクティブなアプリケーションにキー操作(キーコード)を送信する方法です。



(Alt)キー のキーコードは「%」なので、次の様になります。




Sub 旧ワードアート()

    SendKeys "%i", True   '「Alt」 + 「i」を送る
    SendKeys "%p", True
   '「Alt」 + 「i」を送る
    SendKeys "%w"       
  '「Alt」 + 「i」を送る

End Sub



解説



  SendKeys "%i", True

「Alt」 + 「i」を送る

 Trueを指定し、キーストロークが渡るまで処理を中断する



  SendKeys "%p", True

「Alt」 + 「i」を送る

 Trueを指定し、キーストロークが渡るまで処理を中断する



  SendKeys "%w"

「Alt」 + 「i」を送る



Sendkeysはただキー入力を送り出すだけの仕組なので、複雑な処理をさせる場合、受け取るシステム側がSendkeysのキー入力に追いつけなくなって、誤作動することがあります。


そこで、waitオプションに「True」に指定することで、キーストロークが渡るまで処理を中断ます。
(省略時デフォルトで「False」になっています。)


参考

その他のキーコードは次の通りです。

キーコード
Shift
Ctrl
Alt





このマクロを、「クイックアクセスツールバー」や「リボンメニュー」に登録しておくと便利です。