VBA 貼り付け(ペースト)を禁止する方法 ホームページ制作 | 墨田区

VBA 貼り付け(ペースト)を禁止する方法 – Excel

LINEで送る
Pocket

Excel VBA 貼り付け禁止 VBAで貼り付け(ペースト)を禁止する方法をご紹介します。
以前、こちら のページで コピペを禁止する方法 をご紹介しました。
>VBA コピーペースト(コピペ)を禁止する方法 – Excel

以前の方法では、実行している Excel 以外からコピーされた場合、右クリックやリボンで貼り付けができてしまうと説明しました。

今回は、完全に貼り付けができなくなる方法のご紹介です。
ただし、色々と制限がありますので、ご利用の際には十分検討してください。




【PR】マジか?!「アレ」してるLINEスタンプっていったい・・・


貼り付けの禁止方法

以前の コピペを禁止する方法 でもご紹介しましたが、貼り付けコマンドを利用不可にするには、以下を考慮する必要があります。

  • ショートカットキー(Ctrl + V) の制御
  • 右クリックでの貼り付け の制御
  • メニューバー(リボン) での貼り付け の制御

まず、メニューバー(リボン)での貼り付けを制御するには、リボンを非表示にします。
以下のページを参考に、リボンを非表示にしてください。
VBA リボンを非表示にする方法 – Excel, Word, Access
Office Excel リボン非表示 カスタマイズ方法

次に右クリックを制御します。
右クリックできるのは、行選択時列選択時、それと、セル選択時ですね。
これらを全て無効にします。標準モジュールに以下のソースを記載します。

Application.CommandBars("Row").Enabled = False ' 行選択時、右クリック無効
Application.CommandBars("Column").Enabled = False ' 列選択時、右クリック無効
Application.CommandBars("Cell").Enabled = False ' セル選択時、右クリック無効

サンプルソース

ソースの全体を掲載しておきます。標準モジュールに以下のソースを貼り付けてください。

Option Explicit

'**
' オープン
'**
Public Sub Auto_Open()
    ' コピペの制御
    Call CopyPasteCommandControl(False)
End Sub

'**
' クローズ
'**
Public Sub Auto_Close()
    ' コピペの制御
    Call CopyPasteCommandControl(True)
End Sub

'**
' コピー&ペーストの制御
' 引数 true:利用可, false: 利用不可
'**
Public Sub CopyPasteCommandControl(Enabled As Boolean)
    Dim Cmd As Variant
    Dim CmdNames As Variant
    CmdNames = Array("Worksheet Menu Bar", "Cell")
    'ショートカット
    If Enabled = False Then
        Application.OnKey "^c", ""
        Application.OnKey "^v", ""
        Application.OnKey "^x", ""
    Else
        Application.OnKey "^c"
        Application.OnKey "^v"
        Application.OnKey "^x"
    End If
    ' 右クリック禁止
    Application.CommandBars("Row").Enabled = Enabled
    Application.CommandBars("Column").Enabled = Enabled
    Application.CommandBars("Cell").Enabled = Enabled    
 End Sub

Auto_Open() は、マクロが起動された時の最初の動作です。
※マクロを有効にする必要があります。
ここで、ショートカットキーと右クリックを利用不可にします。
Auto_Close() は、ブックを閉じる直前に実行されるマクロです。
ここで、ショートカットキーと右クリックを利用可にします。


これで貼り付けが禁止されました。
しかし、リボンは使えない右クリックも使えないとなると問題も出てきます。
例えば色を付けたり、フォントサイズを変えたりなどの操作ができなくなります。
※計算式などが入っているセルは「シートの保護」保護されているのでしょうが・・・。

リボンはクリップボードだけを非表示にして、ユーザーが利用する必要なものは表示しておくなどの考慮が必要かもしれませんね。

リボンのカスタマイズについては こちら を参照ください。
Office Excel リボン非表示 カスタマイズ方法

おつかれさまでした。

LINEで送る
Pocket

この記事がお役に立ちましたら シェア をお願いいたします。

Office / VBAの勉強が思うように進まないときは!

Office / VBAの勉強が思うように進まないのであれば、プロに直接質問ができる プログラミングスクール を検討してみてはいかがでしょうか?プログラミングスクールに申し込めば、短期間で一定のスキルを身に着けることができます!

Office / VBAコースあり!未経験者にウケてる KENスクール パソコンスクール・パソコン教室 【KENスクール】個別指導のWeb-DTP・OA・IT PCスクール

理解度や学習ペースに合わせて、一人ひとりが納得して前進できる授業を提供してくれるのが特徴です。特に課題製作は現場さながらで、実務に即したものとなっていますので短期でのスキルアップが望めます。自宅学習のサポートも充実していて、授業内容をいつでもビデオで振り返ることができるのもうれしいですね。好きな時間に好きな場所で、無理なくスケジューリングできるので、仕事の忙しい方でも柔軟に学ぶことができますよ。

更にさらに、なんと 就職サポート をしてくれるというのですから驚きです!!

履歴書の書き方から面接指導、求人の紹介など、具体的な就職先まで提案してくれるんです!私も「もっと早く出会いたかったなぁー、こんなスクール」・・・って思っちゃいました^^

東京・神奈川・愛知・大阪を営業エリアとされています。
まずは気軽に 無料体験予約 に申し込んでみるのもアリですよ。


コメントを残す

お名前 (必須)
メールアドレス
(アドレスは公開されません)

コメント(必須)

Trackback URL