• ベストアンサー

Excelで書式の変更を禁止しデータ入力だけ許可したい

Excelでsheetのデータ入力だけを許可し、書式の変更はできないように したいファイルがあります。 "保護"機能を使ってできると思っていたのですが、たしかに直接そのsheet中の セルの書式を変更することはできないのですが、他のsheetのセルをコピーして 保護対象のsheetにそれを貼り付けることによって、書式が変更されてしまいます。 このようなケースでも、貼り付けを禁止するとか貼り付けても書式が変更されない ようにするためにはどのようにすればよいでしょうか。 よろしくお願いいたします。

  • 044128
  • お礼率65% (117/180)

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 二つの方法があると思いますよ。 簡単な方法は、コピーしたら、貼り付ける場所で、右クリックで、値貼り付けにするわけです。もう1つは、マクロです。多少、変った特徴のあるマクロです。 '標準モジュールに設定してください。 '一旦、ファイルを閉じて、再び開けるか、SettingKey マクロを実行することで、設定されます。 Sub myPaste() '値貼り付けのマクロ On Error Resume Next ActiveSheet.PasteSpecial Format:="テキスト" If Err() > 0 Then ActiveCell.PasteSpecial (xlPasteValues) End If End Sub Sub SettingKey() 'キー設定 Ctrl + V Application.OnKey "^v", "myPaste" End Sub Sub SettingOffKey() '設定解除 Application.OnKey "^v" End Sub Sub Auto_Open() '開けた時に設定 Call SettingKey End Sub Sub Auto_Close() '閉じた時に解除 Call SettingOffKey End Sub 値貼り付け=テキスト貼り付けになっていますから、ペースト側の書式をそのまま受け継ぎ、コピー側の書式情報は、全てなくなっています。ただ、この設定されたブックをあけておくと、現在の設定では、全てに同じように適用されますので、書式もコピーしたい場合、メニューから編集-貼り付けを使ってください。ショートカットのCtrl + V に、特殊な設定がされています。なお、インターネットサイトからの貼り付けも、値貼り付けになります。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

XXを禁止するという場合、 (1)XXを行ったとき、システムやエクセルから知らせもらって無効にする (2)もともとできないようにする。 があるが(1)はそういうイベント通知をしてもらえい、VBAで捉えられないとどうにもなりません。 (2)は手動操作では、メニューになければ、どうしようもありません。エクセルはまだまだ、自分が作って使うという使い方が前提で他人が触るのを禁止するという観点から作りこんでないと思うので、こういうニーズには対応できてません。 本格的な業務システムでは、フォームなどに、必要なものだけ出し、余分なことは、触れたり、変えられないようになってます。エクセルほど、そのソフトができることを全部、前(画面)にぶちまけてません。 どちらかといえば、メニューを非表示にするとかで、質問とは違うが、対応できることがあれば、検討事項でないでしょうか。

関連するQ&A

  • Excelのセルの書式設定

    お世話になっております。 EXCEL2002で作成したワークシートをEXCEL2000で 参照すると、セルの書式設定ができないという事象が 発生しています。 (1)ワークシート作成 (2)「セルの書式設定」で、「保護」タブからロックの  チェックボックスを外す (3)ツール→保護→シートの保護 で、ワークシートを  保護。このとき、セルの書式設定については全ての  ユーザに変更許可にチェック (4)このファイルをEXCEL2000で開くと、セルの書式  設定が選択できない なお、同じファイルをEXCEL2002で開くと、問題なく 設定変更が行えます。 上記事象の対応方法について何か情報をお持ちの方 ご教授下さい。

  • エクセルで書式のコピー貼り付けを行うと貼り付けられた部分の書式が変更さ

    エクセルで書式のコピー貼り付けを行うと貼り付けられた部分の書式が変更されてしまうため、コピーと貼り付けができないようにするため、ネットで調べてコードを試していました。(結局実力がないためできませんでした。)あとで気がついたのですが、シート上でショートカットメニューを使ってコピー貼り付けを行ってみたら、その中の貼り付けのアイコンと文字だけが薄くなっていて貼り付けができない状態になっていました。エクセルの他の場所にある貼り付けアイコンやショートカットキー(Ctr+V)等では正常に行えます。ショートカットメニュー内の貼り付けはどんなコードを実行すれば有効にして回復させることができるのでしょうか。よろしくお願いいたします。(エクセル2007を使用です。)

  • セルの書式の変更を特定のセル範囲だけに限定

    エクセルでワークシートの保護をするときに、すべてのユーザーに許可する項目を選べるのは存じています。セルの書式もその一つです。 ただ、そうした場合、シート全体に対して書式設定の変更が可能になってしまします。 質問は、セルの書式の変更をある一定のセル範囲だけに限定できないかということです。ご教示ください。

  • Excelのセル書式をロックする方法がありますか。

    Excelにデーターを入力して書式(文字色または塗りつぶし) を変更して確認していきたいのですが、その変更は自分だけ 可能としたいのです。 シートにパスワードを設定しても書式の変更ができてしまう ようですし、また、色を付けたセルのコピーもできてしまう ようで、他の人も変更できてしまいます。 自分だけしか書式変更をできなく制限する方法があればを教 えてください。

  • Excel 関数を使ってデータと一緒にその書式もコピーしたいのですが・・・

    自分で調べてみたのですが、どうしても見つからず、 こちらで質問することにしました。 仕事でExcelを使って、見積書と請求書を作成しています。 シート1で見積書、シート2で請求書とし、 見積書を入力すると、シート2の請求書に内容がコピーされるように 試行錯誤して関数等でやっていたのですが、 セルの中身のデータはそのまま表示できるのですが、 書式はコピーできず、困っています。 たとえば、 シート1のA1に赤字でセンタリングして、”あ”と入力すると、 当方のやり方では、シート2のA1には、 デフォルトで黒字で左詰めで”あ”と表示されるだけなのです。 ”あ”というデータだけがコピーされている状態になってしまいます。 見積書と請求書のフォーマットを作っているので、 見積書の内容はその都度、書式変更等するので、 シート2にあらかじめ設定しておくこともできないのです。 これを解決するには、どのような関数を設定すればいいのでしょうか? どうか、教えてください。

  • エクセル/グラフのデータテーブルの書式変更は?

    検索してみましたが類似の質問が見あたらなかったので・・・。 バージョンは2000を使用中です。 エクセルでグラフを作り,グラフ下にデータテーブルを表示させたとき,そのデータテーブル自体の書式はどこで編集するのでしょうか? シートの書式を変更してもデータテーブルには反映されないようですし・・・ましてやワード内にリンクさせたときには,全く違う書式になってしまいます。なぜでしょう?具体的には (1)シート上でのセルの書式を,セル内右寄せ・小数点ありにしても,グラフのデータテーブルでは小数点はあるがセル内中央に表示される。 (2)このグラフをデータテーブルごとワード内にリンク表示させると,小数点も出ずセル内でも中央に表示される。 結論としては,エクセルのグラフをワードにリンク表示させたとき,そのデータテーブルの書式が小数点あり・セル内右寄せに表示させたいのですが,データテーブルの書式は一体どこで変更するのか分からず困っております。(ヘルプにもないし) どなたか解決方ご存知の方,又は解決法の載っているサイトご存知の方いらっしゃったら,教えてください。

  • エクセルの特定のセルを書き込み禁止にする方法

    EXCEL2007、XPです。 セルの保護を次の手順でやりました。 1)保護するセルを範囲選択して、校閲~変更を許可する~ウィザードで範囲名と範囲を入力。 2)書式で「シートの保護」 **************** ところが、やってみると、保護されるセルと、保護されないセルの両方がランダム的に表れます。 つまり、危なっかしくて、セルの保護はできないことになります。 なにか間違っているのでしょうか。教えてください。お願いします。

  • エクセルで、書式+データーの貼り付け方法

    Excelのバージョン:2000 セルA1をB1に貼り付ける場合、A1で右クリックしコピー、B1で右クリックし貼り付けでデーターと書式が貼り付けられる。 また、B1に=A1 リターンキーで、データーは貼り付けられるが塗るつぶしがなどの書式は張り付かない。 関数などいろいろ探したが良い方法が見つかりません。 データーと書式共に貼り付ける良い方法を教えてください。

  • シートの保護をしていないセルの書式変更

    関数が入力されているセルのみ下記の方法でシートの保護をしたのですが、その後メニューから[書式]→[セル]が選択できなくなりました。 確かに保護されていないセルに対して数字や文字を入力したり消したり自由にできるのですが、フォントの色を変えたりフォントの大きさを変えたりできなくなりました。 一部でもどこかにシートの保護をしている場合、保護をしていないセルに対してフォントの変更はできなくなってしまうんでしょうか? もしシートの保護がされていないセルに対してフォントの変更等ができる方法があれば教えて下さい。Excelは98です。よろしくお願いします 1.セルをすべて選択する 2.メニューから[書式]→[セル]を選択する 3.[保護]タブの[ロック]のチェックをオフにする 4.メニュー[編集]→[ジャンプ]をクリックする 5.[セル選択]ボタンをクリックする 6.[数式]オプションのチェックをオンにする 7.メニューから[書式]→[セル]を選択 8.[保護]タブの[ロック]のチェックをオンにする 9.メニューから[ツール]→[保護]→[シートの保護]をクリックする 10.OK

  • Excel2000でセルの書式設定を変更させたくない

    Excel2000でセルの書式設定を変更させたくない Excel2000を使用しています。 Excel2002?以降では、書式設定を保護できるらしいですが、2000ではそのような機能がありません。でも、データを貼り付けた際に書式設定を変更させたくないのですが、何か方法がありますでしょうか? 具体的には、シート内のある範囲内(B3-F43)までを書式設定で「縮小して全体を表示」に設定してあり、「折り返して全体を表示する」のチェックを外してセル1行で表示するよう設定しています。 ここに改行付きの文字列データをコピーして貼り付けると、「折り返して全体を表示する」に勝手にチェックが入ってセル1行では表示しきれなくなり、文字全体が読めなくなるのですが、この勝手にチェックされてしまう「折り返して全体を表示する」のチェックをマクロを使って、自動で外す方法とかありますでしょうか? とりあえず現状は貼り付け前に一度、テキストエディタで改行を削除する編集をしてからデータを貼り付けるようにしてるのですが、面倒なのでできれば改行付きデータを直接Excelに貼り付けても「折り返して全体を表示する」にチェックが入らないようにしたいのです。 マクロの知識はまったくないので、どなたかお知恵を貸していただけないでしょうか? 現在、他の件でマクロを教えていただいて、Thisworkbookという所に、Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)とかいうマクロを記述してあります。 Excelデータを上書きセーブする際にこのマクロが走るようなんですが、これに追記する形で、B3からF43までのセルの書式設定の「折り返して全体を表示する」のチェックを強制的に外すことができると助かるのですが。 同じシート内に、「折り返して全体を表示する」を使用しているセルもあるので、シート全体の書式設定を変えてしまうのではなく、あくまでB3からF43までの範囲のセルで設定したいのですが、こういうことはマクロで可能なのでしょうか?

専門家に質問してみよう