Access2007 フォーム上データのコピー禁止

このQ&Aのポイント
  • Access2007において、フォーム上のデータをコピー禁止する方法について質問です。
  • 具体的には、[CTRL]+[C]の禁止と右クリックメニューのコピー禁止ができるかどうか知りたいです。
  • さらに、既定の右クリックメニューでコピーだけを外す方法や、カスタムメニューの作成についても教えてください。
回答を見る
  • ベストアンサー

Access2007 フォーム上データのコピー禁止

Access2007について質問します。 フォームに表示された情報をコピー禁止にしたいというのが目的です。 [CTRL]+[C]の禁止、右クリックメニューのコピーを禁止する ということが具体的な方策となると思います。 [CTRL]+[C]の禁止は、起動時の処理で禁止にできます。 右クリックメニュー(ショートカットメニュー)も既定のものではなく、カスタムにすれば可能なのですが、既定メニューにあるフィルター等のコピー以外のメニューは既定のままにしておきたいのです。 それで質問となりますが、 既定の右クリックメニューで、コピーだけを外す(使用不可にする)ことが可能なのでしょうか?可能であるならばそのやり方を。 または、 カスタムメニューの作成で、既定メニューのようなものを作成することが可能なのか?フィルターも数値、テキストとフィールド定義に基づいて自動的に判断し表示されているようです。 以上です。よろしくお願いします。

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

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.1

Access2007は持ち合わせておりませんので、別のアプローチを http://www.loadsystem.net/api/lsapi15.txt こちらを利用して、マウスボタンクリック時とキークリック時イベントに ClearClipBord_Data としてはどうでしょう? フォームのプロパティの『キーボードイベント取得』は、はいにしておいて。 ユーザーが何かする度に空にしてしまう・・(^^ゞ Sub ClearClipBord_Data()   If OpenClipboard(0) Then     EmptyClipboard     CloseClipboard   End If End Sub ※APIに関して私は全くの門外漢ですので、質問には答えられませぬ。 Win XP & Access2002 にて検証。

suzutora222
質問者

お礼

nicotinismさん。 ありがとうございます。 以前、プリントスクリーンを防止する際に考えたことがありましたが、その時は具体的にどうやるのかわからずにあきらめてしまいました。 簡単にできるんですね。やってみますね。

suzutora222
質問者

補足

nicotinismさん。 もしおわかりになればと思いましてお尋ねいたします。 標準モジュールに、教えていただいたサブモジュールを設定したのですが、 OpenClipboard EmptyClipboard CloseClipboard がいずれも「定義されていません」とエラーになってしまいます。 リンクされていた場所にあった、以下の記述をとってきて Declare Function OpenClipboard Lib "User32" (ByVal hWnd As Long) As Long Declare Function CloseClipboard Lib "User32" () As Long Declare Function EmptyClipboard Lib "User32" () As Long を別途定義したのですが、OpneClipboardはそれで通ったのですが、EmptyClipboard、CloseClipboardはやはり定義されていないとでてしまいます。 この辺の知識が未熟で、不勉強なためよくわかっておらず、ネットで検索してもいまひとつわかりません。 何かアドバイスがありましたらお願いします。(こういうことを勉強しなさいみたいなことでもかまいません)

その他の回答 (2)

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.3

失礼しました。コントロール上ではフォームのマウスクリック時イベントは発生しませんね・・ となると、フォームのマウスボタン移動時かな?

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.2

こちらの環境では問題なく動きましたけど? 新規MDBの標準モジュールの内容です。 試しに、Windows XP でAccess2010のMDBとACCDBでも大丈夫でしたよ。 Option Compare Database Option Explicit Declare Function OpenClipboard Lib "User32" (ByVal hWnd As Long) As Long Declare Function CloseClipboard Lib "User32" () As Long Declare Function EmptyClipboard Lib "User32" () As Long Sub c1() If OpenClipboard(0) Then Call EmptyClipboard Call CloseClipboard End If End Sub

suzutora222
質問者

補足

nicotinismさん ありがとうございます。 再度、行ってみたら通りました。 これにより、プリントスクリーンという大物が使用不可になり、喜んでおりますが、右クリックによるコピーがなぜか生きたまま、ということはクリップボードのデータがクリアされていない、という状況です。 マウスクリックを、クリック時、移動時、解放時の全てでプロシージャーを呼び出したのですが、クリアされないんです。 何か設定が悪いのかもしれないので、もう少し見てみます。 大変勉強になりました。 ありがとうございました。

関連するQ&A

  • Access2003で右クリックができない

    Access2003でアプリケーションを作成しています。 CommandBarsの.enabled全てをfalseにしてメニューバー等を非表示にしていたのですが、 デバック等を繰り返している内にAccessを起動しても右クリック時にショートカットメニューが表示されなくなりました。 ツール-起動時の設定で既定のショートカットメニューにチェックを入れているのですが、 右クリックできないのでしょうか。 分かる方教えてください。

  • 右クリックで文字削除したい。ライブドアブログ。

    文字上を左ドラックで反転させ、右クリックでメニューを表示させると、“元に戻す、切り取り、コピー、貼り付け、削除、全て選択”が出てくると思うのですが、出来る時と出来ない時があります。どうしてでしょう? 具体的に説明しますと、ライブドアブログで、「投稿したブログを編集」⇒「変更したい記事をクリック」で表示した文字を、左ドラック反転、右クリックでメニュー表示させると、“前に戻る、全て選択、貼り付け、ショートカットの作成…”という大きなメニューが出てきてしまい、“元に戻す、切り取り、コピー、貼り付け、削除、全て選択”の小さなメニューが出てきません。出来る時と出来ない時があるので、右クリック禁止という訳ではないと思います。ちなみに、Ctrl+cで削除はできました。 ちょっとした疑問ですので、時間に余裕のある方、よろしくお願いします。

  • コピーなどの禁止

    JavaScriptでコピー禁止のためなどで右クリックを禁止したのですが、コピーする方法はいくらでもあります↓ 完璧にコピーや印刷を禁止することはできますか?

  • エクセルなどのメニュー表示時の()の中の意味は?

    エクセルなどの右クリックで表示されるメニューの()の中の英数字は、何かの意味があるのでしょうか? たとえば印刷であれば、ファイル(F)→印刷(P)となっていて、右端にCtrl+Pとショートカットが記載されていますが、 記載されていないページ設定(U)...や、印刷範囲(T)とプロパティ(T)などの()の中の意味がわかりません。 一番困るのは、エクセル2003右クリックで表示されるメニューの中に、 コピー(C)とリストの作成(C)...があり、右クリック+Cでコピーのところがアクティブになりますが選択→決定されません。 アドバイスよろしくお願いします。

  • 右クリックの表示が遅い

    私のパソコンは ぺんちあむ3の800メガ  メモリ128メガです。  右クリックすると現われるショートカットメニューが、 表示されるまで4秒かかります。  コピーアンドペーストにえらく時間が必要です。    ショートカットキーの Ctrl+Cとかならすぐに反応してくれていいのですけどね。  どうして右クリックのメニュー表示に時間かかるのでしょうか? 改善するには、どうすればよろしいでしょうか?  よろしく御願いします。

  • 右クリックの「送る」でデスクトップに移動もしくはコピーする方法

    右クリックでの「送る」メニューに「デスクトップ(ショートカットを作成)」とありますが、ショートカットの作成ではなくて、ファイルそのものを移動したり、コピーする方法はあるのでしょうか?

  • 画像をコピー禁止にしたい場合

    HPを作成して、その画像をコピー禁止にしたい場合は どうしたらよいでしょうか。 画像の上で右クリックをして、コピー禁止ですと 現れるようにしたいです。 なるべく分かりやすい方法がよいのでお願いします。 難しい言葉はよく分かりません。

  • コピーがおかしい

    コピーがおかしい Ctrl+Cでコピー操作をしますが突然出来なくなりました 右クリックでは出来ます 何故なんでしょう

  • PDFファイルのコピー禁止

    会社で、情報系の部署で仕事をしております。 ユーザー(社員)に頼まれて、Adobe(5.0)を使用してPDFファイル(内容は図面)を作成しました。 この作成したファイルは社内のネットワークドライブにあり、同じ部内の人は見ることが出来ます。 しかし、内容変更や印刷はさせたくなく、あくまで「見るだけ」にしたいそうです。 そこで、Adobeのセキュリティ機能で内容のコピーや印刷を禁止にしました。 実際に印刷等は禁止にすることができました。 しかし、ファイル自体のコピー、 たとえば、ファイルを右クリックして出てくるメニューからのコピー、は、 出来てしまいます。 これを禁止するにはどうすればよいのでしょうか? また、Adobeのセキュリティで設定したコピーの禁止は、 内容の文章中の文や絵のコピー、という解釈でよろしいのでしょうか? よろしくお願いします。

  • ExcelのデータをコピーでACCESSに貼り付けできない(ACCESS2007)

    ACCESS2007、EXCEL2007を使ってます。 ACCESSで作成したテーブルにデータを格納するときに、 Excelで作成したものを必要な部分のみコピーして ACCESSに貼り付けたいのですが、うまくいきません。 フィールドの個数やデータ型は合っています。 手順は、 Excel側でACCESSのフィールドと同じ個数の列だけ選択して、コピー。 ACCESS側でテーブルの左端の*印を選択して右クリックの「貼り付け」。 ACCESS2000とかでは普通にできていたのですが、 できなくなったのでしょうか? ウィザードを使うのは結構面倒なので、この方法がいいのですが、やり方がおかしいでしょうか? ちなみに、ウィザードを使ってみたのですが、この場合もExcel側でフィールド名が一致していないとインポートできなかったのですが、そうなのでしょうか?