
お世話になります。
VBA を使用してexcel起動時に 右クリックメニューの行削除や列削除を無効して、下記VBAを作成しました。
しかしながら、起動時(実行時)に
「実行時エラー 5 プロシージャの呼び出し、または引数が不正です。」が出ることがあります。
でないときもあるのですが、
デバック時にとまるところは、毎回変わり(1)~(5)のどれかで止まります。
使用したい環境はexcel2007,excel2003で正常に動くようにしたいのですが、何卒よろしくお願いします。
*************ソース*********************
Private Sub Workbook_Open()
InsertEnabled False
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
InsertEnabled True
End Sub
Private Sub InsertEnabled(flg As Boolean)
With Application
(1) Application.CommandBars("Worksheet Menu Bar").Controls("挿入(&I)").Enabled = flg
(2) Application.CommandBars("Cell").Controls("挿入(&I)...").Enabled = flg
(3)Application.CommandBars("Cell").Controls("削除(&D)...").Enabled = flg
(4)Application.CommandBars("Row").Controls("挿入(&I)").Enabled = flg
(5)Application.CommandBars("Row").Controls("削除(&D)").Enabled = flg
.CommandBars.FindControl(, 296).Enabled = flg
.CommandBars.FindControl(, 293).Enabled = flg
End With
End Sub
No.3ベストアンサー
- 回答日時:
とりあえず、私の環境(2003)では
Application.CommandBars("Row")のコントロールに
挿入はありませんでした・・・
削除(&D)も削除(&D)...となっていましたし。
そこで、ちょっと無駄の多い処理になるかもしれませんがこうしてみては?
Private Sub Workbook_Open()
InsertEnabled False
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
InsertEnabled True
End Sub
Private Sub InsertEnabled(flg As Boolean)
Call ControlEnabled(flg, "Worksheet Menu Bar")
Call ControlEnabled(flg, "Cell")
Call ControlEnabled(flg, "Row")
With Application.CommandBars
.FindControl(, 296).Enabled = flg
.FindControl(, 293).Enabled = flg
End With
End Sub
Private Sub ControlEnabled(flg As Boolean, BarName As String)
Dim i As Integer
'指定コマンドバーのコントロールの数だけループし、挿入もしくは削除から
'始まるコントロールを有効/無効化する
With Application.CommandBars(BarName)
For i = 1 To .Controls.Count
If .Controls(i).Caption Like "挿入*" Or .Controls(i).Caption Like "削除*" Then
.Controls(i).Enabled = flg
End If
Next i
End With
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
エクセル VBA で行の右クリックメニューから行の挿入削除を無効にしたい
Excel(エクセル)
-
特定のシートの削除を禁止したい(ブックの保護でなく)
Excel(エクセル)
-
EXCEL VBAアドイン:シートの右クリックメニューへの追加方法その2
Visual Basic(VBA)
-
4
VBAで、貼り付け禁止命令を実現したい(エクセル)
Visual Basic(VBA)
-
5
Excel VBA メニューバー内の各項目の enable/disable変更
その他(Microsoft Office)
-
6
【VBA】特定シート 名前編集・削除を禁止したい
Excel(エクセル)
-
7
Excelにて、右クリックメニューが表示されない
Excel(エクセル)
-
8
右クリックによるイベントマクロでコンテキストメニューを非表示にしたいのですが、
Visual Basic(VBA)
-
9
エクセルでセルの挿入・削除を禁止し、他のセルの列や行がずれないようにし
その他(Microsoft Office)
-
10
EXCELのユーザーフォームで入力規制をしたい
Excel(エクセル)
-
11
動的配列が存在(要素が有る)か否かを判定できますか?
Visual Basic(VBA)
-
12
VBAで行削除できないようにするには
その他(プログラミング・Web制作)
-
13
VBAでの結合セルのコピー&ペースト
Excel(エクセル)
-
14
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
15
VBAにて メニューを追加して、区切りの線も追加するには
Excel(エクセル)
-
16
VBAにてメッセージボックスを最前面に表示させる
その他(プログラミング・Web制作)
-
17
VBAでシート挿入を禁止したい。
Visual Basic(VBA)
-
18
ユーザーフォームに入力したデータを保持する方法
Visual Basic(VBA)
-
19
ユーザーフォームのコピー?
Excel(エクセル)
-
20
EXCELでワークシートを開いたらマクロを自動実行したい
Excel(エクセル)
関連するQ&A
- 1 VBAでVlookup関数を組もうとしていますがエラーが出ます。VBAに詳しい方、教えてください
- 2 <Excel>アドインから削除してもメニューから消えない
- 3 outlook expressで、エクスポートの際「MAPIを初期化しようとしてエラーが発生しました」というエラーが起こる
- 4 EXCEL2010 VBA 列名の変更
- 5 エクセルVBAでフォームの無効化(2)
- 6 セル配置で「折り返して全体を表示」が無効になる&列幅を固定させたい
- 7 VBAでの1列すべての指定方法について。
- 8 VBAでOSの日付定義を無効にする方法
- 9 VBAでフォームの閉じるボタンを無効にしたい
- 10 VLOOKUPでエラーの場合はある列の数値に、としたい。
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
挿入しやすい体位
-
5
挿入のときに力を抜く方法はあ...
-
6
太ってる女とのSEX
-
7
入ってるかどうかわからない
-
8
いきそうでいけない・・・
-
9
彼と最後までセックスできた事...
-
10
挿入時 鳥肌
-
11
ペニスサイズについて
-
12
初めて同士での挿入
-
13
直ぐに挿入をせまる彼女
-
14
挿入の途中で乾く・・・
-
15
あそこが狭い女性とのHについ...
-
16
すぐ乾いて挿入できません
-
17
もう少しでイケそうな時、どん...
-
18
挿入時彼女がとても痛がるんで...
-
19
女性の方 イクようになったき...
-
20
前戯だけで終わるのは、女性と...
おすすめ情報