|
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
こんな感じです。
|
|