home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1997 January / VPR9701A.ISO / PROJ95 / EXAMPLES / BATCH / PUBLIC.BAS < prev   
BASIC Source File  |  1996-08-21  |  20KB  |  446 lines

  1. 'モジュール レベルのオプション
  2. Option Explicit                     '変数は明示的に宣言する必要があります。
  3. Option Base 1                       '配列のインデックスは 1 から始めます。
  4. Option Compare Text                 '大文字と小文字を区別せずに、文字列を比較します。
  5.  
  6. 'グローバルな数値定数
  7. Global Const MAX_BATCHES = 30      'バッチ数の上限 (変更可)
  8. Global Const MAX_BATCH_ITEMS = 100 'バッチ項目数の上限 (変更可)
  9.  
  10. Global Const BATCH_NEW = 0          '新しいバッチの作成に使用するフラグ
  11. Global Const BATCH_COPY = 1         '既存のバッチのコピーに使用するフラグ
  12. Global Const BATCH_EDIT = 2         '既存のバッチの編集に使用するフラグ
  13.  
  14. 'ファイル ヘッダーの文字列
  15. Global Const FILE_HEADER = "MSProject4.10PrintBatchFile"    'ID の目的でバッチ ファイルの先頭に保存されます。
  16.  
  17. '*** 編集可能な文字列定数 ***
  18.  
  19. 'バッチ項目の文字列
  20. Global Const VIEWTXT = "ビュー: "
  21. Global Const TABLETXT = "テーブル: "
  22. Global Const FILTERTXT = "フィルタ: "
  23. Global Const REPORTTXT = "レポート: "
  24. Global Const DEFAULT_ITEM = "(既定)"
  25. Global Const NEW_BATCH_NAME = "Batch"
  26. Global Const COPY_BATCH_NAME = " のコピー"
  27. Global Const BATCH_HEAD = "バッチの内容"
  28. Global Const BATCH_END = "(末尾)"
  29.  
  30. 'メッセージ ボックスの文字列とタイトル
  31. Global Const MB_INVALID_FILE = "これは正しい印刷バッチ ファイルではありません。"
  32. Global Const MB_INVALID_FILE_TITLE = "不正なファイル"
  33. Global Const MB_NO_APP_OBJECT_TITLE = "OLE の初期化エラー"
  34. Global Const MB_NO_APP_OBJECT = "Microsoft Project Application オブジェクトにアクセスできません。Microsoft Project を起動してください。Microsoft Project が実行中の場合は、ダイアログ ボックスが表示されていないかどうかを確認してから、もう一度やり直してください。"
  35. Global Const MB_NO_ACTIVEPROJECT_TITLE = "ActiveProject オブジェクトへのアクセス エラー"
  36. Global Const MB_NO_ACTIVEPROJECT = "MSProject ActiveProject オブジェクトにアクセスできません。対象となるプロジェクトを開いてください。プロジェクトが開いている場合は、Microsoft Project でダイアログ ボックスが表示されていないかどうかを確認してから、もう一度やり直してください。"
  37. Global Const MB_MAX_BATCHES = "一覧には既に最大数の印刷バッチが含まれています。不要なバッチを削除してから、新しいバッチを追加してください。"
  38. Global Const MB_MAX_BATCHES_TITLE = "最大数のバッチ"
  39. Global Const MB_MAX_ITEMS = "一覧には既に最大数のバッチ項目が含まれています。不要な項目を削除してから、新しい項目を追加してください。"
  40. Global Const MB_MAX_ITEMS_TITLE = "最大数の項目"
  41. Global Const MB_PREV_INSTANCE = "バッチ印刷プログラムは既に実行されています。"
  42. Global Const MB_PREV_INSTANCE_TITLE = "プログラムは実行中です"
  43. Global Const MB_DELETE = " を削除しますか?"
  44. Global Const MB_DELETE_TITLE = "バッチの削除"
  45. Global Const MB_QUERYSAVE = "変更内容をバッチ ファイルに保存しますか?"
  46. Global Const MB_QUERYSAVE_TITLE = "保存の変更"
  47. Global Const MB_INVALID_NAME = "名前が正しくありません。別のバッチ名を入力してください。"
  48. Global Const MB_INVALID_NAME_TITLE = "無効な名前"
  49. Global Const MB_EMPTY_BATCH = "バッチには項目が最低 1 つは含まれていなければなりません。"
  50. Global Const MB_EMPTY_BATCH_TITLE = "空のバッチ"
  51. Global Const MB_DUPLICATE_NAME = "同じ名前のバッチが既に存在します。別のバッチ名を入力してください。"
  52. Global Const MB_DUPLICATE_NAME_TITLE = "名前の重複"
  53.  
  54. 'コモン ダイアログのコントロールの文字列
  55. Global Const DLG_SAVE_TITLE = "印刷バッチ ファイルの保存"
  56. Global Const DLG_OPEN_TITLE = "印刷バッチ ファイルを開く"
  57. Global Const DLG_OPENFILTER = "印刷バッチ (*.MPB)|*.MPB|すべてのファイル (*.*)|*.*"
  58. Global Const DLG_SAVEFILTER = "印刷バッチ (*.MPB)|*.MPB"
  59. Global Const DLG_EXTENSION = "MPB"
  60.  
  61. 'MsgBox のパラメータ
  62. Global Const MB_ICONSTOP = 16          '警告メッセージ アイコン
  63. Global Const MB_ICONQUESTION = 32      '問い合わせメッセージ アイコン
  64. Global Const MB_ICONEXCLAMATION = 48   '注意メッセージ アイコン
  65. Global Const MB_ICONINFORMATION = 64   '情報メッセージ アイコン
  66. Global Const MB_YESNOCANCEL = 3        '[はい]、[いいえ]、および [キャンセル] ボタン
  67. Global Const MB_YESNO = 4              '[はい] および [いいえ] ボタン
  68. Global Const IDOK = 1                  '[OK] ボタンがクリックされた場合
  69. Global Const IDCANCEL = 2              '[キャンセル] ボタンがクリックされた場合
  70. Global Const IDABORT = 3               '[中止] ボタンがクリックされた場合
  71. Global Const IDRETRY = 4               '[再試行] ボタンがクリックされた場合
  72. Global Const IDIGNORE = 5              '[無視] ボタンがクリックされた場合
  73. Global Const IDYES = 6                 '[はい] ボタンがクリックされた場合
  74. Global Const IDNO = 7                  '[いいえ] ボタンがクリックされた場合
  75.  
  76. 'マウス ポインタ
  77. Global Const DEFAULT = 0                '既定のポインタ
  78. Global Const HOURGLASS = 11             '砂時計ポインタ
  79.  
  80. '表示のパラメータ
  81. Global Const MODAL = 1
  82. Global Const MODELESS = 0
  83.  
  84.  
  85. 'アクション プロパティ
  86. Global Const DLG_FILE_OPEN = 1
  87. Global Const DLG_FILE_SAVE = 2
  88.  
  89. 'ファイルを開く/保存のダイアログのフラグ
  90. Global Const OFN_READONLY = &H1&
  91. Global Const OFN_OVERWRITEPROMPT = &H2&
  92. Global Const OFN_HIDEREADONLY = &H4&
  93. Global Const OFN_NOCHANGEDIR = &H8&
  94. Global Const OFN_SHOWHELP = &H10&
  95. Global Const OFN_NOVALIDATE = &H100&
  96. Global Const OFN_ALLOWMULTISELECT = &H200&
  97. Global Const OFN_EXTENSIONDIFFERENT = &H400&
  98. Global Const OFN_PATHMUSTEXIST = &H800&
  99. Global Const OFN_FILEMUSTEXIST = &H1000&
  100. Global Const OFN_CREATEPROMPT = &H2000&
  101. Global Const OFN_SHAREAWARE = &H4000&
  102. Global Const OFN_NOREADONLYRETURN = &H8000&
  103. Global Const CDERR_CANCEL = &H7FF3
  104.  
  105. 'ユーザー定義型
  106. Type utBatchItem                    'バッチ項目 (ビュー/レポート) に対する型の定義
  107.     ItemName As String              'ビューまたはレポートの名前
  108.     Table As String                 'テーブルの名前。空白でも可
  109.     Filter As String                'フィルタの名前。空白でも可
  110. End Type
  111.  
  112. Type utBatchType    'バッチに対する型の定義。変数のプリフィックスは "bt" です。
  113.     Name As String                          'バッチ名
  114.     NumItems As Integer                     'バッチ項目の数
  115.     Items(MAX_BATCH_ITEMS) As utBatchItem   'バッチ項目の配列
  116. End Type
  117.  
  118. 'グローバル変数の宣言
  119. Global goProjApp As object          'Microsoft Project アプリケーション オブジェクト
  120. Global goActiveProj As object       '作業中のプロジェクト オブジェクト
  121. Global gbNeedSave As Integer        '保存のプロンプトを表示するかどうかを示すフラグ
  122. Global gabtBatches(MAX_BATCHES) As utBatchType    'バッチの配列
  123. Global gnNumOfBatches As Integer    'メモリにあるバッチの数
  124. Global gbtBatchBfr As utBatchType   '作成、編集、またはコピーの対象と
  125.                                     'なっているバッチの値を
  126.                                     '保存するためのバッファ
  127.  
  128. Function bIsTaskView (ByVal sViewName As String) As Integer
  129. 'この関数は、ビュー名が TaskViewList にある場合は True、
  130. 'そうでなければ False を返します。(万一) 同じ名前のタスク ビューと
  131. 'リソース ビューが存在する場合、この関数は True を返します。
  132.  
  133. Dim iCount As Integer
  134.  
  135.      For iCount = 1 To goActiveProj.TaskViewList.Count
  136.         If goActiveProj.TaskViewList(iCount) = sViewName Then
  137.             bIsTaskView = True   'タスク ビュー
  138.             Exit Function
  139.         End If
  140.      Next
  141.      
  142.      bIsTaskView = False         'リソース ビュー
  143.  
  144. End Function
  145.  
  146. Function bSetActiveProjObj () As Integer
  147. 'この関数は、goActiveProj を作業中のプロジェクトに設定し、
  148. '成功した場合は True、そうでなければ False を返します。
  149.  
  150.     On Error GoTo bSetActiveProjObjError
  151.  
  152.     bSetActiveProjObj = True '次のステートメントがエラーにならない限り、True を返します。
  153.     Set goActiveProj = goProjApp.ActiveProject
  154.  
  155. Exit Function
  156.  
  157. bSetActiveProjObjError:
  158.     bSetActiveProjObj = False
  159.     Set goActiveProj = Nothing
  160.     Select Case Err
  161.         Case 429 To 440     'OLE オートメーションのエラー
  162.         Case Else           '予期しないエラー
  163.             Error Err
  164.     End Select
  165.     Resume Next
  166.  
  167. End Function
  168.  
  169. Function bSetProjAppObj () As Integer
  170. 'このプロシージャは、goProjApp を Microsoft Project アプリケーション オブジェクトに
  171. '設定し、成功した場合は True、そうでなければ False を返します。
  172.  
  173.     On Error GoTo bSetProjAppObjError
  174.  
  175.     bSetProjAppObj = True   '次のステートメントがエラーにならない限り、True を返します。
  176.     Set goProjApp = GetObject(, "MSProject.Application")
  177.  
  178. Exit Function
  179.  
  180. bSetProjAppObjError:
  181.     bSetProjAppObj = False
  182.     Select Case Err
  183.         Case 429 To 440     'OLE オートメーションのエラー
  184.             Set goProjApp = Nothing
  185.         Case Else           '予期しないエラー
  186.             Error Err
  187.     End Select
  188.  
  189.     Resume Next
  190.  
  191. End Function
  192.  
  193. Sub ClearBatchDef ()
  194. 'このプロシージャは、[バッチの定義] フォームの値をすべてクリアし、
  195. '[バッチの内容] ボックスのアウトラインを初期化します。
  196.  
  197.     frmBatchDef.txtBatchName = ""
  198.     frmBatchDef.outContents.Clear
  199.     frmBatchDef.outContents.AddItem BATCH_HEAD, 0
  200.     frmBatchDef.outContents.Indent(0) = 0
  201.     frmBatchDef.outContents.PictureType(0) = 1
  202.     frmBatchDef.outContents.AddItem BATCH_END, 1
  203.     frmBatchDef.outContents.Indent(1) = 1
  204.     frmBatchDef.outContents.PictureType(1) = 2
  205.     frmBatchDef.outContents.Expand(0) = False
  206.     frmBatchDef.outContents.ListIndex = 1
  207.  
  208.     frmBatchDef.optItemType(0).Value = True
  209.  
  210. End Sub
  211.  
  212. Function iSearchBatchName (ByVal sName As String) As Integer
  213. 'この関数は、バッチ名の現在の一覧から sName をバイナリで検索し、
  214. '見つかった場合は一覧での位置を返し、見つからない場合は -1 を
  215. '返します。このモジュールでは Option Compare の設定が Text に
  216. 'なっているので、比較の際に、大文字と小文字は区別されません。
  217.  
  218. Dim iFirst As Integer       '検索する配列セクションの下限のインデックス
  219. Dim iMiddle As Integer      '検索する配列セクションの中央のインデックス
  220. Dim iLast As Integer        '検索する配列セクションの上限のインデックス
  221.  
  222.  
  223.     'lstBatches に項目が 1 つもない場合は、
  224.     '-1 を返して関数を終了します。
  225.     If frmMain.lstBatches.ListCount = 0 Then
  226.         iSearchBatchName = -1
  227.         Exit Function
  228.     End If
  229.  
  230.     '配列の項目 #1 からバイナリ検索を開始するので、
  231.     '先に項目 #0 に対して別のチェックを行います。
  232.     If frmMain.lstBatches.List(0) = sName Then
  233.         iSearchBatchName = 0
  234.         Exit Function
  235.     End If
  236.  
  237.     iFirst = 1                  '下限のインデックスを配列の 1 番目の要素に初期化します。
  238.     iLast = gnNumOfBatches      '上限のインデックスを配列の末尾の要素に初期化します。
  239.  
  240.     Do  'sName が見つかるまで、一覧のすべての項目に対して検索ループを実行します。
  241.         iMiddle = (iFirst + iLast) / 2      '中央のインデックスを計算します。
  242.  
  243.         'sName が一覧の中央の名前より小さい場合、
  244.         '続けて一覧の前半を検索します。
  245.         If sName < frmMain.lstBatches.List(iMiddle) Then
  246.             iLast = iMiddle - 1
  247.         'そうでない場合は、続けて配列の後半を検索します。
  248.         Else
  249.             iFirst = iMiddle + 1
  250.         End If
  251.  
  252.     Loop Until (frmMain.lstBatches.List(iMiddle) = sName) Or (iFirst > iLast)
  253.  
  254.     If frmMain.lstBatches.List(iMiddle) <> sName Then
  255.         iSearchBatchName = -1           'sName が一覧で見つからない場合
  256.     Else
  257.         iSearchBatchName = iMiddle      'sName が一覧で見つかった場合
  258.     End If
  259.  
  260. End Function
  261.  
  262. Sub LoadFilters ()
  263. 'このプロシージャは、Microsoft Project のデータを使用して、フィルタ一覧を
  264. 'ロードします。一覧は、cboName でビューが選択されるたびに更新されます。
  265.  
  266. Dim iCount As Integer           'For...Next ループで使用するインデックス
  267. Dim sTemp As String             'ビュー名を保存するための Temp 文字列
  268.  
  269.     frmBatchDef.cboFilter.Clear                 'フィルタ一覧をクリアします。
  270.     frmBatchDef.cboFilter.AddItem DEFAULT_ITEM  '一覧に項目 [(既定)] を追加します。
  271.     
  272.     If bIsTaskView(frmBatchDef.cboName.Text) Then                '選択されているビューがタスク ビューの場合
  273.     
  274.         For iCount = 1 To goActiveProj.TaskFilterList.Count
  275.             frmBatchDef.cboFilter.AddItem goActiveProj.TaskFilterList(iCount) '各フィルタを一覧に追加します。
  276.         Next
  277.         
  278.     Else                                            '選択されているビューがリソース ビューの場合
  279.     
  280.         For iCount = 1 To goActiveProj.ResourceFilterList
  281.             frmBatchDef.cboFilter.AddItem goActiveProj.ResourceFilterList(iCount) '各フィルタを一覧に追加します。
  282.         Next
  283.         
  284.     End If
  285.     
  286.     frmBatchDef.cboFilter.ListIndex = 0             '項目 [(既定)] を選択します。
  287.  
  288. End Sub
  289.  
  290. Sub LoadReports ()
  291. 'このプロシージャは、Microsoft Project のデータを使用して、
  292. 'レポート一覧をロードします。
  293.  
  294. Dim iCount As Integer               'For...Next ループのインデックス
  295. Dim nNumReports As Integer          'Microsoft Project のレポートの数
  296. Dim sTemp As String                 'レポート名を保存するための Temp 文字列
  297.  
  298.     frmBatchDef.cboTable.Visible = False        'テーブル一覧を非表示にします。
  299.     frmBatchDef.cboFilter.Visible = False       'フィルタ一覧を非表示にします。
  300.     frmBatchDef.lblTable.Enabled = False        'アクセス キーを無効にします。
  301.     frmBatchDef.lblFilter.Enabled = False       'アクセス キーを無効にします。
  302.     frmBatchDef.Refresh
  303.  
  304.     frmBatchDef.cboName.Clear                   '項目名の一覧をクリアします。
  305.     nNumReports = goActiveProj.ReportList       'Microsoft Project のレポートの数を取得します。
  306.  
  307.     For iCount = 1 To nNumReports               'Microsoft Project の各レポートについて
  308.         sTemp = goActiveProj.ReportList(iCount) 'レポート名を取得します。
  309.         frmBatchDef.cboName.AddItem sTemp       'レポート名を一覧に追加します。
  310.     Next
  311.         
  312.     frmBatchDef.cboName.ListIndex = 0                               '一覧の先頭のレポートを選択します。
  313.  
  314. End Sub
  315.  
  316. Sub LoadTables ()
  317. 'このプロシージャは、Microsoft Project のデータを使用して、テーブル一覧を
  318. 'ロードします。一覧は、cboName でビューが選択されるたびに更新されます。
  319.  
  320. Dim iCount As Integer               'For...Next ループで使用するインデックス
  321. Dim sTemp As String                 'ビュー名を保存するための Temp 文字列
  322.  
  323.     frmBatchDef.cboTable.Clear                  'テーブル一覧をクリアします。
  324.     frmBatchDef.cboTable.AddItem DEFAULT_ITEM   '一覧に項目 [(既定)] を追加します。
  325.  
  326.     If bIsTaskView(frmBatchDef.cboName.Text) Then                '選択されているビューがタスク ビューの場合
  327.  
  328.         For iCount = 1 To goActiveProj.TaskTableList.Count
  329.             frmBatchDef.cboTable.AddItem goActiveProj.TaskTableList(iCount) '各テーブルを一覧に追加します。
  330.         Next
  331.         
  332.     Else                                            '選択されているビューがリソース ビューの場合
  333.  
  334.         For iCount = 1 To goActiveProj.ResourceTableList.Count
  335.             frmBatchDef.cboTable.AddItem goActiveProj.ResourceTableList(iCount) '各テーブルを一覧に追加します。
  336.         Next
  337.         
  338.     End If
  339.  
  340.     frmBatchDef.cboTable.ListIndex = 0              '項目 [(既定)] を選択します。
  341.  
  342. End Sub
  343.  
  344. Sub LoadViews ()
  345. 'このプロシージャは、作業中のプロジェクトで設定されている
  346. 'タスク ビューとリソース ビューを使用して、項目名の一覧を
  347. 'ロードします。一覧には、分割ビューやモジュール エディタは
  348. '含まれません。また、VB からは、ビューが印刷可能かどうかを
  349. '簡単に確認できないので、印刷できないビューも選択可能になります。
  350.  
  351. Dim iCount As Integer               'For...Next ループで使用するインデックス
  352. Dim nNumTaskViews As Integer        'Microsoft Project の現在のタスク ビューの数
  353. Dim sTemp As String                 'ビュー名を保存するための Temp 文字列
  354.  
  355.     frmBatchDef.cboTable.Visible = True             'テーブル一覧を表示します。
  356.     frmBatchDef.lblTable.Enabled = True             'アクセス キーを有効にします。
  357.     frmBatchDef.cboTable.ListIndex = -1             '一覧の選択をクリアします。
  358.     frmBatchDef.cboFilter.Visible = True            'フィルタ一覧を表示します。
  359.     frmBatchDef.lblFilter.Enabled = True            'アクセス キーを有効にします。
  360.     frmBatchDef.cboFilter.ListIndex = -1            '一覧の選択をクリアします。
  361.     frmBatchDef.Refresh
  362.  
  363.     frmBatchDef.cboName.Clear                       'バッチ名の一覧をクリアします。
  364.  
  365.     '一覧のタスク ビューの項目を更新します。
  366.     nNumTaskViews = goActiveProj.TaskViewList.Count 'プロジェクトのタスク ビューの数
  367.     For iCount = 1 To nNumTaskViews
  368.         sTemp = goActiveProj.TaskViewList(iCount)   'タスク ビューの名前を取得します。
  369.         frmBatchDef.cboName.AddItem sTemp           '各ビューを一覧に追加します。
  370.     Next
  371.     
  372.     '一覧のリソース ビューの項目を更新します。
  373.     For iCount = 1 To goActiveProj.ResourceViewList.Count
  374.         sTemp = goActiveProj.ResourceViewList(iCount)  'リソース ビューの名前を取得します。
  375.         frmBatchDef.cboName.AddItem sTemp       '各ビューを一覧に追加します。
  376.     Next
  377.  
  378.     frmBatchDef.cboName.ListIndex = 0               '一覧の先頭のビューを選択します。
  379.  
  380. End Sub
  381.  
  382. Sub SetBatchDef (ByVal iBatchNum As Integer, ByVal nMode As Integer)
  383. 'このプロシージャは、バッチ番号 iBatchNum の値を使用して、
  384. '[バッチの定義] フォームのフィールドをロードします。
  385. 'バッチの既定の名前は nMode で指定されます。
  386.  
  387. Dim iItems As Integer           'gabtBatches().Items() のインデックス
  388. Dim iList As Integer            'frmBatchDef.outContents のインデックス
  389. Static nNewBatchNum As Integer  '新しいバッチ名のインクリメント番号
  390.  
  391.     ClearBatchDef   'フォームの元の値をクリアします。
  392.  
  393.     'nMode に基づいて [バッチの定義] フォームのバッチ名フィールドを設定します。
  394.     Select Case nMode
  395.  
  396.         Case BATCH_NEW      '新しいバッチを作成している場合
  397.             Do  '"BatchX" の名前の番号を、有効なものが見つかるまでインクリメントします。
  398.                 nNewBatchNum = nNewBatchNum + 1     '新しいバッチの番号をインクリメントします。
  399.             Loop Until iSearchBatchName("Batch" + Format$(nNewBatchNum, "0")) = -1
  400.  
  401.             '既定のバッチ名をフォームに入力します。
  402.             frmBatchDef.txtBatchName = NEW_BATCH_NAME + Format$(nNewBatchNum, "0")
  403.             Exit Sub        'この場合、ほかに設定されているフィールドがないので、サブルーチンを終了します。
  404.  
  405.         Case BATCH_COPY     '既存のバッチをコピーしている場合
  406.             frmBatchDef.txtBatchName = gabtBatches(iBatchNum).Name + COPY_BATCH_NAME
  407.  
  408.         Case BATCH_EDIT     '既存のバッチを編集している場合
  409.             frmBatchDef.txtBatchName = gabtBatches(iBatchNum).Name
  410.  
  411.     End Select
  412.  
  413.     '[バッチの定義] フォームの残りのフィールドの値を設定します。
  414.     iList = 0
  415.     For iItems = 1 To gabtBatches(iBatchNum).NumItems   'バッチのすべての項目に対してループを実行します。
  416.         
  417.         '[バッチの内容] ボックスの一覧に項目名を追加します。
  418.         iList = iList + 1   'frmBatchDef.outContents のインデックスをインクリメントします。
  419.         '[バッチの内容] ボックスの一覧に項目名を追加します。
  420.         frmBatchDef.outContents.AddItem gabtBatches(iBatchNum).Items(iItems).ItemName, iList
  421.         
  422.         'この項目がテーブルである場合は、一覧にテーブルを追加します。
  423.         If gabtBatches(iBatchNum).Items(iItems).Table <> "" Then
  424.             iList = iList + 1   'frmBatchDef.outContents のインデックスをインクリメントします。
  425.             '[バッチの内容] ボックスの一覧にテーブルを追加します。
  426.             frmBatchDef.outContents.AddItem gabtBatches(iBatchNum).Items(iItems).Table, iList
  427.             'テーブル名をインデントします。
  428.             frmBatchDef.outContents.Indent(iList) = 2
  429.         End If
  430.         
  431.         'この項目がフィルタである場合は、一覧にフィルタを追加します。
  432.         If gabtBatches(iBatchNum).Items(iItems).Filter <> "" Then
  433.             iList = iList + 1   'frmBatchDef.outContents のインデックスをインクリメントします。
  434.             '[バッチの内容] ボックスの一覧にフィルタを追加します。
  435.             frmBatchDef.outContents.AddItem gabtBatches(iBatchNum).Items(iItems).Filter, iList
  436.             'フィルタ名をインデントします。
  437.             frmBatchDef.outContents.Indent(iList) = 2
  438.         End If
  439.  
  440.     Next
  441.  
  442.     frmBatchDef.outContents.ListIndex = frmBatchDef.outContents.ListCount - 1
  443.  
  444. End Sub
  445.  
  446.