- ベストアンサー
VBAマクロ実行時エラーの原因と対策方法
- 下記コードを実行すると、myCell.Selectのところで実行時エラー’91’オブジェクト変数またはWithブロック変数が設定されていません。
- エラーの原因は、myCell変数がセットされていないためです。
- 対策として、myCell変数をセットする必要があります。具体的には、Range("A1").CurrentRegionに対してmyCellを設定することでエラーを解消することができます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
お早うございます。 以下のように変更してみてください。 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
その他の回答 (1)
- pkh4989
- ベストアンサー率62% (162/260)
こんにちは。 エラーの原因について、補足します。 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
お礼
回答ありがとうございます。 NO1さんの回答でエラーは出なくなりました。 下記コードはなくてもうまく行きました。 Range("A1").Select '←追加
お礼
回答ありがとうございます。 データが入力されていなかったので、 オリジナルのコードではエラーが出るのですね。 ようやく分かりました。