- 締切済み
エクセル VBA不良率算出について
大変悩んでおり、質問させてもらいました。 内容ですが、エクセルにて不良率を出しているのですが、たまに計算式を消されるトラブルが発生いたしまして、解消にむけVBAにて自動で不良率を出したいと考えております。 不良率を出したいのは2箇所でして。 例としてはセル Dの35に検査数 Dの36に不良数 Dの37に不良率1 続いてYの35に検査数 Zの35に不良数 AAの35に不良率2 以下の条件でマクロ組めませんか アドバイス願います
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- keithin
- ベストアンサー率66% (5278/7941)
具体的な計算式が不明ですが。 >たまに計算式を消される 手順: シート名タブを右クリック、コードの表示を選ぶ 現れたシートに下記をコピー貼り付ける private sub Worksheet_Change(byval Target as excel.range) application.enableevents = false if not application.intersect(target, range("D37")) is nothing then range("D37").formula = "=D36/D35" if not application.intersect(target, range("AA35")) is nothing then range("AA35").formula = "=Z35/Y35" application.enableevents = true end sub ファイルメニューから終了してエクセルに戻る D37やAA35に何かされると、自動で復元する。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! >たまに計算式を消されるトラブルが発生いたしまして・・・ 単に数式が入っているセル(D37・AA35)の数式が消えなければ良いのでしょうか? そうであればわざわざVBAにする必要はなく、「シートの保護」ではダメですか? Excel2007以降のバージョンをお使いだとすると まずSheet全体を選択(行番号「1」の上のマスをクリック) → Sheet上で右クリック → セルの書式設定 → 「保護」タブ → 「ロック」のチェックを外しておきます。 次にCtrlキーを押しながら D37セルとAA35セルを選択 → 右クリック → セルの書式設定 → 「保護」タブで 「ロック」にチェックを入れます。 最後にメニュー → 校閲 → シートの保護 → (必要に応じてパスワードを設定) → OK これでD37・AA35セルは編集できなくなりますので、これで用を足すのではないでしょうか? ※ パスワードを設定した場合は忘れないようにしてください。m(_ _)m