早朝、ご近所の受講生の方がお見えになりました。
印刷が出来ないとの事でした。
お伺いすると、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」を送る
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」になっています。)
参考
その他のキーコードは次の通りです。
|
このマクロを、「クイックアクセスツールバー」や「リボンメニュー」に登録しておくと便利です。