プロが教える店舗&オフィスのセキュリティ対策術

Word2013でコピー、切り取り、貼り付けを禁止する方法 (通常の入力作業は可) をご存知でしたら教えてください。可能であればサンプルコードを提示頂けると助かります、

質問者からの補足コメント

  • 質問者です。

    enunokokoroさん2度に渡り、ご回答頂き有難うございます。
    ご指摘の通り、アドインorテンプレートにコマンドマクロを登録し、チェックのOn/Offもしくは、テンプレートから外すことで、望んでいたコピペ禁止の仕様が実現できました。

    おそらくこれで最後の質問になると思いますが、この仕様を実装したファイルを他のユーザーに展開した場合、当該ユーザーにて同様に機能のOn/Off、テンプレートから外す等が可能となってしまうかと思いますが、これを禁止する方法はございますか?(自分以外が当該機能のon/offを操作させたくない)
    何度も質問してしまい大変恐縮です。

    No.2の回答に寄せられた補足コメントです。 補足日時:2018/07/10 11:04

A 回答 (3件)

No.1の回答者です。



> この仕様を実装したファイルを他のユーザーに展開
マクロやアドインを有効にするのは、ユーザー側で判断するもので
あり、発行者側では制限するのは難しいと思います。
セキュリティが厳しい環境ならば、外部のマクロなどは無効にする
のが基本ですからね。
https://support.office.com/ja-jp/article/Office- …

どうしても、マクロを有効にしてもらうのならば、[編集の制限]を
[変更不可(読み取り専用)]にして、パスワード付きにすることで
保護の中止を促すぐらいですね。
パスワードによる解除は。はマクロでの設定のみにすれば、保護の
解除のためにマクロを有効にしてくれるのではないでしょうか?
https://msdn.microsoft.com/ja-jp/vba/word-vba/ar …
    • good
    • 0
この回答へのお礼

enunokokoroさん

3度に渡り、丁寧にご回答いただきありがとうございました。お蔭様で解決できました。

お礼日時:2018/07/15 00:55

No.1の回答者です。



Wordにおけるコマンドマクロを理解していないと、対応方法などの
見当がつかないかもしれませんね。
https://www.ka-net.org/blog/?p=2194

Wordでは、リボン上などにある各コマンドを編集することができる
ようになっています。
編集したコマンドマクロを保存する先で動作が変わります。

初期のコマンドはWordそのものが制御しますが、標準テンプレート
にコマンド名で登録すると、優先的にコマンドマクロとして実行し
Wordの機能を横取りします。

コマンドマクロの保存先の優先順位は、以下のようになります。

1.作業中の文書
2.文書が利用しているテンプレート(Normal,dotmなど)
3.アドインとして使用しているテンプレート
4.組み込みのコマンド(初期のコマンドとしての動作)

この順序で同名のマクロがあった場合に横取り(インターセプト)
されます。
コマンドマクロも同じで、文書名の標準モジュールが最優先される
ので、特定の文書のみにてマクロ実行されるだけでなく優先で動作
するのです。

そこで、On/Offの制御を他のマクロで行うのではなく、アドインの
チェックで行うことをお勧めします。
http://www.hi-ho.ne.jp/tomita/tips/tips_wd_000.h …

アドインにコマンドマクロを登録。
アドインとして、登録したテンプレートを追加
チェックが付いた状態なら制御された状態になります。
チェックを外せば、組み込みの動作に戻ります。

ちなみに、アドインのチェックもマクロで制御できます。

どうしてもアドインのチェックで対応をしたくないのなら、個々の
コマンドマクロに制御状態を読み込ませる(Callする)などでの
対応になると思います。
(コマンドマクロを呼び出すことはできないので、逆にします)
「Word2013: コピー、切り取り、貼」の回答画像2
この回答への補足あり
    • good
    • 0
この回答へのお礼

enunokokoroさん

ご丁寧に教えて頂き有難うございます。
私のレベルが低すぎて、一回で理解できませんでしたが、仰る方法をなんとか試してみます。ご親切に有難うございます。

お礼日時:2018/07/06 20:22

特定のファイルのみでの禁止ですよね。


その場合は、以下の条件ならば可能だと思います。

単純な[コピー]や[切り取り]なら、Wordの場合は[コマンドマクロ]
を編集することで簡単に制限できますが、外部からの貼り付けなど
は制限するのが面倒です。
(直接の貼り付けではなく[形式を選択して貼り付け]があるので)


サンプルコードは単純です。
文書名の[標準モジュール]などに以下のマクロを登録します。

Sub EditCopy()
End Sub

Sub EditCut()
End Sub

Sub EditPaste()
End Sub

これで[ Ctrl+C ]キーと連動するコピーなどが実行されません。
「EditPaste」などのように「Edit~」の種類も多くありますし、
「Paste~」のようなコマンドも多くあります。
そのすべてを制限するのは大変だと思います。
(試していないので、どのコマンドを編集するのか未検証)
「Word2013: コピー、切り取り、貼」の回答画像1
    • good
    • 0
この回答へのお礼

早々のご返信有難うございました、非常に助かりました。
教えて頂きました内容で、確かに制御できました。

追加の質問で恐縮ですが、上記コードを記載している間は基本的にコピペ等が常にできないかと思います、この制御のOn/Offをマクロ上で実行するにはどうしたらいいですか?別途、On/Offのためのコードを記載して、そこからCallする形でEditxxxを呼び出すようにしたのですが、うまくいかず。。。

お礼日時:2018/07/05 10:26

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