Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8055 / 13646 ツリー ←次へ | 前へ→

【35359】現在のコマンドバー情報を取得し、終了後元に戻す こば。 06/3/1(水) 17:04 質問[未読]
【35360】Re:現在のコマンドバー情報を取得し、終了... inoue 06/3/1(水) 18:05 発言[未読]

【35359】現在のコマンドバー情報を取得し、終了後...
質問  こば。  - 06/3/1(水) 17:04 -

引用なし
パスワード
   現在のコマンドバー情報を取得し、ファイルクローズと同時に元に戻したい。
アクティブになっているコマンドバー情報の取得の方法はわかりました。
・auto_open()とauto_close()は標準モジュールに記述している
・開いたときは初期状態を保有しつつ、自作の「toolbar」をこのシートだけで使用したい。
・初期状態はどこかにBuffを用意し、クローズ後に呼び出すしかないでしょうか?
何か他に良い方法がございましたら教えてください。

Sub auto_open()
  
  Dim cb As CommandBar

  For Each cb In CommandBars
    If cb.Visible = True Then
      MsgBox cb.Name
      
    End If
    
  Next cb
  
 Application.CommandBars("toolbar").Visible = True
End Sub

Sub auto_close()
  
  Dim cb As CommandBar

  For Each cb In CommandBars
    If cb.Visible = True Then
      MsgBox cb.Name
      
    End If
    
  Next cb
  
 Application.CommandBars("toolbar").Visible = False
End Sub

【35360】Re:現在のコマンドバー情報を取得し、終...
発言  inoue E-MAILWEB  - 06/3/1(水) 18:05 -

引用なし
パスワード
   >初期状態はどこかにBuffを用意し、クローズ後に呼び出すしかないでしょうか?
ここで言う「初期状態」とはExcelの初期状態ではなく、
そのブックを開く直前の状態でしょうから、
何らかの方法で状態を保管しておくしかありません。
その時のBuffは、VBA側の変数ではダメです。たぶん「セル」でしょう。

復旧は「クローズ後」ではなく、クローズ前です。
クローズ後ではマクロは動きません。
但し、Auto_Closeではその後の保存確認でキャンセルされることがあるので
そのことも考える必要があります。
さらに極論かも知れませんが、作業中にデザインモードにできるわけですから
100%復旧される保証はありません。

私見ではツールバーをマクロで操作してしまうのは好みません。

8055 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free