2016-12-23 10 views
2

xlsmとmdb(Access)の2種類のファイルのフォルダをループすることに関する質問があります。フォルダ(VBA)内の異なる種類のファイルをループする

現在、xlsmからmdbファイルにデータをコピーしてからmdbファイルを保存する前に、1つのxlsmファイルと1つのmdbファイルを開くマクロを作成しました。

ここでは、このプロセスで、50個のxlsmファイルと50個のmdbファイルを含むフォルダを繰り返します。彼らは同じ名前を持っているので、ループはこれを行うべきです:

  1. "2001"と呼ばれるxlsmとmdbファイルを開きます。
  2. xlsmからmdbへのコピーと貼り付けなどを実行します(この部分を書きました)。
  3. mdbファイルを保存します。
  4. 「2001」と呼ばれるxlsmとmdbの両方のファイルを閉じます。
  5. フォルダ内の "2002"、 "2003"などについて手順1〜4を繰り返します。

私はVBAに本当に感謝しています!すべてのガイダンスを楽しみにしています。メリークリスマス!

+2

私たちが見ることができない場合、あなたのコードを修正する方法を提案するのは難しいです。 [あなたの質問に関連する部分を編集してください](http://stackoverflow.com/posts/41305586/edit)。 – Comintern

+0

初心者向け:http://stackoverflow.com/documentation/vba/990/scripting-filesystemobject/9507/enumerate-files-in-a-directory-using-filesystemobject#t=201612231748152928855 – Andre

答えて

2

私は今、フォルダ内のJPGファイルを一覧表示するためのサンプルコードを作成しました。あなたが好きなものを採用して修正することはできますが、ソリューションを見ることができないと正確なコードを与えるのは非常に困難です。

Public Sub listImages(folderPath As String) 

    'define variables 
    Dim fso As Object 
    Dim objFolder As Object 
    Dim objFolders As Object 
    Dim objF As Object 
    Dim objFile As Object 
    Dim objFiles As Object 
    Dim strFileName As String 
    Dim strFilePath As String 
    Dim myList As String 

    'set file system object 
    Set fso = CreateObject("Scripting.FileSystemObject") 

    'set folder object 
    Set objFolder = fso.GetFolder(folderPath) 

    'set files 
    Set objFiles = objFolder.files 
    Set objFolders = objFolder.subfolders 

    'list all images in folder 
    For Each objFile In objFiles 

     If Right(objFile.Name, 4) = ".jpg" Then 
      strFileName = objFile.Name 
      strFilePath = objFile.Path 
      myList = myList & strFileName & " - " & strFilePath & vbNewLine 
     End If 

    Next 

    'go through all subflders 
    For Each objF In objFolders 
     Call listImages(objF.Path) 
    Next 

    Debug.Print myList 

    Set objFolder = Nothing 
    Set objFile = Nothing 
    Set fso = Nothing 


End Sub 
関連する問題