プロが教えるわが家の防犯対策術!

http://okwave.jp/qa3511238.html
↑で印刷を不可にさせる質問をしたものです。

レポートプレビュー時、メニューバーを消す方法は調べました。
以下、参考までに
Application.CommandBars("Menu Bar").Enabled = True
Application.SetOption "Built-In Toolbars Available", False

あとは右クリックを禁止させれば印刷できなくなると思います。

レポートプレビュー時、右クリックを禁止させる方法があれば教えていただけますでしょうか?

よろしくお願いします。

A 回答 (3件)

メニューで「ツール(T)→起動時の設定(U)」を選択して「既定のショートカット メニュー(W)」の


チェックをオフにしてみてください。
これで、右クリックメニュー(=既定のショートカット メニュー)が表示されなくなると思います。
(但し、設定が有効になるのは次回起動時です。また、Shiftキーを押しながらAccessを
 起動させた場合は、この設定は無視されます)

VBAで記述する場合は、
CurrentDb.Properties("AllowShortcutMenus") = False
になります。


また、No.1で指摘されている「Ctrl+P」についてはAutoKeysマクロで使用できなくすることが
できます。
(「Ctrl+P」の場合は、「マクロ名」に「^P」と記述します)
http://www.accessclub.jp/samplefile/samplefile_1 …


・・・ただ、AccessにFocusがない状態(Accessをアクティブにした後、Windowsのメニューを
表示→メニューを再度非表示にする、など)にした状態でPrintScreenをされた場合など、
これでも抜け道は残ってしまいますが・・・(汗)

この回答への補足

ご回答、ありがとうございます。

AutoKeysマクロ、できました。
これでCtrl+Pを防ぐことはできますね。

しかしながら、
CurrentDb.Properties("AllowShortcutMenus") = False
はどこに記述すればよろしいでしょうか?

私は、レポートのオープン時のイベント(下記)、
----------------------------------------------------------
Private Sub Report_Open(cancel As Integer)
'メニューバーを非表示にする
Application.CommandBars("Menu Bar").Enabled = False
Application.SetOption "Built-In Toolbars Available", False
'右クリックを無効にする
CurrentDb.Properties("AllowShortcutMenus") = False
RightButton = True
End Sub
----------------------------------------------------------
としていますが、右クリックができてしまいます。

再度、アドバイスいただけますでしょうか?

補足日時:2007/11/13 09:38
    • good
    • 0

No.2です。



> CurrentDb.Properties("AllowShortcutMenus") = False
> はどこに記述すればよろしいでしょうか?

通常は、データベースを開いたときに自動で開くフォーム(メニューフォーム)のOpenイベントなどに
記述するかと思います。

なお、メニューの「起動時の設定」からの設定をVBAで行っているだけなので、この場合も
「そのmdbファイルを一旦閉じて、次に開いたとき」に初めて設定が有効になります。
(つまり、上記のようにFormのOpenイベントで記述した場合も、あくまで「次回起動時」のためと
 いうことなります。・・・なので、場合によってはOpenイベントではなくCloseイベントの方が
 いいかもしれません:右クリックメニューを復活させる場合、ちょっと面倒になりますが)


ですので、既にそのコードを書いたレポートを開いているのでしたら、一旦mdbファイル全体を
閉じてからもう一度立ち上げれば、右クリックメニューは表示されなくなっていると思います。
    • good
    • 0
この回答へのお礼

再度ご回答いただき、本当にありがとうございました。

できました!

レポートのオープン時イベントではなく、
mdbの起動時のイベント(AutoExec)にプロシージャの実行を仕組み、
一度オープン・クローズを行った後に成功しました。

非常に助かりました。

お礼日時:2007/11/13 13:22

Ctrl+Pなんて手段もありますよ


完全に防ぐことは難しいでしょうね
    • good
    • 0
この回答へのお礼

ご回答、ありがとうございます。

そこをなんとか防ぎたくて、、、。

お礼日時:2007/11/13 09:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています