[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『右クリックメニューを消す エラーが出る』(喙湲)
エクセルブックを開くときに、
右クリックメニューの削除、挿入を消そうと
下記の通り記載していますが、エラーとなります。
何が間違っているのかがわからずにおります。
どなた様かお分かりになりますでしょうか?
実行時エラー5
プロシージャの呼び出し、または引数が不正です。
Private Sub Auto_Open()
CommandBars("Row").Controls("挿入(&I)").Enabled = False CommandBars("Row").Controls("削除(&D)").Enabled = False End Sub
< 使用 Excel:Excel2016、使用 OS:Windows10 >
■実行時エラー5
プロシージャの呼び出し、または引数が不正です。
■コード■
Private Sub Workbook_Open()
Application.CommandBars("Row").Controls("挿入(&I)").Enabled = False
Application.CommandBars("Row").Controls("削除(&D)").Enabled = False End Sub
Private Sub workbook_Close()
Application.CommandBars("Row").Controls("挿入(&I)").Enabled = True Application.CommandBars("Row").Controls("削除(&D)").Enabled = True End Sub (喙湲) 2019/10/09(水) 00:15
Rows(1).Select (???) 2019/10/09(水) 11:20
こうやって回してみるとか・・・・。
For Each cbc In CommandBars("Row").Controls If cbc.ID = 293 Or cbc.ID = 3183 Then cbc.Enabled = False End If Next
ID番号は、バージョンで違うのでこれで調べて下さい。(多分) 上記は、office2007
For Each cbc In CommandBars("Row").Controls i = i + 1 Cells(i, 1).Value = cbc.Caption Cells(i, 2).Value = cbc.ID Next (BJ) 2019/10/09(水) 13:06
BJさん
お返事ありがとうございます。
下記コードはエラーになりまして、
実行時エラー91
オブジェクト変数またはWITHブロック変数が設定されていません となります。
For Each cbc In CommandBars("Row").Controls If cbc.ID = 293 Or cbc.ID = 3183 Then cbc.Enabled = False End If Next
またもう一つのコードの意味が分かりません。
こちらも同じ個所に貼り付けましたが
上記と同じエラーとなります。
貼り付け箇所がそれぞれ違いますか?
For Each cbc In CommandBars("Row").Controls i = i + 1 Cells(i, 1).Value = cbc.Caption Cells(i, 2).Value = cbc.ID Next
(喙湲) 2019/10/09(水) 21:10
Dim cbc As Variant
For Each cbc In Application.CommandBars("Row").Controls i = i + 1 Cells(i, 1).Value = cbc.Caption Cells(i, 2).Value = cbc.ID Next
その番号で下記の通り埋め込みましたところ無事に動くようになりましたが、
どうやら他の空の通常のエクセルを開き、右クリックメニューを確認すると、
削除、挿入が消えているので、コード記述の閉じるタイミングのどこか変更が必要のようです。
Private Sub Workbook_Open()
Dim cbc As Variant
For Each cbc In Application.CommandBars("Row").Controls If cbc.ID = 293 Or cbc.ID = 3183 Then cbc.Enabled = False End If Next
End Sub
Private Sub workbook_Close()
Dim cbc As Variant
For Each cbc In Application.CommandBars("Row").Controls If cbc.ID = 293 Or cbc.ID = 3183 Then cbc.Enabled = True End If Next
End Sub
(喙湲) 2019/10/09(水) 21:32
横からすみません。
>Private Sub workbook_Close() ↑ それは、これと取り違えていませんか? ↓ Private Sub Workbook_BeforeClose(Cancel As Boolean)
※ 私のエクセルにCloseイベントって見つからないので。。
(半平太) 2019/10/09(水) 22:18
Private Sub Workbook_BeforeClose(Cancel As Boolean)へ変更したところ
通常のエクセルを開いたときに挿入、削除が選択できる状態になりました!
なぜこのcloseを利用していたのかはすみませんが不明です。。
いろいろと試している中で再度問題があるのですが、
下記のコードのエクセル開いているときに、別のエクセルを開くと、
そちらのエクセルも挿入、削除が消えたままとなります。
別で開いたものは通常通り使いたいとき、これはやはり避けられないのでしょうか
●thisworkbookへ記入
Private Sub Workbook_Open()
Dim cbc As Variant
For Each cbc In Application.CommandBars("Row").Controls If cbc.ID = 293 Or cbc.ID = 3183 Then cbc.Enabled = False End If Next End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim cbc As Variant For Each cbc In Application.CommandBars("Row").Controls If cbc.ID = 293 Or cbc.ID = 3183 Then cbc.Enabled = True End If Next End Sub
(喙湲) 2019/10/09(水) 22:52
こんのなのを追加して置けばいいんじゃないですか(こちらでテストはしておりませんが。)
Private Sub Workbook_Activate() Workbook_Open End Sub
Private Sub Workbook_Deactivate() Workbook_BeforeClose True End Sub
(半平太) 2019/10/09(水) 23:19
いろいろありがとうございます。
(喙湲) 2019/10/10(木) 00:05
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.