FAQ
パスワードでVisual Basic Editorをロックする方法

ナレッジ番号:5515 | 登録日:2023/07/27 | 更新日:2024/11/21

【概要】

エンド・ユーザがVisual Basic Editorを開いてコードを見たり編集したりすることができないようにするためにICustomizationFilterを使用する方法を示します。


【手順】

  1. ArcMapを起動します。

  2. Visual Basic Editorを開きます。

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

  4. コード・モジュールに以下のコードをペーストします。

    
    
    Private Function MxDocument_OpenDocument() As Boolean
      'すでにロックされている場合のエラーチェックを行います。
      On Error GoTo lockErr
    
      'カスタムCustomizationFilter(MyFilter)を作成します。
      Dim m_CustomFilter As ICustomizationFilter
      Set m_CustomFilter = New MyFilter
    
      'MyFilterを使用してカスタマイズをロックします。
    
    'この例では"MyLOCK"がロックを解除するためのパスワードになります。 Application.LockCustomization "mylock", m_CustomFilter Exit Function lockErr: MsgBox "すでにロックされています", , "ロックエラー" End Function
  5. 編集メニューから挿入 > クラス・モジュールを選択します。新規モジュールに以下のコードをペーストします。

    
    
    'MyFilter.cls
    
    Option Explicit
    Implements ICustomizationFilter
    
    Private Function ICustomizationFilter_OnCustomizationEvent _
      (ByVal custEventType As esriCore.esriCustomizationEvent, _
     ByVal eventCtx As Variant) As Boolean
      If custEventType = esriCEShowCustDlg Then
        ICustomizationFilter_OnCustomizationEvent = True
        Exit Function
      End If
    
    
    
    
    
    
      ' Visual Basicエディタをロックします。
      ' custEventType = esriCEShowVBAIDE
      ' eventCtx = Nothing
      If custEventType = esriCEShowVBAIDE Then
        ICustomizationFilter_OnCustomizationEvent = True
      End If
    End Function
    
    
    
  6. プロパティ・ウィンドウでオブジェクト名をClass1からMyFilterに変更します。

  7. MXDを保存しArcMapを終了します。

  8. ArcMapを起動しMXDを開きます。

  9. Visual Basic Editorを開きます。パスワードを要求するダイアログが表示されます。
    この例では"MYLOCK"と入力するまでVisual Basic Editorを開くことはできません。

メタデータ

種類

製品