- ベストアンサー
エクセルでスケジュール表を作成し、貼り付けをマクロで禁止したい
- エクセルで上司のスケジュール表を作成し、特定のセルに年を入れると各月の土日祝日のセルに色が付くように書式設定しています。
- しかし、複数人がスケジュールを入力する際に、貼り付け時に書式も一緒に貼り付けされる問題があります。
- この問題を解決するために、リボンの貼り付け機能を制限するマクロを作成したいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
単にペーストを禁止するだけなら下記方法でどうぞ ■ エクセル ワークシート内のコピー禁止! 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
その他の回答 (1)
- NOBNNN
- ベストアンサー率50% (93/186)
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 は グローバル変数です。 ボタンを押して「はい」と答えた場合のみ、コピーペーストができます。
お礼
早速の返信ありがとうございます。これを参考にやってみます。どうもありがとうございました。