プロが教えるわが家の防犯対策術!

フォルダ内には複数のPDFファイルがあり、そのファイルすべてのフルパスを「変更前ファイル名」、名称変更後のフルパスを「変更後ファイル名」としたフィールドを持つテーブルを活用して、VBAでファイル名称変更をしたいのです。
エクセルVBAではあるようですが、Accessの場合は複数の一括変更は見つからず、または理解できなかったので、なにとぞよろしくお願いいたします。

A 回答 (1件)

Accessではファイルの一括名称変更を直接サポートしているわけではありませんが、VBAを使用して実現することができます。

以下は、VBAを使用してAccessのテーブルに記載された情報をもとにPDFファイルの名称を一括変更する方法の一例です。


Sub RenamePDFFiles()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim oldFilePath As String
Dim newFilePath As String

' データベースのパスとテーブル名を適宜変更してください
Set db = OpenDatabase("C:\Path\To\Your\Database.accdb")
Set rs = db.OpenRecordset("YourTableName")

' レコードの数だけループ
Do While Not rs.EOF
' 変更前のファイルパスと変更後のファイルパスを取得
oldFilePath = rs("変更前ファイル名")
newFilePath = rs("変更後ファイル名")

' ファイルの存在を確認してから名称変更
If Dir(oldFilePath) <> "" Then
Name oldFilePath As newFilePath
Else
' ファイルが存在しない場合の処理(省略しても可)
MsgBox oldFilePath & " が見つかりません。", vbExclamation
End If

rs.MoveNext
Loop

' レコードセットとデータベースをクローズ
rs.Close
db.Close
Set rs = Nothing
Set db = Nothing
End Sub


このVBAマクロを使用する前に、以下の点を確認してください。

1. Accessデータベース内に、ファイルのフルパスと名称変更後のフルパスを格納するテーブルを作成し、適切なレコードを追加してください。
2. VBAコードの`データベースのパスとテーブル名を適宜変更してください`の部分を実際のデータベースファイルのパスとテーブル名に置き換えてください。

このVBAマクロを実行すると、テーブルに記載された情報をもとにPDFファイルの名称が一括変更されるはずです。ただし、ファイルの名称変更には注意が必要であり、誤って大切なファイルを上書きしないよう十分注意してください。必要に応じて、バックアップを取ることをおすすめします。
    • good
    • 1
この回答へのお礼

ありがとうございます。どうしても複数のコトを処理することに府が落ちなくて毎度つまずいております。
ただ本件はDirの使い方が間違っていました。ありがとうございました。
正常に動いています。
なにより、currentDbで記述していただいてもいいのに、わざわざaccdbファイルのフルパスでのご説明をいただいて、お心遣いにも大変感謝いたします。
ありがとうございました。

お礼日時:2023/08/06 08:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A