図形を選択するってどうやるの?選ぶだけなのだけど・・・Oh No!!!!
Help見てると選択するだけでも何だか小難しい感じはあるよね?!
図形を選択することができないと、好きなように自動化することができず・・・いろいろ困りますよね?Helpみても素人にはちょっと難しい、ということで図形を選択する方法をご紹介します。
図形名を指定して選択する方法
構文
Visio VBAで図形を選択する構文はこちら。
Select(図形,replaceFlag)
ページ内の全ての図形を選択するならこちらも便利。
SelectAll
replaceFlagについて
構文の中にあるreplaceFlagですがこんな感じです。
定数 | 値 | オプション |
visDeselect | 1 | 現在の選択から削除する |
visSelect | 2 | 現在の選択を置き換える |
visSubSelect | 3 | グループ内のサブ選択 |
visSelectAll | 4 | すべて選択 |
visDeselectAll | 256 | visDeselectAll |
選択解除・・・もできるのか
組み合わせて使うこともできるよ
SelectコマンドのSample
こちらのページにある図形を選択するサンプルです。
何かしら図形を描いておいてください。
replaceFlagをいろいろ変えたサンプルを用意したよ
こんな感じで図形を描いて選択しておきます。
選択する(visSelectを使って)
“Square2″が選択された状態で、visSelectフラグを付けて”Square3″を選んでみます。
コード
Sub test1()
'Square2の図形を選択
ActiveWindow.Select ActivePage.Shapes.Item("Square2"), visSelect
End Sub
実行結果
“Square2″に加えて”Square3″が選択されたと思います。
visSelectは今選択中の図形はそのままにして、新しく図形を選択する設定です。
選択を全部解除する(visDeselectAllを使って)
”Square2”が選ばれた状態で、visDeselectAllとvisSelectフラグを付けて選択をします。
コード
Sub test5()
'グループを選択
ActiveWindow.Select ActivePage.Shapes.Item("グループ").Shapes.Item("Square8"), visDeselectAll + visSubSelect
End Sub
実行結果
“Square2″は選択が解除され、”Square3″が選択されたと思います。
visDeselectAllは今選択中の図形全ての選択を解除する設定です。
選択を解除する(visDeselectを使って)
”Square4”~”Square7”が選ばれた状態にして、visDeselectフラグを付けて”Square7″だけ選択を解除します。
コード
Sub test5()
'グループを選択
ActiveWindow.Select ActivePage.Shapes.Item("グループ").Shapes.Item("Square8"), visDeselectAll + visSubSelect
End Sub
実行結果
“Square7″だけ選択が解除されたと思います。
visDeselectは今選択中の図形から、選択した図形の選択を解除する設定です。
グループ内の図形を選択する(visSubSelectを使って)
”Square8”~”Square11”はグループ化されています。選ぶとこんな感じですね。
visSubSelectフラグを付けて、グループ化された図形の中の”Square8″を選択します。
コード
Sub test5()
'グループを選択
ActiveWindow.Select ActivePage.Shapes.Item("グループ").Shapes.Item("Square8"), visSubSelect
End Sub
実行結果
“Square8″がサブ選択されたと思います。
ちなみにここでvisSelectフラグを付けるとエラーメッセージが出るよ
全ての図形を選択する(visSelectAllを使って)
visSelectAllフラグを付けて、ページ内の全ての図形を選択します。
コード
Sub test8()
' ページ内のすべての図形を選択
ActiveWindow.Select ActivePage.Shapes.Item(1), visSelectAll
End Sub
実行結果
全ての図形が選択されたと思います。
次はSelectAllで全ての図形を選択する方法
ページ内の全ての図形を選択、削除するサンプルです。
Sample Code
Sub test9()
'ページ内のすべての図形を選択
ActiveWindow.SelectAll
'削除
ActiveWindow.Selection.Delete
End Sub
詳しくはこちら↓↓↓の記事にあるのでここではサンプルCodeだけっ。
こんなのあったら便利かも
All Deleteって常備しておいても良いよね