'ThisWorkbook に登録してください。
'Application.ScreenUpdating を入れたら、どうも誤動作するようです。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'閉じる時
Dim LCount As Long
Dim i As Long
Dim ret As Variant
On Error GoTo ErrHandler
With ThisWorkbook
With Worksheets("Sheet2").ListBox1
LCount = .ListCount
For i = 0 To LCount - 1
If .Selected(i) Then
ret = ret & "," & i
End If
Next i
End With
.CustomDocumentProperties("ListData").Value = Mid(ret, 2)
End With
Exit Sub
ErrHandler:
With ActiveWorkbook.CustomDocumentProperties
.Add Name:="ListData", _
LinkToContent:=False, _
Type:=msoPropertyTypeString, _
Value:=0 '
End With
Resume Next
End Sub
Private Sub Workbook_Open()
'開くとき
Dim buf As Variant
Dim ar As Variant
Dim v As Variant
With ThisWorkbook
buf = .CustomDocumentProperties("ListData").Value
ar = Split(buf, ",")
.Worksheets("Sheet2").Select
With Worksheets("Sheet2").ListBox1
For Each v In ar
.Selected(v) = True
Next v
End With
End With
End Sub
お礼
で、で、、、出来ました! ありがとうございます。 以下の部分でエラーが出ていたので、この部分を削除しました。 ----------------------------------------------- ErrHandler: With ActiveWorkbook.CustomDocumentProperties .Add Name:="ListData", _ LinkToContent:=False, _ Type:=msoPropertyTypeString, _ Value:=0 ' End With ----------------------------------------------- また、"Sheet2"はないので"Sheet1"に書き換えました。 しかし難しいマクロですね。もっと簡単にできると思っていました(汗)。。。。