こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

貼り付けをマクロで禁止させたい。

エクセルで上司のスケジュール表を作りました。
1シート1か月分で別シートに祝日の関数を用意して特定のセルに年を入れると各月のシートの土日祝日のセルに色が付くように書式設定してあります。
これは私だけではなくほかの数人もスケジュールを入力しているのですが、あまりエクセルが詳しくない人がいて、複数人の上司について同じ予定がある際、コピー&ペーストしてしまうことで書式も一緒に貼り付けされてしまいます。
この質問集の中では同様の質問でペーストのショートカットと右クリックででる貼り付けを潰してしまうマクロが出ていて参考にしたのですが、ツールバー?(2007でいうリボン?)のところの貼り付けは可能のままです。リボンの貼り付けも潰してしまうマクロもしくは形式を選択して貼り付け→値を強制的に行うマクロをご存知の方がいたら教えていただけませんでしょうか?宜しくお願いします。
OSはXP,エクセルは2007をしようしています。 

投稿日時 - 2010-01-05 23:09:02

QNo.5570718

すぐに回答ほしいです

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

単にペーストを禁止するだけなら下記方法でどうぞ

 ■ エクセル ワークシート内のコピー禁止!
   http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1126309526

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If (Application.CutCopyMode <> False) Then
Application.CutCopyMode = False
End If
End Sub

でできます。

>>ツールバー?(2007でいうリボン?)のところの貼り付けは可能のままです。

ただし、質問者さんのいうコントロールを実現するには 別な方法を用いないとできません。

上記の「Application.CutCopyMode = False」はたとえばボタン操作で
ON/OFF を行ったとしても即時に反映されないので 難しいです。
即時に反映する方法があれば別ですけど・・・・

残る方法はクリップボード操作で行う方法だと思います。

■ Excelでのクリップボード禁止の制御方法(MSDN)
 http://social.msdn.microsoft.com/Forums/ja-JP/vstoja/thread/00d3fcc6-c503-488c-b970-44012f73fcf2

■ [AC97] クリップボードから情報を取り出す方法
http://support.microsoft.com/kb/138910/ja

■ Excel マクロ集
http://www.asahi-net.or.jp/~ZN3Y-NGI/YNxv209.html

投稿日時 - 2010-01-06 16:42:58

ANo.1

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

A No.1 です。

訂正します。
 ボタン操作でも可能です。

Private Sub Copyボタン_Click()

Dim F As Integer

F = MsgBox("Copy&Past を有効にしますか?", vbYesNo)

If F = vbYes Then
G_CopyOK = True
Else
G_CopyOK = False
v = Application.ClipboardFormats
End If

Application.CutCopyMode = G_CopyOK
End Sub

G_CopyOK は グローバル変数です。

ボタンを押して「はい」と答えた場合のみ、コピーペーストができます。

投稿日時 - 2010-01-06 16:57:02

お礼

早速の返信ありがとうございます。これを参考にやってみます。どうもありがとうございました。

投稿日時 - 2010-01-07 21:45:31

あなたにオススメの質問