|
”実行時エラー:91 オブジェクト変数またはWithブロック変数が設定されていません”が出る時があります。
・オブジェクト型変数はプロジェクト内で共通参照できるように、Publicで宣言。
ブックオープン時に1回だけSetを実施。
・ワークシート2に2つあるボタン(チェックボックスの作成、削除)を、交互に動かすと早い時は1往復くらいで、たまに3往復目くらいまで行く時がありますが上記エラーになってしまいます。
(エラーが発生する回数、エラーが発生する場所とも不特定。場所はいずれもWsを参照している箇所ですが、複数個所あります)
何か解放漏れとかですか?
ちなみに、Workbook_BeforeClose時に、Set Wb = Nothing、Set Ws1 = Nothing、Set Ws2 = Nothingはしてます。
力不足のため、ご教授のほどよろしくお願いします。
■標準モジュール
Public Wb As Workbook 'ワークブック
Public Ws1 As Worksheet 'ワークシート
Public Ws2 As Worksheet 'ワークシート
■ワークブックプロシージャ
Private Sub Workbook_Open()
Set Wb = Workbooks("Book.xlsm")
Set Ws1 = Wb.Worksheets("Sheet1")
Set Ws2 = Wb.Worksheets("Sheet2")
Ws1.Cells(1, 1).Value
Ws2.Cells(1, 1).Value
End Sub
■ワークシート2
Private Sub チェックボックス作成_Click()
For CheckBoxIndex = 1 To XX
'チェックボックスを作成する
With Ws2.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, DisplayAsIcon:=False)
.Object.Caption = Ws2.Cells(省略)
以下省略
End With
Next CheckBoxIndex
End Sub
Private Sub チェックボックス削除_Click()
For Each tCtrl In Ws2.Shapes
If Left(tCtrl.Name, 8) = "CheckBox" Then
Ws2.Shapes(tCtrl.Name).Delete
End If
Next
End Sub
|
|