- ベストアンサー
エクセル2000のマクロで、if文が想定通りに動かない
90から93列目にかけて、データが 0又は3~4桁の数字が入っている状態です。 4810,0,0,2430 以下はマクロの抜粋です。 やりたいことは、0でなければ各変数に1を代入し、95列めに合計を入力します。 If Cells(i, 90) <> 0 Then w = 1 If Cells(i, 91) <> 0 Then x = 1 If Cells(i, 92) <> 0 Then y = 1 If Cells(i, 93) <> 0 Then z = 1 Cells(i, 95).Value = w + x + y + z このマクロを実行しますと、実際には0でない列が2列にもかかわらず、95列目に3と入力されてしまいます。1行ずつ実行してみたら、if文の3行目の92列目の判定が変です。 実行中に、カーソルをかざすとCells(1, 92)=0と表示されるのですが、合計を代入するところの y には1が代入されてしまっています。 何か間違っているんだと思いますが、分かりません。よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
変数の初期化はされています? 恐らくループを回しているのでしょうが、前のループでyの値が1になっているのでは? If Cells(i, 90) <> 0 Then w = 1 の前に w=0 x=0 y=0 z=0 と入れて見てください。
お礼
ご回答ありがとうございます。仰るとおりでした。 たいへん勉強になりました。ありがとうございます。