ここから本文です

VBAのDo~Loopについて

sat********さん

2012/3/421:21:45

VBAのDo~Loopについて

以下のプログラムをコンパイルすると

"Loopに対応するDoがありません"

とコンパイルエラーが出てしまいます

ですが自分では原因がわかりません
どなたか分かる方いらっしゃいますか?


------------------------

Sub 打者チェック()
Dim y, dasha, i, a, kiroku
a = 0
i = 0
y = 1
dasha = Worksheets("sheet1").Cells(8, 4)
kiroku = Worksheets("sheet1").Cells(39, 30)

Do While i = 1

If Worksheets("記録").Cells(y, 1) = "" Then
Worksheets("記録").Cells(y, 1).Range
Worksheets("記録").Cells(y, 1).Value = dasha
i = 1

ElseIf Worksheets("記録").Cells(y, 1) = dasha Then
Worksheets("記録").Cells(y, 1).Range
i = 1

Else
Loop

Do While a = 1

If ActiveCell = "" Then
ActiveCell.Range = kiroku
a = 1
Else: ActiveCell.Offset(0, 1).Select

Loop

End Sub

閲覧数:
13,019
回答数:
1

違反報告

ベストアンサーに選ばれた回答

kyo********さん

2012/3/421:52:28

いくつかエラーがありますが、全てエラー回避しなければVBAは動きません。

① 9行目で If を使用していますが、対応する End If がありません。

17行目の Loop 前までに End If を入れます。


② 20行目のコード 『 ActiveCell.Range = kiroku 』 が構文エラーです。

ActiveCell = kiroku などに変更


③ 19行目の If に対応する End if が不存在。

23行目の Loop 前までに End if を挿入。


④ 10行目の 『 Worksheets("記録").Cells(y, 1).Range 』 が構文エラー

行いたい処理が分かりかねます。


⑤ 無限ループ : Do 2カ所

While と Until の使用間違いの可能性があります。





●●● エラーではありませんが、根本的な見直しも必要です。

★ 8行目 『 Do While i = 1 』
① 4行目で i を 0 としている

8行目の i が1である間はループ処理の構文までに i に変化なし

i は 0 であり 1 でないために8行目以下の処理は一切なされない

同じく17行目の 『 Do While a = 1 』についても、3行目で a は 0に

a は 0 であり 1 でないため処理は1度もなされない

上記エラーを修正しても、結果として何も処理が行われない



以上、修正してみて下さい。

質問した人からのコメント

2012/3/5 14:50:55

お陰様で解決することが出来ました
ありがとうございました(*´∀`*)

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる