- ベストアンサー
エクセルの連続処理について
- エクセルの連続処理について教えてください。連続処理による合格不合格の判定方法がわかりません。
- エクセルのマクロを使用して連続処理を行っていますが、セルの参照結果が正しく表示されない問題が発生しています。原因を教えてください。
- 連続処理を行う際に、セルの参照結果が一部表示されない問題が発生しています。どこに問題があるのか教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
何がおかしいか、以前におかしいところを見つけるにはどうするか、です。 おかしい所をズバリ教えたところで、そこに行き着くまでの過程も理解しないと同じ失敗プログラミングをしそうです。 1行ずつのステップ実行のやり方を覚えること。 行が1のときから2になるまでの間、何が実行されますか。ここに着目すると解けます。Valueの設定タイミングを見直しする。
その他の回答 (2)
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! すでに解決しているみたいなので、余計なお世話になるかもしれませんが・・・ 色々やり方はあるかと思いますが、もっと簡単に Sub test() Dim i As Long For i = 1 To Cells(Rows.Count, 7).End(xlUp).Row If Cells(i, 7) >= 80 Then Cells(i, 8) = "合格" Else Cells(i, 8) = "不合格" End If Next i End Sub こんな感じでも良いかと思います。 どうも失礼しました。m(__)m
お礼
わざわざありがとうございました。 やりたい事は合格、不合格のように2種類ではなくて ・セルG1の値を見る。 ・20種類の中のどれに該当するか調べる ・該当した種類によって取り決めた内容でセルG1の値の 前後または値と値の間に決められた文字を挿入 ・G列の値があるまで繰り返す ・G列の値が空白で停止 です。
- nattocurry
- ベストアンサー率31% (587/1853)
> Cells(行, 8) = Value この右辺は何ですか? > Select Case True Select Case の次には、普通は変数を置きます。 True を置いてしまうと、常に同じ値になります。 > Case= ....省略.... > Value =....省略.... これ、何ですか? Select Case 構文を勉強し直しましょう。 あと、 モジュールの1行目に、 Option Explicit と書いてますか? これを書くと、宣言されていない変数が使われていた場合に、実行時にエラーになります。 そうすれば、 > Cells(行, 8) = Value > Case= ....省略.... > Value =....省略.... これがエラーになるはずです。
お礼
ありがとうございました。 行 = 1 Do If Cells(行, 7).Value = "" Then Exit Do ’Cells(行, 8) = Value n = Cells(行, 7) Select Case True Case= ....省略.... Value =....省略.... Case= ....省略.... Value =....省略.... Case= ....省略.... Value =....省略.... ----省略---- Case Else Value = n End Select ’Cells(行, 8) = Value 行 = 行 + 1 Loop これで思ったとおり動きました。 >Select Case の次には、普通は変数を置きます。 >True を置いてしまうと、常に同じ値になります。 そのままでキチンと変化しました。??(謎) > Case= ....省略.... > Value =....省略.... すいません。 G列の対象データが10から20なら(Case) 数字の間にみかんと挿入(Value) G列の対象データが21から30なら(Case) 数字の頭にりんごと挿入(Value) と付ける というのを10種類くらい Case= Value = で定義しました。 たとえば 13の場合は1みかん3 24の場合は2りんご4 という具合です。 >モジュールの1行目に、 >Option Explicit >と書いてますか? これがわかりません。また勉強します。 とりあえず、思ったとうりに動いたのでありがとうございました。
補足
すいません。間違えました。 行 = 1 Do If Cells(行, 7).Value = "" Then Exit Do '(動作停止) 'Cells(行, 8) = Value n = Cells(行, 7) Select Case True Case= ....省略.... Value =....省略.... Case= ....省略.... Value =....省略.... Case= ....省略.... Value =....省略.... ----省略---- Case Else Value = n End Select 'ここに移動(動作不良対策) Cells(行, 8) = Value 行 = 行 + 1 Loop
お礼
ありがとうございました。 行 = 1 Do If Cells(行, 7).Value = "" Then Exit Do ’Cells(行, 8) = Value n = Cells(行, 7) Select Case True Case= ....省略.... Value =....省略.... Case= ....省略.... Value =....省略.... Case= ....省略.... Value =....省略.... ----省略---- Case Else Value = n End Select ’Cells(行, 8) = Value 行 = 行 + 1 Loop これで思ったとおり動きました。 ありがとうございました。
補足
すいません。間違えました。 行 = 1 Do If Cells(行, 7).Value = "" Then Exit Do '(動作停止) ’Cells(行, 8) = Value n = Cells(行, 7) Select Case True Case= ....省略.... Value =....省略.... Case= ....省略.... Value =....省略.... Case= ....省略.... Value =....省略.... ----省略---- Case Else Value = n End Select 'ここに移動(動作不良対策) Cells(行, 8) = Value 行 = 行 + 1 Loop