- ベストアンサー
EXCELでセルにN/Aを入力したら決まったセルに入っている数字(文字)が0になるマクロ
たとえば A1セル(固定)にN/Aが入力されたら A2セル~A6セルに入力されている数字または文字が 0(ゼロ)になるマクロは どのようにしたら良いですか? 簡単にできますか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Range("A1") = "N/A" Then Range("A2:A6") = 0 Range("A1") = "" End If End Sub でよいでしょう。A2:A6が数字か文字が入るなら、””の方がよいでしょう。しいて0にしたいならRange("A2:A6") = 0 Range("A1") = "" は、次の入力用に、必要でしょう。消す手間がかかる。 #4の補足 Cells(1, I) = 0 だと列方向に変化するから、そうなる >とびとびの決まったセルだと記述的にどこを変えると Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Range("A1") = "N/A" Then Range("A2:A6,A10:A12,A15") = "" Range("A1") = "" End If End Sub をご参考に。
その他の回答 (4)
- a-gucci
- ベストアンサー率45% (5/11)
#1です N/Aが最後に入力されるとして Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) If Cells(1, 1) = "N/A" Then For I = 2 To 6 Cells(1, I) = 0 Next I End If End Sub でいいと思います。
- S-Fuji
- ベストアンサー率36% (592/1624)
イベント型のマクロを組めばOKです。 Worksheet_Changeのイベントで、セルの値が変化したときにマクロが実行されます。 マクロの中身は、「kanejiro」さんの書いたマクロでOKかと思います。
- kamejiro
- ベストアンサー率28% (136/479)
マクロをボタンに登録しておいて、マクロは If Cells(1,1)="N/A" Then For I=2 to 6 Cells(I,1)=0 Next I End If んな感じでどうですか。 ※思いつきでパタパタとコーディングしたので動作確認はしていません。
お礼
回答ありがとうございます。 ボタンに登録しないで自動でそうなる方法はありませんか? BOOKまたはそのsheet上で自動で N/Aが入力されたら 決まった範囲のセルの値が0になるというマクロなのですが・・・
- a-gucci
- ベストアンサー率45% (5/11)
N/Aの入力とありますが、エラーコードの#N/Aが入っていたらとして の答えになりますが A2~A6のセルに=IF(ERROR.TYPE(A1)=4,CHOOSE(ERROR.TYPE(A1),,,,"0")) といれれば"0"の文字になります。
補足
回答ありがとうございます。 A2~A6のセルには値を入れる予定です。 その値がA1セルにN/A(決まったある文字でもいいです。)が入ると0にリセットされるようにしたいです。 この回答ですとA2~A6には式が入っているため 値を入れることが出来ないので どうしたらいいかと思いました。
お礼
すいません。 なぜだか行方向A2~A6が0になります。 下方向だと違うのですか? もしよかったら、 とびとびの決まったセルだと記述的にどこを変えると対応できますか? 色々教えていただいてすみません。