「word vba オブジェクトと選択の表示」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
[オブジェクトと選択の表示]作業ウィンドウを、表示するWordマクロ・VBA(Visual Basic for Applications)のコードを探している方による検索です。
マクロ記録機能の限界
Microsoft Officeでマクロを作りたいときに、どのオブジェクトを操作すればいいのかがわからない場合、まずはマクロ記録してみるのが解決方法の一つです。
しかし、[オブジェクトと選択の表示]作業ウィンドウを表示するコードは、マクロ記録しても作られません。
マクロ記録でコードが作られないときに、どうやってマクロを作るためのヒントを得るのかは後述するとして、まずは[オブジェクトと選択の表示]作業ウィンドウを表示したり非表示にしたりするマクロをご紹介します。
オブジェクトの選択と表示作業ウィンドウの表示を切り替えるサンプルマクロ
以下のようなシンプルなマクロで、[オブジェクトの選択と表示]作業ウィンドウの表示を切り替えることができます。
With Application.TaskPanes(wdTaskPaneSelection)
.Visible = Not .Visible
End With
[オブジェクトの選択と表示]作業ウィンドウが表示されていなければ表示し、表示されていれば非表示にします。
ApplicationオブジェクトのTaskPanesプロパティの引数に、定数・wdTaskPaneSelectionを指定すると、[オブジェクトの選択と表示]作業ウィンドウのTaskPaneオブジェクトを取得できます。
そのVisibleプロパティを、Not演算子で切り替えているのが上記のマクロです。
どうやってこのコードをみつけたのか
どうやってこのコードを見つけたのかというと、少しの想像力と、VBE(Visual Basic Editor)に付属しているオブジェクトブラウザーを使ってです。
「pane」という単語の含まれるオブジェクトがあるのではないかと考え、オブジェクトブラウザーで「pane」を検索しました。
ここで「pane」という単語を想像できるかどうかは、パソコンを意識化して使ってきたこととVBAを書いた経験の量と、経験をどれくらい構造化できているかどうかにかかってくるでしょう。
で、「pane」を検索すると、TaskPaneというオブジェクトと、TaskPanesというコレクションオブジェクトが見つかります。
TaskPanesコレクションオブジェクトのメンバーを確認してみると、ItemメソッドにWdTaskPanes列挙体に定義された定数が指定できるようになっていて、それによってTaskPaneオブジェクトを取得できることがわかります。
WdTaskPanes列挙体にどんな定数が指定できるかを確認すると、wdTaskPaneSelectionという定数が見つかります。
試しに、
「Application.TaskPanes(wdTaskPaneSelection).Visible = True」
というコードを試しに実行してみると、[オブジェクトの選択と表示]作業ウィンドウを確かに表示できます。
このような工程を経て、先のマクロを作りました。
Word 2007や互換モードファイルで実行した場合
Wordに[オブジェクトの選択と表示]作業ウィンドウが実装されたのは、2010からですから、Word 2007で上記のマクロを実行しようとしたときには「変数が定義されていません」というエラーが表示されて実行することができません。
Word 2010・2013でも、互換モードのときには、[オブジェクトの選択と表示]作業ウィンドウを表示できないことをご紹介しました。上記のマクロは互換モードのときにも実行することはできます。実行すると[オブジェクトの選択と表示]作業ウィンドウ自体は表示できます。しかし図形などが配置されていても[オブジェクトの選択と表示]作業ウィンドウには何も表示されません。
Home » ワードマクロ・Word VBAの使い方 » オブジェクトの選択と表示作業ウィンドウの表示を切り替えるWordマクロ