データの分析、グラフ作成、および通信のためのツールを備えた Microsoft 表計算ソフトウェアのファミリ。
先の方の投稿のコードは、配下のコントロールが多い方をということでしょうか?
コマンドバーのIDは無いと思い込んでました。そんなはずはないと思ったんですが、なぜか非表示分を表示しなかったな・・・・・
なお、IDは私の環境では2003~2010共通で通常分が424で改ページプレビューが427のようです。
これが正解でしょうね。
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
下記のマクロを実行してもセルの右クリックコンテクストメニューが全く変わりません。
Sub Auto_Open()
Application.CommandBars(“Cell”).Enabled = False
End Sub
Macroのセキュリティは最低にセットしています。
また、Excel2003,2007(別のPC)では問題なく動いていました。
何が悪いのでしょうか?
データの分析、グラフ作成、および通信のためのツールを備えた Microsoft 表計算ソフトウェアのファミリ。
ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。
質問作成者が受け入れた回答
先の方の投稿のコードは、配下のコントロールが多い方をということでしょうか?
コマンドバーのIDは無いと思い込んでました。そんなはずはないと思ったんですが、なぜか非表示分を表示しなかったな・・・・・
なお、IDは私の環境では2003~2010共通で通常分が424で改ページプレビューが427のようです。
これが正解でしょうね。
質問作成者が受け入れた回答
こんにちは。
「ドロップダウン リストから選択(&K)」のように片方にしかないコマンドを元に、「Application.CommandBars.FindControl(ID:=1966).Parent.Enabled = False」のようにすることもできますが、普通にIDで判断してはいかがでしょうか?
Public Sub Sample()
Dim c As Office.CommandBar
For Each c In Application.CommandBars
If LCase$(c.Name) = "cell" And c.ID = 424 Then
c.Enabled = Not c.Enabled
Exit For
End If
Next
End Sub
バージョンによってIDが変更されているかもしれませんが、私の方では確認していないです。
みなさんありがとうございます。
> If I = 2 Then
理由は良く分かりませんが、環境によって、順番が違うみたいですから、区別はできないのでは?
そうですね。ここさえ区別できたらいいのですが...
かきでいけるような気がします
Option Explicit
Public CellContextMenu As CommandBar
Sub FindCellMenu()
Dim Bars As CommandBars, i As Integer, item, NumControls As Integer
NumControls = 0
Set Bars = Application.CommandBars
For Each item In Bars
If item.Name = "Cell" Then
If item.Controls.Count > NumControls Then
Set CellContextMenu = item
NumControls = item.Controls.Count
End If
End If
Next
End Sub
>1回目のCellは表示が「標準」と「ページレイアウト」表示の時の右クリックメニューで、2回目のCellは「改ページプレビュー」の時のものです。
なるほど、片方は改ページプレビューですか。
> If I = 2 Then
理由は良く分かりませんが、環境によって、順番が違うみたいですから、区別はできないのでは?
Vista、Win7(共にX86)+Office2010(X86)で問題なく機能しました。
まず、AutoOpenが機能していないか、CommandBarへのプロパティ設定が効いていないのか判別するために、MsgBoxを入れて見て下さい。
いずれにしろ原因はさっぱりわかりませんので、対症療法ですが、Aut_OPenではなく、WorkbookOpenイベントを利用されたらいかがでしょうか?
元々Auto_Openは多分Excel95時代の遺物ですので、私は全く使っておりません。