プロが教えるわが家の防犯対策術!

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

A 回答 (2件)

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



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

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/vs …

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

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

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 は グローバル変数です。

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

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

お礼日時:2010/01/07 21:45

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

このQ&Aを見た人はこんなQ&Aも見ています