| 
    
     |  | kobasan さん、おはようございます。 >シート上のRectangle図形のPrintObject を変更させるために、下記
 > Set_PrintObject
 >を実行すると、図形を1つ選択時はエラーが発生し、図形を2つ以上選択時ではエラーは出ません。
 >(エラー内容:オブジェクトは、このプロパティまたはメソッドをサポートしていません)
 
 For Each〜で、コレクションのアイテムが1つでもループ処理ができますが、コレクションでない場合(今回はTextBox)をループしようとするとエラーになります。
 
 Selectionの内容で分岐して処理するようにしました。
 
 Sub Set_PrintObject()
 Dim sh As Object
 '
 Select Case TypeName(Selection)
 Case "Range":    '何もしない
 Case "DrawingObjects"
 For Each sh In Selection
 Sh_Set sh   '複数オブジェクトならループしながらコール
 Next
 Case Else
 Sh_Set Selection '単体オブジェクトならそのままコール
 End Select
 End Sub
 '////////////////////////////////
 Sub Sh_Set(sh As Object)
 '実働部分:テキストボックスにいろいろ設定(分離しただけ)
 If TypeName(sh) = "TextBox" Then 'Rectangle
 With sh
 .PrintObject = Not .PrintObject '印刷する True '印刷しない False
 Select Case .PrintObject
 Case True: .ShapeRange.Fill.ForeColor.SchemeColor = 1 '1白
 Case Else: .ShapeRange.Fill.ForeColor.SchemeColor = 41 'うすい青
 End Select
 End With
 End If
 End Sub
 
 こんな感じです。
 
 |  |