エクセルVBAマクロで質問があります。

レス6
(トピ主1
お気に入り32

キャリア・職場

アマポーラ

こんばんは。初めまして。
エクセルのVBAマクロに関して、お聞きしたい事があります。

複数の単票を結合して一つの一覧表を作成するツールを
大先輩が作成しました。

私が生まれるより以前から会社に勤めている先輩が作成したので
このツールの精度は完璧です。

問題は、私が作成担当となった単票です。
この単票は、ヘッダー項目と入力可能欄に分かれており
前者は赤や青で色塗りをしており、後者の入力可能項目は白塗りで判る様にしています。
後者のセルのみセルのロックを外し、その上でパス付のシートの保護をしている状態です。
データの入力規則も崩されたくないので、切り取りと貼り付けも禁止するマクロを加えました。

しかし、フィルやクリアでは保護を貫通してしまうので、どうしたものかと悩みました。
そこで
1一旦、セルを全選択して色を(254,254,254)にしてRange.NumberFormatLocalを"@ "にする。
2ヘッダー項目と入力可能欄のみ色を塗り潰し直し、Range.NumberFormatLocalを"@"にする。
3後者の文字以外の項目のRange.NumberFormatLocalを適切なものに変える。
4Worksheet_Changeにてフラグを設けて、
 A.入力可能項目の色が白以外またはRange.NumberFormatLocalが"@ "またはエクセルがコピー状態。
 B.アンドゥ可能な状態。
ABともに満たした場合は、フラグを建てる。
5フラグが立っている場合はフラグを戻し、アンドゥする
事で防止を図りましたが、
一個上の奴からは【回りくど過ぎる】とダメ出しを食らいました。

他に方法を探りましたが、見つからず。。。
何か上手い知恵がありましたら、お貸し頂きたい次第です。

以上、宜しくお願い致します。

ユーザーID:9754042985

これポチに投票しよう!

ランキング
  • 0
  • 0
  • 0
  • 0
  • 0
  • 面白い
  • びっくり
  • 涙ぽろり
  • エール

このトピをシェアする

Twitterでシェア facebookでシェア LINEでシェア はてなブログでシェア

レス

レス数6

レスする
このトピックはレスの投稿受け付けを終了しました
  • ええと

    そもそもの使用者と、それに伴い求める制約の強さが見えてこない。
    使用する環境を説明してください。

    社内で限られたルール、運用下で使用するならシステム側でどこまで対策する必要があるか、想定した後に判断するべきでは?

    その方法が今後長きにわたり変更が加わらないなら良いのですが。
    仮にそれが日常的な作業に必須だとし、アウトプットが会社の都合などで変更になった。
    とっさにハンド対応する際に制約ばかりでイレギュラー対応に全部システム作成者が手を加えないと進めないでは、ある意味脆弱ですよ。

    完璧に保護しないとミスばかり起きる環境なのでしょうか?
    そしてそれはチェックされずに後工程に多大な被害を及ぼす形なのですか?

    ユーザーID:6525475899

  • 私だったら...

    私だったら...
    1.Worksheet_ChangeのTarget.Addressで入力セルに該当するかを確認
    2.入力セルでなければ処理(元に戻す?)
    と、しておくと思います。

    特定のセル範囲に含まれるか否かは、Intersectで確認できます。
    Targetが1つのセルか、複数のセルなのかを見分ける処理
    If Target.Count > 1 Then
    も入れておいたほうが良いと思います。
    小町は文字数制限で詳しく説明できないので、詳しいコードの書き方は専門のサイトを除いてみてください。

    入力セルが移動する可能性(行列の削除/挿入)があるのであれば、それにも対応させないと後々問題になる可能性もあります。

    あと、セルの背景色を白にするのはいろいろ無駄です。
    If Target.Interior.Pattern = xlNone Then
    でセルの背景色の有無は確認できます。
    上記の場合、無色はTrue、白を含む有色はFalseを返します。


    ぜひぜひ良いモノを完成させてください。応援しています。

    ユーザーID:9634097586

  • 回答でなく申し訳ないですが

    回答しようと思ったのですが、こちらのサイトは文字数制限が500字のうえ、画像の添付や、他サイトへのリンクなど、説明しづらいので、私の力量では、うまく回答できそうにありません。
    他のジャンルが細かく分かれているサイトでお尋ねになった方がより問い回答を得られると思います。

    お尋ねの件は、多くの職場でありそうなことなので、エキスパートの方の回答を期待しています。

    ユーザーID:3360904738

  • 周知と教育を。

    なにやら難しそうだが興味深いのに意味がわからないぞ、と読ませて頂きました。文章についても、まわりくどいという指摘に同感です。

    大先輩の作成したものへ読み込ませるための入力フォームを作成することとなった。がしかし、自分では「ココのところ注意!」とわかるようにしたと思っても、結局は入力者のミスにより壊れるのが嫌だ。ということですね?

    その大先輩が作成したものが完璧なのは、何故でしょう?ガードが固いからでしょうか?

    入力する人には、操作の際の注意点がわかるように別途マニュアルを作成する。操作について壊されそうな不安があれば、教育する。どの様な入力がしやすいか、聴き取りをする。では足りませんか?

    確かに、苦手なのに(だからこそでしょうが)コピペを活用して、本人は要領よく時短したつもりでいて、実際は元の規則を滅茶滅茶にする人がいる、ということは少なくないので、頭を抱える点ですが、大先輩や同僚など、実際の現場を知る人で相談出来る人はいませんか?

    わかる人なら、あー・これこうしちゃったね。そういう理由でこう作ってあるんだね。など、助けてくれたり、引き継いでも理解したりがあるはずです。

    ユーザーID:9827573493

  • ありがとうございます!

    こんばんは。
    返信が遅くなってしまい申し訳ありません。

    皆さん、貴重なご意見ありがとうございました。
    特にヒミコとオロチ様のアイデアは大いに参考にさせて頂きます。
    小社の、私が在籍するグループは背景色に'塗り潰し無し'がNGである鉄の掟があるので
    そこ以外でご容赦下さい。

    シングルコーテーションの対策は
    workbook_openでの処理追加(隠しカラムを用意して罫線及び書式有り真っ新なセルから入力可能セルへ貼り付ける)でOKです。

    まずは私の単票を完全なものにするのが何より優先すべき事です。
    大先輩の品質を疑うのはその後でも遅くは無いとおもいます。
    回りくどいって言った奴には【じゃあお前がやりなよ】ってその場は言ってやりましたが
    責任放棄は良くないので、最後まで全うしたいです。

    以上です。

    ユーザーID:9754042985

  • キャリア・職場ランキング

    一覧
  • なんだか大変そう

    〉私が在籍するグループは背景色に'塗り潰し無し'がNGである鉄の掟があるので...

    ありゃま。大変ですね。。。
    他にも鉄の掟がありそうな気配。
    お疲れさまです。

    ともあれ。
    頑張ってください。

    ユーザーID:9634097586

あなたも書いてみませんか?

  • 他人への誹謗中傷は禁止しているので安心
  • 不愉快・いかがわしい表現掲載されません
  • 匿名で楽しめるので、特定されません
[詳しいルールを確認する]
レス求!トピ一覧