オフィス街(青)

Microsoft Excelの話題

EXCEL−セルの保護とマクロ機能(2)

 

保護したはずの計算式が壊される.....恐怖の「切り取り(T)」操作

 うまく設定できたと思ったのですが、ある操作を行うと、保護したはずの単価や金額に埋め込んだ計算式が壊れてしまうのです。

「切り取り(T)」操作??.....さっそく実験してみましょう。

A6セルに入力した「団子」。「あ、いけない、団子はひとつ上の行だった!」

ということで、入力の間違いに気が付いて、A6セルを選択し「切り取り(T)」を選びました。

「切り取り(T)」ではなくて「コピー(C)」を選んでくれていたなら、何ら問題は生じないのですが、よりによって「切り取り(T)」という 無謀極まりない操作を....(汗。

一行上のA5セルを選択し、「貼り付け(P)」をすると、さぁどうなったでしょうか?........

単価と金額の欄に、見慣れない文字が.....。
「#REF!」???
A6セルの「団子」を切り取ったせいで、保護したはずのC5セル、D5セルのの計算式が壊れてしまいました
.....○| ̄|_

保護をしていない入力を許可したセルが切り取られ、そのセルが無くなってしまったことで、保護をしているセルに影響が及んでしまうのですね。

さあ、困りました。これを防ぐためにはどうしたらよいのでしょうか。



「切り取り(T)」操作を無効にしてしまう設定をしましょう(マクロ機能の利用


ここから先の設定の操作は、昔のExcel5.0/95とは異なる操作になります。Excel2002を使った場合の設定手順になります。
例えば、Excel2002を使って以下の設定で作ったシートを、Excel5.0/95のソフト環境でも有効に働かせることは、可能ではないかと思います。
ですが、実際に動作確認できる環境が無い為、確認しておりません。
Excel5.0/95のソフト環境で、このマクロ機能の設定を行うための手順は、今回は割愛させていただきます。ご了承ください。


「切り取り(T)」の操作を無効にする設定を行うことができます。
エクセルで利用できる「マクロ機能」というものを使います。
さっそく、マクロ機能を使って「切り取り(T)」ができないようにする設定をしてみましょう。

今回の「商品売上表」は、「Sheet1」という名前のシート上に作られていることを前提に説明します。

「ツール(T)」⇒「マクロ(M)」⇒「Visual Basic Editor(V)」の順に選択します。


「Microsoft Visual Basic」の画面が表示されますので、「Sheet1(Sheet1)」という部分をマウスでダブルクリックしてください。 すると、Sheet1(コード) (General) (Declarations)と表示されたボックスが出てきます。


表示されたボックスの白い部分に、上記のように、5行の式を入力してください。以下のものをコピーして貼り付けて利用していただければよいと思います。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   If Application.CutCopyMode = 2 Then
       Application.CutCopyMode = 0
   End If
End Sub



これで、「切り取り(T)」を防止する設定ができました。

「ファイル(F)」⇒「終了して Microsoft Excel へ戻る(C)」を選び、エクセルへ戻りましょう。



ファイルの保存のときは、「ファイルの種類(T)」を「Microsoft Excel ブック (*.xls)」ではなくて「Microsoft Excel 97-2002 および 5.0/95 ブック (*.xls)」を選択すれば、Excel95のソフト環境でもこの切り取り防止機能は働くのではないかと思います。ですがそちらの確認はできておりません(汗。「Microsoft Excel 97-2002 および 5.0/95 ブック (*.xls)」を選択すると、ファイルサイズは大きくなります。Excel 5.0/95で利用する予定が無ければ、「Microsoft Excel ブック (*.xls)」でよいでしょう。


動作確認をしましょう


「切り取り(T)」できないように、ガードされているでしょうか?実際に操作をしてみてください。

実は「切り取り(T)」の操作はできます.....。「え?それじゃだめじゃん!」ですって??

いえ「切り取り(T)」の操作はできますが、「切り取り(T)」に続けて「貼り付け(P)」はできません。
「コピー(C)」&「貼り付け(P)」はできます。ですが、「切り取り(T)」&「貼り付け(P)」はできません。
但し、同じセルにだけは「切り取り(T)」&「貼り付け(P)」はできます。
A5セルの「団子」を切り取って、同じA5セルになら「貼り付け(P)」はできます。ですが、A5セルの「団子」を切り取って、他のセルへ移動したとたんに、「貼り付け(P)」選択できないようにガードしています。結果として、切り取りはできないようにガードしているのです。これで、保護された計算式が壊されることは回避できます。

完成しましたね。


が、実は、これでもまだ問題点があるのです(汗。
保護をかけたはずの単価(C列)、金額(D列 )の計算式が壊れてしまう現象が....(またですか...)。

<<前に戻る>>続きを読む
 (2008年4月8日)


動け!Windows 」  コンテンツ一覧 >ソフトウエア関連> Excel−セルの保護とマクロ機能


トップページ
コンテンツ一覧

6ヶ月カレンダー
今年のカレンダー
来年のカレンダー
万年カレンダー
西暦の豆知識
リンク