[[20110610084831]] 『同じ名前の図形を区分して選択したい』(x11eUser) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『同じ名前の図形を区分して選択したい』(x11eUser)
 同じ名前を持つ図形が複数あったとき、図形の名前で選択すると、IDの最も小さい
 図形のみ選択されてしまいます。
 以下のプログラムはセル位置で10行目より下にある図形を選択するものですが、
 IDが小さい同じ名前の図形が10行目より上にあるとそちらが選択されてしまいます。
 意図した図形を選択することはできるでしょうか。
  また、同じ名前の図形は1つしか選択されませんが、条件の合う全ての図形を
 選択することはできるでしょうか。
Sub XXX()
Dim xShapeTBL()
Dim xShape
Dim j As Long
    j = 0
    For Each xShape In ActiveSheet.Shapes
        If xShape.TopLeftCell.Row > 10 Then
            ReDim Preserve xShapeTBL(j)
            xShapeTBL(j) = xShape.Name
            j = j + 1
        End If
    Next
    If IsArray(xShapeTBL) Then
        ActiveSheet.Shapes.Range(xShapeTBL).Select
    End If
End Sub

 Shapes.RangeにはShapesコレクションのIndexでも対応できるので
 Indexでループするように変更してみるとどうでしょうか

  Sub XXX()
  Dim xShapeTBL()
  Dim i As Long
  Dim j As Long
      j = 0
      For i = 1 To ActiveSheet.Shapes.Count
          If ActiveSheet.Shapes.Item(i).TopLeftCell.Row > 10 Then
              ReDim Preserve xShapeTBL(j)
              xShapeTBL(j) = i
              j = j + 1
          End If
      Next
      If IsArray(xShapeTBL) Then
          ActiveSheet.Shapes.Range(xShapeTBL).Select
      End If
  End Sub

 (momo)

momo様

 ありがとうございます。
 Indexが使えるということに思いつきませんでした。
 問題となっていたことも完璧に解決できました。
 感激ものです。本当にありがとうございます。

(x11eUser)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.