アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセル ActiveXコントロール のリストボックスで複数選択(fmMultiSelectMulti)ができますが、
エクセルを保存して再起動すると、前回選択した行は全てリセットされています。
エクセルを再起動しても選択部分が保持されるような設定はありますでしょうか。

A 回答 (2件)

'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
    • good
    • 0
この回答へのお礼

で、で、、、出来ました!
ありがとうございます。

以下の部分でエラーが出ていたので、この部分を削除しました。
-----------------------------------------------
ErrHandler:
 With ActiveWorkbook.CustomDocumentProperties
  .Add Name:="ListData", _
  LinkToContent:=False, _
  Type:=msoPropertyTypeString, _
  Value:=0 '
 End With
-----------------------------------------------

また、"Sheet2"はないので"Sheet1"に書き換えました。

しかし難しいマクロですね。もっと簡単にできると思っていました(汗)。。。。

お礼日時:2011/02/21 21:37

シート名、Sheet1を使えなかったので、Sheet2 にしたので、こちらのミスですが、



ErrHandler:
 With ActiveWorkbook.CustomDocumentProperties
 ・
 ・

---------------------------------
ここは、基本的にエラーが出ることはありえませんから、おそらく、VBEditor のオプションのエラーモードが、違っている可能性があります。後々、こまって現象がおきます。

VBE-->ツール-->オプション-->全般(Tab)
エラートラップ
 エラー処理対象がいのエラーで、中断
を選択されているか確認してください。

http://msdn.microsoft.com/ja-jp/library/cc344016 …
「エラー トラップ] セクションでは、デバッグ操作で行う作業に適した
 オプションを選択してください。既定の設定は
 [エラー処理対象外のエラーで中断] です。」
    • good
    • 0
この回答へのお礼

ThisWorkbook の中にあった他のマクロが邪魔していたようです。
まっさらにしてから貼り付け直したら出来ました。
ありがとうございました。

お礼日時:2011/02/22 00:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!