hatena
hatena
2023/07/02 (日) 12:11:37
連結オブジェクトフレームでOLEオブジェクトを開いて編集したり閉じるときに更新時イベントが発生するようです。
閉じるときには、Code引数が2になるようです。
上記を利用して閉じたことを検知できそうです。
ただし、更新時イベントでは、更新中なので Locked = True にはできないので、タイマー時イベントで時間を遅らせてロックするようします。
簡単なサンプルの実験では下記のようなコードでうまくいっているようです。
連結オブジェクトフレームの名前は xlsData としています。
Private Sub Form_Timer()
Me.TimerInterval = 0 'タイマー時イベント停止
Me.Refresh 'レコード保存
Me.xlsData.Locked = True
End Sub
Private Sub xlsData_Updated(Code As Integer)
Select Case Code
Case 0, 1
Me.xlsData.Locked = False
Case 2
Me.TimerInterval = 10 '0.01秒後にタイマーイベント発動
End Select
End Sub
連結オブジェクトフレームは普段使ったことがなく、今回、初めて簡単なサンプルで実験しただけなので、実際に使うときはしっかりと動作検証してから使ってください。
通報 ...