Excel VBA質問箱 IV

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

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


40077 / 76732 ←次へ | 前へ→

【41759】Re:メニューバーの任意の機能をオンオフ...
回答  kobasan  - 06/8/22(火) 8:16 -

引用なし
パスワード
   katchin さん おはようございます。
表示しないなら Visible 、グレー表示なら Enabled のプロパティを使います。

Controls(2).Controls(10) という形なのでControlsを多用したメニューバーでサンプルを作りました。これで分ってください。


'新規メニューバーの作成
Sub Menu_Add()
Dim menu, btn
  Del_MenuBar
  CommandBars.Add ("New_Bar")
  '
  '===================================================================1列目(Popupにする)
  Set menu = CommandBars("New_Bar").Controls.Add(Type:=msoControlPopup, temporary:=True)
  With menu
    .Caption = "menu_A"
    '------------------1列1行目(Button)
    .Controls.Add Type:=msoControlButton
    .Controls(1).Caption = "menu_A1"
    .Controls(1).OnAction = "macroA1"
    '------------------1列2行目(Button)
    .Controls.Add Type:=msoControlButton
    .Controls(2).Caption = "menu_A2"
    .Controls(2).OnAction = "macroA2"
  End With
  '
  '===================================================================2列目(Popupにする)
  Set menu = CommandBars("New_Bar").Controls.Add(Type:=msoControlPopup, temporary:=True)
  With menu
    .Caption = "menu_B"
    '------------------2列1行目(Button)
    .Controls.Add Type:=msoControlButton
    .Controls(1).Caption = "menu_B1"
    .Controls(1).OnAction = "macroB1"
    '------------------2列2行目(Button)
    .Controls.Add Type:=msoControlButton
    .Controls(2).Caption = "menu_B2"
    .Controls(2).OnAction = "macroB2"
  End With
  '
  '======================================================3列目(Button)
  Set btn = CommandBars("New_Bar").Controls.Add(Type:=msoControlButton)
  With btn
    '.Style = msoButtonIcon
    .Style = msoButtonIconAndCaption
    .FaceId = 480
    .Caption = "1列2行目ボタンのTrue,False切り替え"
    .OnAction = "Menu_C"
  End With
  '
  CommandBars("New_Bar").Visible = True
  Set menu = Nothing: Set btn = Nothing
End Sub

Sub Del_MenuBar()
Dim c As CommandBar
  For Each c In CommandBars
    If c.Name = "New_Bar" Then CommandBars("New_Bar").Delete
  Next
End Sub

Sub auto_close()
  Del_MenuBar
End Sub

Private Sub Menu_C()
Dim Mybtn
  '表示しないなら .Enabled を .Visible  に変更してください
  'グレー表示なら .Enabled 
  With CommandBars("New_Bar").Controls(1).Controls(2)
    If .Enabled = False Then
      .Enabled = True
    Else
      .Enabled = False
    End If
  End With
End Sub


>メニューバーを開くと多くの機能が通常アクティブになっていますが、以前どなたかから、例えば左から2列目編集メニューの上から10番目の「削除」をノンアクティブにしたい時、Controls(2).Controls(10) = False 
>つまり、m列目のメニューバーのn番目の機能をノンアクティブにしたいとき、
>Controls(m).Controls(n) = False  また、逆にノンアクティブにした機能をアクティブに戻すとき、False を True に。                  左辺のプロパティの式が定かではないので、再現を試みましたらやはり上手く行きませんでした。どこかが微妙に間違っているのだろうと思われますがまだ判りません。
>どなたか正確にご教示くださいませ。
>
0 hits

【41750】メニューバーの任意の機能をオンオフする... katchin 06/8/22(火) 0:03 質問
【41759】Re:メニューバーの任意の機能をオンオフ... kobasan 06/8/22(火) 8:16 回答
【41821】Re:メニューバーの任意の機能をオンオフ... katchin 06/8/23(水) 19:04 発言
【41826】Re:メニューバーの任意の機能をオンオフ... kobasan 06/8/23(水) 19:44 回答
【41833】それでもコンパイルエラーになります katchin 06/8/23(水) 21:14 発言
【41834】Re:それでもコンパイルエラーになります かみちゃん 06/8/23(水) 21:22 発言
【41835】Re:それでもコンパイルエラーになります kobasan 06/8/23(水) 21:45 回答
【41898】ありがとうございましたやっとActiveにな... katchin 06/8/25(金) 15:32 お礼
【41767】Re:メニューバーの任意の機能をオンオフす... inoue 06/8/22(火) 13:17 発言

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