FAQ
フィールド演算でNull値を代入しようとするとエラーが発生する

ナレッジ番号:5474 | 登録日:2023/07/27 | 更新日:2024/12/02

【概要】

フィールド演算で式"[フィールド名] = is null"を使用してNull値を代入しようとすると以下のエラーが発生します。

“VBAコードの実行時にエラーが発生しました。 : ユーザーによる割り込みです。”


【原因】

フィールド演算を使用してNull値を代入することはできません。
Null値を代入するにはVBAでArcObjectsを利用する必要があります。


【解決策】

以下にNull値を代入するArcObjectsサンプルコードを示します。
Null値はジオデータベースのすべてのフィールド、およびカバレッジやシェープファイルの日付型フィールドでサポートされます。

  1. ArcMapを起動します。

  2. Visual Basic Editorを開きます。

  3. プロジェクト・エクスプローラ・ウィンドウで、Projectの下にあるArcMap Objects > ThisDocumentをダブルクリックし、
    コード・ウィンドウを開きます。

  4. コード・モジュールに次のコードをペーストします。"FieldName"の代わりに、Null値を代入したいフィールド名を指定します。

    Public Sub SetNull()
    
      Dim pDispTab As IDisplayTable
      Dim pMXD As IMxDocument
      Dim pTable As ITable
      Dim pCursor As ICursor
      Dim pRow As IRow
    
      Set pMXD = ThisDocument
      Set pDispTab = pMXD.SelectedItem
      Set pTable = pDispTab.DisplayTable
      Set pCursor = pTable.Search(Nothing, False)
      Set pRow = pCursor.NextRow
    
      Do While Not pRow Is Nothing
        ' FindFieldメソッドの引数に適切なフィールド名を入力してください。
        pRow.Value(pTable.Fields.FindField("FieldName")) = Null
        pRow.Store
        Set pRow = pCursor.NextRow
      Loop
    
    End Sub
    

  5. Visual Basic Editorを閉じます。

  6. TOC内で、Null値を代入するフィールドを持つレイヤをクリックしてアクティブにします。

  7. マクロを実行します。

    A:ArcMapで、ツール > マクロ > マクロと選択し、マクロ・ダイアログを表示します。

    B:マクロを選択し、実行をクリックします。

メタデータ

種類

製品