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

締切り済みの質問

数式のみコピー / 書式のみ保護

excel 2003 および 2007 を利用しています。

今、他の人にデータを記入してもらうためのシートを作成しているのですが、なかなかうまくいかないため、質問させていただきます。

シートには既にこちらでシートに条件付き書式を設定しています。
データは相手に入力して貰うのですが、相手がデータを切り取り・貼り付けをするため、条件付き書式も移ってしまうため、表示がめちゃくちゃになってしまいます。

相手の方が、「切り取り・形式を指定して貼り付け→数式」をやってもらえれば良いのですが、これでは相手の方の負担が多くなってしまいます。
そこで、ctrl+Vに[形式を指定して貼り付け→数式]のマクロを貼り付ける方法も考えたのですが、それたとctrl+zによる[元に戻す]も使えなくなってしまいます。
そこで
(1)「数式のみをコピー」のマクロ
(2)書式のみをロックして、条件付き書式および書式をコピーできない用にする方法
(3)ctrl+zも考慮にいれたマクロ
など、方法を考えてみたものの、自分のスキルでは出来ませんでした。
何か良い方法はございますでしょうか?よろしくお願いします。

投稿日時 - 2008-05-30 15:26:55

QNo.4062202

困ってます

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

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

回答(3)

ANo.3

#2。訂正です。

1)書式シートを作る。
空いているシートのシート名を「書式」にする。
データ記入用のシートに戻り、[ctrl]+[A]。
       ↓
1)書式シートを作る。
空いているシートのシート名を「書式」にする。
データ記入用のシートに戻り、[ctrl]+[A]、[ctrl]+[C]。

投稿日時 - 2008-06-01 08:36:38

ANo.2

(1)のセンでの回答です。
基本的にはデータ記入用のシート(シート名「入力」)と、その書式
のみをコピーしたシート(シート名「書式」)を用意し、ブックを保
存する直前に、書式シートの書式のみを入力シートに貼りつける、と
いう手順です。

1)書式シートを作る。
空いているシートのシート名を「書式」にする。
データ記入用のシートに戻り、[ctrl]+[A]。
書式シートでA1セルを選択。
[編集]→[形式を選択して貼り付け]→[書式にチェック]→[OK]

2)マクロを貼りつけ
[Alt]+[F11]でVBAウィンドウを表示し、左側のプロジェクトエクス
プローラーで「ThisWorkbook」をクリック。
右側のエディタエリアに、下記コードを貼りつけ。
Private Sub Workbook_beforesave(ByVal saveAsUi As Boolean, cancelF As Boolean)
Sheets("書式").Select
Cells.Copy
Sheets("入力").Activate
Cells(1, 1).Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End Sub

以上で、入力シートの書式が変更になっても、保存終了時には
書式シートの書式に戻るようになると思います。

投稿日時 - 2008-06-01 08:34:48

ANo.1

条件付書式が必要なのは、ユーザではなく提供側の都合のみの場合は、ユーザには必要箇所のみ入力してもらう為に、他のセルをロックして入力を禁止し、集計段階で、条件付書式のシートを書式のみコピーで反映させるようにしてはいかがでしょう?

当然、必要箇所に必要事項を入力してもらう為の処置なり誘導は必要でしょうけど、やり直しやコピペは考慮しなくて済みます

これ以外だとユーザーフォームを自作するしかないですかね
最後決定ボタンで入力項目がシートに反映するようにして、何らかの方法で中断した場合は値がシートに跳ねないようにすれば、条件付書式もコピペもやり直しも実現できると思います
当然フォームを作るのがメンドクサイですが・・・

投稿日時 - 2008-05-31 01:06:23

あなたにオススメの質問