0

下記スクリプトの、

If CInt(i) < objFolderItems.Count Then

から最後から2行目までのカウンタ カウントアップ処理を直したいです。

iがカウンタです。

ここで、フォルダから取り出した物が.CSVファイルであればカウンタをカウントアップし、否の場合はカウントアップしないようにスクリプトを改造したいが、どう直せばよいでしょうか?

どうも現状は、フォルダから取り出した物が.CSVファイルか否かに関わらず、すべてカウントアップするようです。

---<ここから>ーー
Public objApl
Public objFolder
Public objFolderItems
Public objItem
Public folderPath
Public i

folderPath = !フォルダ名!

'シェルアプリケーションオブジェクトを作成します
Set objApl = CreateObject("Shell.Application")

'指定フォルダのオブジェクトを作成します
Set objFolder = objApl.NameSpace(folderPath)

'フォルダオブジェクトから、入っているファイルやフォルダの全情報を取得します
Set objFolderItems = objFolder.Items()

'ファイルシステムオブジェクトを作成します。
Set objFileSys = CreateObject("Scripting.FileSystemObject")

'変数値を取得
i = !カウンタ!

If CInt(i) < objFolderItems.Count Then
    'ファイルやフォルダの情報を1コ取り出します
   Set objItem = objFolderItems.Item(CInt(i))

   '取り出した物が.CSVファイルか否かを判定
   SetUMSVariable $ファイル名$, objItem.path
  

   '取り出した物が.CSVファイルであれば、種別にTrueを設定

   If UCase(objFileSys.GetExtensionName(objItem.path)) = "CSV" Then
       SetUMSVariable $種別$, "True"
       i = i + 1
       MsgBox i
       'MsgBox 種別
    Else

   '取り出した物が.CSVファイル以外であれば、種別にFalseを設定

      SetUMSVariable $種別$, "False"
      SetUMSVariable $ファイル名$, ""
    End If
 Else
   Err.Raise 1, "", "フォルダもしくはインデックスの指定に誤りがあります。"
End If

Set objItem = Nothing

---<ここまで>ーー

S.Muraki 回答した質問
回答とコメントは、会員登録(無料)で閲覧できるようになります。