よねさんのWordとExcelの小部屋 なんでも掲示板

HOME HELP 新規作成 新着記事 ツリー表示 トピック表示 検索 過去ログ

■13355 / 親階層)  ファイルリネームマクロ
□投稿者/ たくろう -(2019/02/26(Tue) 11:10:20)
    いつもお世話になっております。

    ファイルリネームのマクロを作りましたが、うまくいきません。

    フォルダ1:Excelファイルが入っている
    フォルダ2:PDFファイルが入っている

    上記フォルダ内にあるファイルネームをマクロを保存したExcelに読み出し、
    フォルダ内1番目のExcelのファイルネームをフォルダ内1番目のPDFファイルに付ける、
    複数あれば繰り返す、
    というマクロを作りました。

    PDFファイルはスキャナーから取り込んだもので、
    例えば100ページあったとしたら、
    分割ソフトで2ページずつ50個のファイルにし、
    分割したPDFファイルには1.pdf、2.pdf・・・50.pdfのように、
    ファイルネームが付きます。

    それをフォルダ1にあるExcelファイルネームを付けようとするのですが、
    フォルダ2のpdfファイルを読み込む際、
    1、2、3・・・の順ではなく、1、10、11・・・19、2、20、21・・・
    というような順番で読み込んでしまい、
    Excelとの並びが合わなくなってしまいます。
    結果、2.pdfに付けたいファイルネームが10.pdfに付いてしまいます。

    分割後のPDFファイルネームが01.pdf、02.pdfとなれば問題ないのですが、
    そのような分割ソフトも見つかりませんし、
    ファイル数が3桁になった場合はまた問題が発生してしまいます。
    PDFファイルを1、2、3・・・の順に読み込ませる方法はあるでしょうか。

    マクロ初心者故、このような質問の仕方で良いのかもわかりませんが、
    作成したコードは下記の通りです。

    Sub リネーム

    Sheets("リネーム").Select
    Range("A7:B100").Select
    Selection.ClearContents
    Range("A7").Select

    Dim fd_path As String
    Dim fl_name As String
    Dim i As Long

    fd_path = 「フォルダ2」

    fl_name = Dir(fd_path & "\*")
    If fl_name = "" Then MsgBox "ファイルが存在しません。": Exit Sub

    Range("B2").Value = fd_path

    i = 7
    ChDir fd_path & "\"
    Do Until fl_name = ""
    Cells(i, "A").Value = fl_name
    i = i + 1
    fl_name = Dir
    Loop


    'Dim fd_path As String
    'Dim fl_name As String
    'Dim i As Long

    fd_path = 「フォルダ1」

    fl_name = Dir(fd_path & "\*")
    If fl_name = "" Then MsgBox "ファイルが存在しません。": Exit Sub

    i = 7
    ChDir fd_path & "\"
    Do Until fl_name = ""
    Cells(i, "B").Value = fl_name
    i = i + 1
    fl_name = Dir
    Loop

    Cells.Replace What:=".xlsx", Replacement:=".pdf", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False

    'Dim i As Long

    i = 7

    Do Until Cells(i, 1).Value = ""
    FileCopy Range("B2").Value & "\" & Cells(i, 1).Value, _
    Range("B3").Value & "\" & Cells(i, 2).Value
    i = i + 1
    Loop

    ※セルB2にはフォルダ1のパス、
     セルB3にはフォルダ2のパスが入っています。
     また、セルA7〜A100にはフォルダ2のPDFファイルネーム(リネーム前)が入り、
     セルB7〜B100にはフォルダ1のExcelファイルネームの拡張子を.xlsxから.pdfに変更したものが入るようにしています。

    どうぞ宜しくお願い致します。
記事引用 削除キー/

前の記事(元になった記事) 次の記事(この記事の返信)
親記事 →Re[1]: ファイルリネームマクロ /よねさん
 
上記関連ツリー

Nomal ファイルリネームマクロ / たくろう (19/02/26(Tue) 11:10) #13355 ←Now
Nomal Re[1]: ファイルリネームマクロ / よねさん (19/02/26(Tue) 15:20) #13356
  └Nomal Re[2]: ファイルリネームマクロ / たくろう (19/02/26(Tue) 18:28) #13357
    └Nomal Re[3]: ファイルリネームマクロ / よねさん (19/02/27(Wed) 07:52) #13358
      └Nomal Re[4]: ファイルリネームマクロ / たくろう (19/02/27(Wed) 10:09) #13359
        └Nomal Re[5]: ファイルリネームマクロ / よねさん (19/02/27(Wed) 12:55) #13360
          └Nomal Re[6]: ファイルリネームマクロ / たくろう (19/02/27(Wed) 14:40) #13361

All 上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信

Pass/

HOME HELP 新規作成 新着記事 ツリー表示 トピック表示 検索 過去ログ

- Child Tree -