「excel vba shape replace:=false」
といった検索でアクセスがありました。
Excel VBAのShape.Selectメソッドの引数Replaceについて調べていた方による検索です。
Shape.Selectの引数Replaceの効果
結論からお伝えします。
Shape.Selectメソッドの引数Replaceは、既に選択されているShapeが存在するときに、その選択状態を解除するかどうかを指定するためのものです。
引数ReplaceにTrueを指定すると選択済のShapeの選択状態が解除され、Falseを指定すると選択状態が解除されません。
Shape.SelectのReplaceを確認する
コードを実行して引数Replaceの効果を、ご自分の目で確認しておくことをおすすめします。
まずは「Replace:=True」の状態を見ておきましょう。
2個以上の図形が存在するワークシートがアクティブな状態で、以下のExcelマクロをステップ実行してください。
Dim sht As Worksheet
Set sht = ActiveSheet
sht.Shapes(1).Select
sht.Shapes(2).Select Replace:=True
End Sub
ステップ実行をすすめて、以下の行を実行すると、ActiveSheet.Shape(1)で取得できるShapeが選択されます。
sht.Shapes(1).Select
つづいて、以下の行を実行すると、
sht.Shapes(2).Select Replace:=True
ActiveSheet.Shape(2)で取得できるShapeのみが選択された状態になります。
Replace:=Falseの効果を確認する
次に、
「excel vba shape replace:=false」
と検索した方が調べていた、引数ReplaceにFalseを指定したときの様子です。
先のSubプロシージャの、
sht.Shapes(2).Select Replace:=True
を、以下のように変更してからステップ実行してください。
sht.Shapes(2).Select Replace:=False
今度は、ActiveSheet.Shape(1)で取得できるShapeの選択状態が解除されずに、ActiveSheet.Shape(2)で取得できるShapeも選択された状態になります。
Shape.Selectメソッドの引数ReplaceにTrueを指定すると選択済のShapeの選択状態が解除され、Falseを指定すると選択状態が解除されませんん。
Shepe.Selectメソッドの引数Replaceについては、拙著『理解するExcel VBA/図形操作の基本』の「1-3. ShapesからShapeを1つ取得する」でも解説しています。
最終更新日時:2024-10-22 18:10
- Newer:VBAで複数のアクティブセルを取得する??
- Older:Word VBAで表にカーソルを移動する
Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » Shape.Select Replace:=Falseとは