Excel VBA 質問スレッド №848 (未解決)

アプリケーション定義またはオブジェクト定義エラーについて

投稿者 : みさこ     投稿日時 : 2022/07/04(Mon) 09:46:21     OS : 未指定     EXCEL : 未指定
セルを結合するコードを書いていますが、
Range("A" & j - 1 & ":A" & j).Mergeで
「アプリケーション定義またはオブジェクト定義エラー」となってしまいます。
ただし、実行すると、セルはしっかりと結合されております。

何が悪いのか見当がつかない状態です。

Option Explicit
Option Base 1

sub test()

    Dim j As Long

    lastRow = Cells(Rows.Count, 1).End(xlUp).Row
    
    Application.DisplayAlerts = False
    
    For j = lastRow To 1 Step -1
        If Cells(j, "A") = Cells(j - 1, "A") Then
            Range("A" & j - 1 & ":A" & j).Merge 'ここでエラー
        End If
    Next

end sub

スポンサーリンク
[返信 1] Re : アプリケーション定義またはオブジェクト定義エラーについて
投稿者 : 14号     投稿日時 : 2022/07/04(Mon) 10:10:36
Forループの制御変数 j が j=1 のとき
Cells(j - 1, "A")
Range("A" & j - 1 & ":A" & j)
がどこのセルになるのか確認してください

[返信 2] Re : アプリケーション定義またはオブジェクト定義エラーについて
投稿者 : てらてら     投稿日時 : 2022/07/04(Mon) 13:26:50
こんにちは。

Cells(j - 1, "A") で j は 1より大きくなくてはいけません。



Sub test()

    Dim j As Long
    
    lastRow = Cells(Rows.Count, 1).End(xlUp).Row
    
    Application.DisplayAlerts = False
    
    For j = lastRow To 1 Step -1
        If j > 1 Then
            If Cells(j, "A") = Cells(j - 1, "A") Then
                Range("A" & j - 1 & ":A" & j).Merge 
            End If
        End If
    Next

End Sub

[返信 3] Re : アプリケーション定義またはオブジェクト定義エラーについて
投稿者 : 名無し     投稿日時 : 2022/07/18(Mon) 02:01:50
存在しないオブジェクトを比較対象にしているわけです。
つまりループさせるのは2行目までということです。

当掲示板について
  • Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
  • 記事内ではHTMLのタグは使用できません。
  • 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
  • Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
  • Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
お 名 前  :
内  容   :

ステータス  :

認証コード  : キャプチャ画像 




( 処理日時 : 2025-10-22 15:25:02 )
タイトルとURLをコピーしました