No.1ベストアンサー
- 回答日時:
こんにちは。
Office 2003までに限られますが、
'標準モジュール
Sub Test1()
Call MenuVisible(False) 'Off--False, On--True
End Sub
'
Sub MenuVisible(flg As Boolean)
With Application
.CommandBars("Worksheet Menu Bar").Controls("編集(&E)") _
.Controls("貼り付け(&P)").Enabled = flg '編集メニュー
.CommandBars("Cell").FindControl(, 22).Enabled = flg '右クリックメニュー
If flg Then
Application.OnKey "^v"
Else
Application.OnKey "^v", "Dummy" 'ショートカットを無効
End If
End With
End Sub
'
Private Sub Dummy()
Application.CutCopyMode = False
End Sub
'-------------------------------------------
'起動時は、
Sub Auto_Open()
Call MenuVisible(False)
End if
'終了する場合は、
Sub Auto_Close()
Call MenuVisible(True)
End if
'-------------------------------------------
とすれば可能です。
この回答への補足
ありがとうございます。
編集メニュー&右クリックメニューのロックができました。
そこで、補足で教えて下さい。
右クリックメニューのロックで使用している
FindControl(, 22)の引数の設定方法が調べたのですがわかりませんでした。
「22」は右クリックメニューの「編集」のことだと思いますが、数字の取得方法、もしくは一覧表のような物はあるのでしょうか。
又、第1引数は省略しない場合は何を設定するものなのでしょうか。
申し訳ありませんが、ご教示下さい。お願い致します。
No.2
- 回答日時:
こんにちは。
返事が遅くなりました。
>FindControl(, 22)の引数の設定方法が調べたのですがわかりませんでした。
「22」は右クリックメニューの「編集」のことだと思いますが、数字の取得方法、もしくは一覧表のような物はあるのでしょうか。
こういう質問をする人は、何年ぶりでしょうか?こういう質問は、大歓迎です。
私が、入門当事は、本の巻末に出ていましたので、それを参考にしました。しかし、私がマクロで作りましたので、ここに出しておきます。それを、ブックにコントロールリストにしても良いと思います。(ほかにも、エラーリストがマクロで出せます。Err.Number と、Err.Description で、1から10000ぐらいをループさせるだけですが。)
このマクロは、時間が掛かります。
'-------------------------------------------
'メニューコントロール一覧リスト作成
Sub ControlListsShowup()
Dim c As Variant
Dim n As Variant
Dim i As Long
Application.ScreenUpdating = False
On Error Resume Next
Cells(1, 1).Resize(, 3).Value = Array("CommandBar", "Control", "ID")
i = 2
For Each c In CommandBars
Cells(i, 1).Value = c.Name
For Each n In c.Controls
Cells(i, 2).Value = n.Caption
Cells(i, 3).Value = n.ID
i = i + 1
Next n
Next c
On Error GoTo 0
Application.ScreenUpdating = True
End Sub
'-------------------------------------------
今回の質問というのは、少し特殊で、抜け落ちは許さないという種類のものだと思います。その場合は、「編集」というキャプションをすべて探します。
>又、第1引数は省略しない場合は何を設定するものなのでしょうか。
第1引数は、MsoControlType とヘルプには出ていますが、msoControlButtonなどの種類で、それは、規定のコントロールの場合は指定する必要がありません。
expression.FindControl(Type, Id, Tag, Visible, Recursive)
次のTag というのは、ユーザーが設定したメニューコマンドの場合に、Add で設定するときに、ついでにTag にユニークな名前をつけておいて、後で、変更したり、メニューを解除したりするときに、そのTag で呼び出します。他は、使ったことがありません。
早速の回答ありがとうございます。
メニューコントロール一覧のリストを出力することができました。
一覧表を用いて確認することにより「抜け落ち」を防ぐことができますね。
初心者にも親切な回答をありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- その他(データベース) Excel VBA 転記について 1 2022/04/20 16:55
- Visual Basic(VBA) VBAでPowerPointからExcelにレイアウト通りに出力する 4 2023/07/05 12:22
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) ExcelのVBAでをA列に第0〜19項のフィボナッチ数列を代入するプログラムを作りたいです。 どな 2 2022/11/10 10:26
- その他(Microsoft Office) Wordを変換してExcelに挿入 2 2022/07/04 23:59
- Excel(エクセル) Excelのvbaについて教えてください。 図形一つ一つに名前がついています。 指定した図形の名前を 2 2022/08/04 15:13
- Excel(エクセル) Excel リンク先のエクセルファイルの削除 同時に行を削除したい 1 2022/11/29 16:20
- Excel(エクセル) VBAで複数のExcelを1つのExcelにまとめる 1 2022/09/04 11:08
- Visual Basic(VBA) Excel VBAで並べ替えをしたい 3 2023/02/25 09:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel2016でプルダウンのメ...
-
飲食店で、一人で食事をしてい...
-
EXCELのプルダウンメニューを全...
-
windowsのワードで作った文章を...
-
EXCELでポップアップメニューを
-
ACCESS ファイルへのアクセス...
-
ExcelアドインでMenuBarsの使い...
-
ケンタッキーバーレルの「バー...
-
MACで、窓の杜のようなサイト
-
モスバーガーのハンバーガーは...
-
なか卯の”頭大盛り”
-
パチスロ北斗の拳 世紀末救世主...
-
日本語の数字について教えて
-
1円玉がたくさんくっついてとれ...
-
文字の上に線を引く方法
-
着信履歴の消去と電話番号の登...
-
ウィンドウズからマックへのメ...
-
幽遊白書のコラボカフェ行きた...
-
7月20日は「ハンバーガー」の日...
-
マクドナルド、ミスタードーナ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel2016でプルダウンのメ...
-
EXCELのプルダウンメニューを全...
-
飲食店で、一人で食事をしてい...
-
マクドナルド、ミスタードーナ...
-
ケンタッキーフライドチキンっ...
-
モスバーガーのハンバーガーは...
-
700Wの電子レンジは、コンビニ...
-
9月一臂の〔一臂〕の意味
-
ケンタッキーバーレルの「バー...
-
蒙古タンメンとプルダックポッ...
-
漢字の読み方 「火」と「会」を...
-
MACで、窓の杜のようなサイト
-
パチスロ北斗の拳 世紀末救世主...
-
マクドナルドのバイトをしてい...
-
すき家のアルバイトは
-
windowsのワードで作った文章を...
-
ハッピーセットのサイズアップ...
-
ACCESS ファイルへのアクセス...
-
マクドナルド
-
ウィンドウズからマックへのメ...
おすすめ情報