こんばんは。初めまして。
エクセルのVBAマクロに関して、お聞きしたい事があります。
複数の単票を結合して一つの一覧表を作成するツールを
大先輩が作成しました。
私が生まれるより以前から会社に勤めている先輩が作成したので
このツールの精度は完璧です。
問題は、私が作成担当となった単票です。
この単票は、ヘッダー項目と入力可能欄に分かれており
前者は赤や青で色塗りをしており、後者の入力可能項目は白塗りで判る様にしています。
後者のセルのみセルのロックを外し、その上でパス付のシートの保護をしている状態です。
データの入力規則も崩されたくないので、切り取りと貼り付けも禁止するマクロを加えました。
しかし、フィルやクリアでは保護を貫通してしまうので、どうしたものかと悩みました。
そこで
1一旦、セルを全選択して色を(254,254,254)にしてRange.NumberFormatLocalを"@ "にする。
2ヘッダー項目と入力可能欄のみ色を塗り潰し直し、Range.NumberFormatLocalを"@"にする。
3後者の文字以外の項目のRange.NumberFormatLocalを適切なものに変える。
4Worksheet_Changeにてフラグを設けて、
A.入力可能項目の色が白以外またはRange.NumberFormatLocalが"@ "またはエクセルがコピー状態。
B.アンドゥ可能な状態。
ABともに満たした場合は、フラグを建てる。
5フラグが立っている場合はフラグを戻し、アンドゥする
事で防止を図りましたが、
一個上の奴からは【回りくど過ぎる】とダメ出しを食らいました。
他に方法を探りましたが、見つからず。。。
何か上手い知恵がありましたら、お貸し頂きたい次第です。
以上、宜しくお願い致します。
トピ内ID:9754042985