Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » Shape.Select Replace:=Falseとは

動作検証バージョン:Windows 11 Home + 64bit Excel バージョン 2411(ビルド18201.20000クイック実行)ベータチャネル

「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マクロをステップ実行してください。

Sub Shape_Selectの引数Replaceを確認する()
 
 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

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » Shape.Select Replace:=Falseとは

「Shapesコレクション・Shapeオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.