• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA マクロ実行にてエラーが出ますが、原因を教えてください)

VBAマクロ実行時エラーの原因と対策方法

このQ&Aのポイント
  • 下記コードを実行すると、myCell.Selectのところで実行時エラー’91’オブジェクト変数またはWithブロック変数が設定されていません。
  • エラーの原因は、myCell変数がセットされていないためです。
  • 対策として、myCell変数をセットする必要があります。具体的には、Range("A1").CurrentRegionに対してmyCellを設定することでエラーを解消することができます。

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

  • ベストアンサー
  • pkh4989
  • ベストアンサー率62% (162/260)
回答No.1

お早うございます。 以下のように変更してみてください。 Sub test() Dim i As Long Dim myCell As Range With Range("A1").CurrentRegion   For i = 2 To .Rows.Count Step 2     If i = 2 Then       Set myCell = .Rows(i)     Else       Set myCell = Application.Union(myCell, .Rows(i))     End If   Next i End With If Not myCell Is Nothing Then   myCell.Select End If End Sub

VitaminBB
質問者

お礼

回答ありがとうございます。 データが入力されていなかったので、 オリジナルのコードではエラーが出るのですね。 ようやく分かりました。

その他の回答 (1)

  • pkh4989
  • ベストアンサー率62% (162/260)
回答No.2

こんにちは。 エラーの原因について、補足します。 Sub test() Dim i As Long Dim myCell As Range Range("A1").Select '←追加 With Range("A1").CurrentRegion '←これは、使われている行の範囲内のセルが選択の状態になっていないと実現しません。なので、常にセル(A1)を選択すれば、問題ないと思います。   For i = 2 To .Rows.Count Step 2     If i = 2 Then       Set myCell = .Rows(i)     Else       Set myCell = Application.Union(myCell, .Rows(i))     End If   Next i End With If Not myCell Is Nothing Then '←上記の条件に満たない場合、これがないとエラーになります。   myCell.Select End If End Sub

VitaminBB
質問者

お礼

回答ありがとうございます。 NO1さんの回答でエラーは出なくなりました。 下記コードはなくてもうまく行きました。 Range("A1").Select '←追加

関連するQ&A

専門家に質問してみよう