• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:前判断処理 Do untilの動作について)

前判断処理 Do untilの動作について

このQ&Aのポイント
  • Excel2010における前判断処理のDo Untilの動作について教えてください。
  • A7セルから順にA6セルにデータをコピーしてマクロを実行する場合、A9セルが空欄の時にマクロが実行される理由と対処法について教えてください。
  • Do Untilは、条件がそろったらそれ以降は実行されないという性質があるため、A9セルが空欄の場合でもマクロが実行されてしまいます。対処法として、Do Untilの条件文にA9セルが空欄でないことを追加することで、マクロの実行を制御することができます。

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! 憶測ですが・・・ A9セルは空白に見えても何らかのデータが入っている可能性はないでしょうか? 仮にスペースが入っているとか。 試しにデータ範囲を選択して↓のマクロを実行してみてください。 Sub Sample1() Dim c As Range For Each c In Selection If c = "" Then Exit For Next c On Error Resume Next MsgBox c.Address(False, False) End Sub ※ A9セルも範囲指定できていてメッセージボックスに「A9」が表示されない場合は 何らかのデータが入っているコトになります。 ※ 余計なお世話かもしれませんが、 >Do Until Cells(行番号, 1).Value = "" としていますので、 >If Cells(行番号, 1).Value = "" Then Exit Do は不要だと思います。m(_ _)m

3620313
質問者

お礼

補足を入力した後に、ふと気づきました。 A8セルをA6にコピーした後のmacro41の動作で新規シートが作成され、そのシート上でA9セルにデータが入っているのが原因でした。 macro41の前に If Cells(6, 1).Value = "" Then Exit Do でもよかったのですが、かっこ悪いので Do Until Sheets("(5)人別積み上げ").Cells(行番号, 1).Value = "" としました。 ヒントいただきありがとうございました(*^。^*)

3620313
質問者

補足

回答ありがとうございます。 A7:A8セルを選択してSample1実行→変化なし A7:A9セルを選択してSample1実行→A9のポップアップメッセージが表示されます。 A9は空欄だと思います。 If Cells(行番号, 1).Value = "" Then Exit Do は、空欄だったらマクロを実行しないのを徹底したかったのです。 ※ tsumiage2マクロでmacro41をコメントにして実行すると、A6セルはA8の内容で終了します。 しかし、macro41を実行した場合、A6セルは空欄で終了します。 A9セルをA6セルへコピーしているからです。 不思議です? macro41の前に If Cells(6, 1).Value = "" Then Exit Do を追加したらエラー出なくなったので、とりあえずこれで運用します。

すると、全ての回答が全文表示されます。

関連するQ&A