[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBA ファイルがみつかりません エラー ファイル名変更できない』(しゅう)
お世話になっております。
特定のフォルダのファイル名取得後
規則性を用いてファイル名を変更するマクロを作成しております。
現在書いているコード
エラー部分抜粋
※FLD.Range("B8")
Sheet FLDのB8にフォルダのパスをいれいます。
パスのコピーでコピーペーストしております。
PDF保存ファイルの名前変更
'F列 保存マクロ実行前PDFファイル名→PDF保存名へ変更
Dim folder_path As String Dim i As Long
'エラーの場合は次へ すでにファイル名が変更されてたらエラーになるため 'On Error Resume Next
folder_path = FLD.Range("B8") & "\"
For i = KANRITITLE + 1 To LR1 ’作業行の指定
If Cells(i, FILENAME).Value <> "" Then ' H列の保存マクロ実行前PDFファイルが空白じゃなかったら
Name folder_path & Cells(i, FILENAME) As folder_path & Cells(i, HOZONNAME) 'PDFファイル名の変更
Else
End If
Next i
なのですが
Name folder_path & Cells(i, FILENAME) As folder_path & Cells(i, HOZONNAME) のところで
実行時エラー53
ファイルがみつかりません。
となります。
よくわからないのですがうまくいくファイルもあるのです。。。
ファイル名に空白が含まれているのがダメなのか?
とも思いましたが違うような。。
変更前のファイル名もVBAで取得したファイル名を
コピーペーストしておりますので
半角・全角の不一致ではないと思われます。
なぜでしょうか?
お力添えいただきたく宜しくお願い致します。
しゅう
< 使用 Excel:Excel2019、使用 OS:Windows10 >
■1
以下には何が格納されているんですか?
「FILENAME」(String型?)・・・・・ 「HOZONNAME」(String型?) ・・・・ 「FLD」(Worksheet型?)・・・・・・
特に、↓なので「FILENAME」「HOZONNAME」に何が格納されているのか気になります。
Cells(i, FILENAME) Cells(i, HOZONNAME)
■2
マクロ云々はおいておいて↓が示すファイルは本当に存在するのですか?
FLD.Range("B8").Value & "\" & ActiveSheet.Cells(i, FILENAME).Value
(もこな2) 2021/10/24(日) 22:37
お世話になります。
ファイル名変更の全文です。
「FILENAME」as long 列数を指定 「FILENAME」as long 列数を指定 FLD As Worksheet
下記全文です。
****マクロ変数設定*****
Dim WB As Workbook Set WB = ThisWorkbook
Dim r As Long Dim x As Long
'シート「管理シート」をKANRIとする
Dim KANRI As Worksheet Set KANRI = WB.Sheets("管理シート")
'シート「フォルダURL」をFLDする
Dim FLD As Worksheet Set FLD = WB.Sheets("フォルダURL")
'管理シートタイトル行=KANRITITLE
Dim KANRITITLE As Long KANRITITLE = KANRI.Range("A:Z").Find("書類入手日", LookAt:=xlPart).Row
'マクロ実行前 保存名 列 = FILENAME Dim FILENAME As Long FILENAME = KANRI.Rows(KANRITITLE).Find("マクロ実行前", LookAt:=xlPart).Column
'PDF保存名=HOZONNAME Dim HOZONNAME As Long HOZONNAME = KANRI.Rows(KANRITITLE).Find("PDF保存名", LookAt:=xlPart).Column
'PDF保存場所リンク Dim LINK As Long LINK = KANRI.Rows(KANRITITLE).Find("PDF保存場所", LookAt:=xlPart).Column
'書類名列=SHORUI Dim SHORUI As Long SHORUI = KANRI.Rows(KANRITITLE).Find("書類名", LookAt:=xlPart).Column
'A列最終行をLR1とする
Dim LR1 As Long LR1 = KANRI.Range("A" & Rows.Count).End(xlUp).Row
'最終列の取得
Dim LC1 As Long LC1 = Cells(KANRITITLE, Columns.Count).End(xlToLeft).Column
'保存場所に変更はありませんか?アラート
Dim rc As VbMsgBoxResult
rc = MsgBox("フォルダの保存場所に変更はありませんか?", vbYesNo + vbQuestion)
If rc = vbYes Then
MsgBox "処理を続けます(*´з`)", vbInformation Else MsgBox "処理を中止します。" & vbLf & "SHEET フォルダURLを更新してからもう一度('◇')ゞ", vbCritical
Exit Sub
End If
MsgBox "PDF保存対象は" & vbLf & "保存マクロ実行前PDFファイル名" & vbLf & "H列に" & vbLf & "記載があるものです('◇')ゞ", vbInformation
'PDF保存ファイルの名前変更
'F列 保存マクロ実行前PDFファイル名→PDF保存名へ変更
Dim folder_path As String Dim j As Integer Dim i As Long
'エラーの場合は次へ すでにファイル名が変更されてたらエラーになるため 'On Error Resume Next
folder_path = FLD.Range("B8") & "\"
For i = KANRITITLE + 1 To LR1
If Cells(i, FILENAME).Value <> "" Then ' H列の保存マクロ実行前PDFファイルが空白じゃなかったら
Name folder_path & Cells(i, FILENAME) As folder_path & Cells(i, HOZONNAME) 'PDFファイル名の変更
Else
End If
Next i
またファイル名は本当に存在するのかですが
上記のファイル名変更の前に別のマクロで
下記を動かしております。
下記マクロを動かして得られた結果をコピーペーストして
FILENAMEのとこに貼り付けしているので
待ちがいないかとおもうのですが。。。。
'PDF保存フォルダのPDFファイル名取得
'最終列の取得
Dim LC1 As Long LC1 = Cells(KANRITITLE, Columns.Count).End(xlToLeft).Column
Columns(LC1 + 2).Clear
Dim folder_path As String Dim file_name As String
folder_path = FLD.Range("B8") & "\" file_name = Dir(folder_path, vbNormal) i = KANRITITLE + 1 Do Until file_name = "" KANRI.Cells(i, LC1 + 2) = file_name i = i + 1 file_name = Dir() Loop
MsgBox "PDF保存ファイル名を取得いたしました。", vbInformation MsgBox "現在保存されているPDFファイル名を" & vbLf & "K列に記載しております。" & vbLf & "必要であれば活用ください(*^^*)", vbInformation
お力添えいただきたく何卒宜しくお願い致します。
しゅう
(しゅう) 2021/10/25(月) 09:35
デバッグのやり方のアドバイスです。
見つからないと言っているので、無いのでしょう。 なので、Name ステートメントのファイルパスを確認しましょう。 エラー時のファイルパスを確認することが、問題解決の第一歩ですよ。
方法1 当該コードをブレークポイントにして、コード実行前にファイルパスがどうなっているか 確認する。
方法2 当該コード前にMsgboxまたはイミディエイトウィンドウにファイルパスを出力し確認する。
方法3 当該コードのエラーを一旦無視し、エラー発生したか判定、エラー発生時、方法2のように ファイルパスを出力し確認する。
(tkit) 2021/10/25(月) 11:53
> 'エラーの場合は次へ すでにファイル名が変更されてたらエラーになるため > 'On Error Resume Next そのエラーが出るのをわかっていて、手っ取り早く無視しようとうしたのが上記コードかも。
(cai) 2021/10/25(月) 16:16
お世話になります。
イミディエイトウィンドウにファイルパスを出力し確認する。
イミディエイトでも問題なし
空いているセルに下記の通りで書き出ししてみました。
Cells(i, 11).Value = folder_path & Cells(i, FILENAME)
このフルパスからファイル開けれます・・・・
本当になんでなのでしょうか・
新しいファイル名が長すぎるとかそんなことありますか?
ちなみに新しいファイル名例
SDS_500999964572640000_FIII 12345678/CAN_あさささ_はひふエステック_JP_20190801.pdf
こんな感じなのですが。。。
だめでしょうか?
CAI様
> 'エラーの場合は次へ すでにファイル名が変更されてたらエラーになるため > 'On Error Resume Next そのエラーが出るのをわかっていて、手っ取り早く無視しようとうしたのが上記コードかも。
このエラーコードやめたほうがいいですか?
お力添えいただきたく
何卒宜しくお願い致します。
(しゅう) 2021/10/25(月) 17:20
お力添えいただき誠にありがとうございます。
なんとファイルがありませんというエラーがでていましたが
変更後のファイル名にスラッシュが入り込んでいるため
エラーになっておりました。
スラッシュを置換したうえで保存名を確定したら
うまくいきました!
また勉強になりました。
ありがとうございます。
(しゅう) 2021/10/25(月) 17:56
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.