「target.count 意味」
といった検索キーワードで、時折アクセスがあることに気が付きました。
断定はできませんが、
If Target.Count <> 1 Then Exit Sub
といったコードの含まれる、Excel VBAのイベントプロシージャを読み解こうとしている方による検索ではないかと、推測しています。
上記のような、イベントプロシージャ内のコードであれば「Taget.Count」は、操作対象となっているセルの個数を取得するためのコードです。
Target.Countを確認するサンプル
Target.Countを、ワークシート上の選択範囲を変更したときに自動的に実行される、以下のような簡単なWorksheet_SelectionChangeイベントプロシージャを作って、「Target.Count」を確認しましょう。
MsgBox Target.Count
End Sub
上記のイベントプロシージャの存在するワークシート上で、選択しているセル範囲を変更すると、新たに選択されたセルの個数がメッセージボックスに表示されます。
このイベントプロシージャの中では、「ByVal Target As Range」と定義されているため、Targetは選択されたセルを表すRangeオブジェクトなのです。
このイベントプロシージャの中でコード「Target.Count」は、RangeオブジェクトのCountプロパティを使用いているコードです。
Target.CountはSelection.Countと似ている
標準モジュールに以下のようなSubプロシージャを作成しておいて、
Sub 選択されているセルの個数を表示する() MsgBos Selection.Count End Sub
セル範囲を選択しておいてから実行すると、選択されているセルの個数がメッセージボックスに表示されます。
先述のWorksheet_SelectionChangeイベントプロシージャと、「選択されているセルの個数を表示する」Subプロシージャと行っている処理は同じです。
実行するタイミングが、選択されているセルの個数を表示するSubプロシージャの場合は人間が意識的に実行する必要があるのに対し、Worksheet_SelectionChangeイベントプロシージャは名前のとおりワークシートの選択範囲が変更されたときに自動的に実行される点が違うだけです。
Worksheet_SelectionChangeイベントプロシージャの作成手順
Worksheet_SelectionChangeイベントプロシージャを作ったことがない方は、以下の手順を参考にしてください。
ワークシートが1枚だけの新規ブックでVBEを表示すると、プロジェクトエクスプローラは下図のような状態になっています。
プロジェクトエクスプローラに表示されている「Sheet1(Sheet1)」をダブルクリックすると、下図のように空白のSheet1イベントプロシージャが表示されます。
コードウィンドウ上部の、「(General)」と表示されているボックスから「Worksheet」を選択すると、
下図のように、中身のないWorksheet_SelectionChangeイベントプロシージャが作成されます。
この、空っぽのイベントプロシージャ
Private Sub Worksheet_SelectionChange(ByVal Target As Range) End Sub
に、コード「MsgBox Target.Count」を追加してください。
Home » エクセルマクロ・Excel VBAの使い方 » イベントプロシージャ » Target.Countとは