Excel VBA質問箱 IV

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

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


5465 / 13644 ツリー ←次へ | 前へ→

【50618】ファイルをオープンしたときにツールバーを隠したいのですが、、 BOM 07/8/5(日) 12:26 質問[未読]
【50619】Re:ファイルをオープンしたときにツールバ... MOON 07/8/5(日) 13:36 回答[未読]
【50620】Re:ファイルをオープンしたときにツールバ... BOM 07/8/5(日) 14:12 お礼[未読]
【50621】Re:ファイルをオープンしたときにツールバ... MOON 07/8/5(日) 14:37 回答[未読]
【50626】Re:ファイルをオープンしたときにツールバ... BOM 07/8/6(月) 0:37 お礼[未読]

【50618】ファイルをオープンしたときにツールバー...
質問  BOM  - 07/8/5(日) 12:26 -

引用なし
パスワード
   はじめまして。VBA初心者です。
ファイルをオープンしたときにツールバーを隠したい
ThisWorkbookに以下のコードを書きましたがうまく動きません。。

「実行時エラー '-2147467259(80004005)':
'Visible'メソッドは失敗しました:'CommandBar'オブジェクト」
というエラーが発生します。
原因が全くわからず困ってます。。
誰かヒントを教えていただけないでしょうか?

Sub Workbook_Open()

  Dim objToolbars As CommandBars
  Dim objToolbar As CommandBar
  Dim i As Long

  i = 1
  Set objToolbars = Application.CommandBars
  For Each objToolbar In objToolbars
    Worksheets("Sheet1").Range("A" & i) = objToolbar.Index
    Worksheets("Sheet1").Range("B" & i) = objToolbar.Visible
    objToolbar.Visible = False
    i = i + 1
  Next
  
End Sub


【50619】Re:ファイルをオープンしたときにツール...
回答  MOON  - 07/8/5(日) 13:36 -

引用なし
パスワード
   ▼BOM さん:

こんにちは。
ヒントだけですが、
通常ツールバーを非表示にするときは
Visibleプロパティを Falseに設定すればよいのですが、
ワークシートメニューバーを非表示にする時は、
Application.CommandBars("Worksheet Menu Bar").Enabled = False
とします。

【50620】Re:ファイルをオープンしたときにツール...
お礼  BOM  - 07/8/5(日) 14:12 -

引用なし
パスワード
   MOONさん、早速の回答ありがとうございます。
勉強になりました。

追加で申し訳ありませんが、
「1.ファイルをオープンしたときにツールバーを隠すと同時に、
隠したツールバーを"Sheet1"に覚えておいて、
2.ファイルをクローズするときに隠したツールバーを元通りにしたい」
と考えております。

1.を実現するため、
  For Each objToolbar In objToolbars
    Worksheets("Sheet1").Range("A" & i) = objToolbar.Index
    Worksheets("Sheet1").Range("B" & i) = objToolbar.Visible
    objToolbar.Visible = False
    i = i + 1
  Next
のような形で書いてました。
がなぜかエラーが出てしまい困ってます。。。

【50621】Re:ファイルをオープンしたときにツール...
回答  MOON  - 07/8/5(日) 14:37 -

引用なし
パスワード
   エラーで止まった時に、デバッグをクリックすると
コードのエラーが発生した行に色がついて強調されます。
objToolbar.Visible = Falseのところで、止まっていると思いますが、
そのときに変数objToolbarに何が格納されているのか
ローカルウィンドウで確認してみてください。
それが確認できれば先程のヒントで、対処方法が分かるかと思います。

【50626】Re:ファイルをオープンしたときにツール...
お礼  BOM  - 07/8/6(月) 0:37 -

引用なし
パスワード
   >MOONさん
ご回答ありがとうございます。

残念ながらVisibleでなぜエラーが出るのかまだわかっておりませんが、
以下のようにVisibleを使わずに、Enabled を使うように変更したらエラーが出ず
上手く動きました。

Sub Workbook_Open()

  Dim objToolbars As CommandBars
  Dim objToolbar As CommandBar
  Dim i As Long

  i = 1
  Set objToolbars = Application.CommandBars
  For Each objToolbar In objToolbars
    Worksheets("Sheet1").Range("A" & i) = objToolbar.Index
    Worksheets("Sheet1").Range("B" & i) = objToolbar.Enabled
    objToolbar.Enabled = False
    i = i + 1
  Next
  
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)

  Dim i As Long

  i = 1
  
  Do Until Worksheets("Sheet1").Range("A" & i) = ""
    If Worksheets("Sheet1").Range("B" & i) = "True" Then
      Application.CommandBars.Item(Worksheets("Sheet1").Range("A" & i)).Enabled = True
    End If
    i = i + 1
  Loop
  
End Sub

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