VBATips

入力規則設定時、実行時エラー1004の対処方法【ExcelVBA】

入力規則設定時、実行時エラー1004が出てしまう

入力規則の設定が正常にできない場合があります。
インターネットで調べると、入力規則の削除(Delete) や ワークシートの保護解除(Unprotect)の記載を
すぐに見つける事が出来ますが、それでも対処できない場合があります。
----------------------------------
実行時エラー1004「アプリケーション定義またはオブジェクト定義のエラーです。」
----------------------------------

入力規則設定時、実行時エラー1004が発生する原因

オートシェイプなどを選択するなどして、ワークシート上にフォーカスがない場合、
実行時エラー1004が発生します。

'■入力規則設定時、実行時エラー1004「アプリケーション定義またはオブジェクト定義のエラーです。」が発生するコード
Public Sub sample()
    '■ワークシートの保護解除
    ActiveSheet.Unprotect

    '■オートシェイプを選択する
    ActiveSheet.Shapes("正方形/長方形 1").Select
    
    '■入力規則のDeleteや シートのUnprotectをしてもエラーが発生する
    With Range("A1").Validation
        .Delete
        .Add Type:=xlValidateList, Formula1:="1,2,3,4,5"
    End With
    '実行時エラー1004「アプリケーション定義またはオブジェクト定義のエラーです。」
End Sub

入力規則の設定時、実行時エラー1004の対処方法

セルをSelectActivateでワークシートにフォーカスを与えましょう。

Public Sub sample()
    '■ワークシートの保護解除
    ActiveSheet.Unprotect

    '■オートシェイプを選択する
    ActiveSheet.Shapes("正方形/長方形 1").Select

    '■ワークシートにフォーカスを与える(入力規則設定時のエラー回避)
    Range("A1").Select

    '■実行時エラーが発生しない
    With Range("A1").Validation
        .Delete
        .Add Type:=xlValidateList, Formula1:="1,2,3,4,5"
    End With
End Sub

注意点

  • 特にありません。

関連記事

コメント

タイトルとURLをコピーしました