• ベストアンサー

Access レポートプレビュー時に右クリックを禁止させる方法

http://okwave.jp/qa3511238.html ↑で印刷を不可にさせる質問をしたものです。 レポートプレビュー時、メニューバーを消す方法は調べました。 以下、参考までに Application.CommandBars("Menu Bar").Enabled = True Application.SetOption "Built-In Toolbars Available", False あとは右クリックを禁止させれば印刷できなくなると思います。 レポートプレビュー時、右クリックを禁止させる方法があれば教えていただけますでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.2

メニューで「ツール(T)→起動時の設定(U)」を選択して「既定のショートカット メニュー(W)」の チェックをオフにしてみてください。 これで、右クリックメニュー(=既定のショートカット メニュー)が表示されなくなると思います。 (但し、設定が有効になるのは次回起動時です。また、Shiftキーを押しながらAccessを  起動させた場合は、この設定は無視されます) VBAで記述する場合は、 CurrentDb.Properties("AllowShortcutMenus") = False になります。 また、No.1で指摘されている「Ctrl+P」についてはAutoKeysマクロで使用できなくすることが できます。 (「Ctrl+P」の場合は、「マクロ名」に「^P」と記述します) http://www.accessclub.jp/samplefile/samplefile_141.htm ・・・ただ、AccessにFocusがない状態(Accessをアクティブにした後、Windowsのメニューを 表示→メニューを再度非表示にする、など)にした状態でPrintScreenをされた場合など、 これでも抜け道は残ってしまいますが・・・(汗)

motsu2006
質問者

補足

ご回答、ありがとうございます。 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 ---------------------------------------------------------- としていますが、右クリックができてしまいます。 再度、アドバイスいただけますでしょうか?

その他の回答 (2)

  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.3

No.2です。 > CurrentDb.Properties("AllowShortcutMenus") = False > はどこに記述すればよろしいでしょうか? 通常は、データベースを開いたときに自動で開くフォーム(メニューフォーム)のOpenイベントなどに 記述するかと思います。 なお、メニューの「起動時の設定」からの設定をVBAで行っているだけなので、この場合も 「そのmdbファイルを一旦閉じて、次に開いたとき」に初めて設定が有効になります。 (つまり、上記のようにFormのOpenイベントで記述した場合も、あくまで「次回起動時」のためと  いうことなります。・・・なので、場合によってはOpenイベントではなくCloseイベントの方が  いいかもしれません:右クリックメニューを復活させる場合、ちょっと面倒になりますが) ですので、既にそのコードを書いたレポートを開いているのでしたら、一旦mdbファイル全体を 閉じてからもう一度立ち上げれば、右クリックメニューは表示されなくなっていると思います。

motsu2006
質問者

お礼

再度ご回答いただき、本当にありがとうございました。 できました! レポートのオープン時イベントではなく、 mdbの起動時のイベント(AutoExec)にプロシージャの実行を仕組み、 一度オープン・クローズを行った後に成功しました。 非常に助かりました。

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

Ctrl+Pなんて手段もありますよ 完全に防ぐことは難しいでしょうね

motsu2006
質問者

お礼

ご回答、ありがとうございます。 そこをなんとか防ぎたくて、、、。

関連するQ&A