|
ユニフ さん、こんばんわ。
>メカ大好き! さんどうもです。
>
>>私は以下の式で完璧に動きましたが…。(式は標準モジュールに書きました)
>
>Sub Allchkon()
>Dim myobj As OLEObject
MsgBox ActiveWorkbook.Name,vbInformation
>For Each myobj In Sheets("Sheet7").OLEObjects
> If TypeName(myobj.Object) = "CheckBox" Then _
> myobj.Object.Value = False
> Next
>End Sub
>で、もう一度試しましたがやはり2行目が黄色エラーになります。
>シート上にあるものはチェックボックスで間違いないと思います。
メッセージボックスに思いもよらない名まえが出たりしませんか?
シート名:Sheet7のあるブックはちゃんとアクティブですか?
原因がわからないときはいろいろ試してみるといいです。
Shapeの種類を確認するために次のマクロを実行してみてください。
アクティブなブックの全てのシート上の図形のリストを作ります。
Sub test()
Dim wb(1 To 2) As Workbook, II As Integer, sh As Shape, ws As Worksheet
Set wb(1) = ActiveWorkbook
Set wb(2) = Application.Workbooks.Add
'
For Each ws In wb(1).Worksheets
For Each sh In ws.Shapes
II = II + 1
With wb(2).Worksheets(1)
.Cells(II, 1).Value = ws.Name
.Cells(II, 2).Value = sh.Name
.Cells(II, 3).Value = Stype(sh.Type)
End With
Next
Next
Erase wb
End Sub
'種類判定関数
Function Stype(arg1 As Integer) As String
Dim AA As String
Select Case arg1
Case 8: AA = "ツールバー『フォーム』由来"
Case 12: AA = "ツールバー『コントロールツールボックス』由来"
Case Else: AA = "その他図形軍"
End Select
Stype = AA
End Function
|
|