dポイントプレゼントキャンペーン実施中!

大変悩んでおり、質問させてもらいました。
内容ですが、エクセルにて不良率を出しているのですが、たまに計算式を消されるトラブルが発生いたしまして、解消にむけVBAにて自動で不良率を出したいと考えております。

不良率を出したいのは2箇所でして。

例としてはセル Dの35に検査数 Dの36に不良数 Dの37に不良率1 続いてYの35に検査数 Zの35に不良数 AAの35に不良率2
以下の条件でマクロ組めませんか アドバイス願います

A 回答 (2件)

具体的な計算式が不明ですが。




>たまに計算式を消される

手順:
シート名タブを右クリック、コードの表示を選ぶ
現れたシートに下記をコピー貼り付ける

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に何かされると、自動で復元する。
    • good
    • 0

こんばんは!



>たまに計算式を消されるトラブルが発生いたしまして・・・

単に数式が入っているセル(D37・AA35)の数式が消えなければ良いのでしょうか?
そうであればわざわざVBAにする必要はなく、「シートの保護」ではダメですか?

Excel2007以降のバージョンをお使いだとすると
まずSheet全体を選択(行番号「1」の上のマスをクリック) → Sheet上で右クリック → セルの書式設定 → 「保護」タブ → 「ロック」のチェックを外しておきます。
次にCtrlキーを押しながら D37セルとAA35セルを選択 → 右クリック → セルの書式設定 → 「保護」タブで
「ロック」にチェックを入れます。

最後にメニュー → 校閲 → シートの保護 → (必要に応じてパスワードを設定) → OK
これでD37・AA35セルは編集できなくなりますので、これで用を足すのではないでしょうか?

※ パスワードを設定した場合は忘れないようにしてください。m(_ _)m
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!