マクロコードを作業中のフォルダに変更する方法を教えてください。
マクロ
Sub ファイルコピー()
Dim myPath(2) As String
Dim FileName As String
' ファイル元保管場所
myPath(1) = "C:\Users\Desktop\テスト物件\審査\"
' ファイル貼り付け先
myPath(2) = "C:\Users\Desktop\テスト物件\検査\"
FileName = Dir(myPath(1) & "*(交付用).pdf")
Do While FileName <> ""
FileCopy myPath(1) & FileName, myPath(2) & FileName
FileName = Dir
Loop
End Sub
が有ります。
このコードでは
' ファイル元保管場所
myPath(1) = "C:\Users\Desktop\テスト物件\審査\"
' ファイル貼り付け先
myPath(2) = "C:\Users\Desktop\テスト物件\検査\"
になっておりますが、「審査」「検査」それぞれのフォルダは作業フォルダ内になります。
例えば作業フォルダ名「北海 太郎邸新築工事」や「北海 花子邸新築工事」等々その各作業フォルダ内に必ず「「審査」「検査」があります。
ファイル元保管場所とファイル貼り付け先の指定フォルダを作業中のフォルダに変更する方法を教えてください。
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
なさりたい事が良く解らないですが
このコードはファルダ内にあるPDFに対して条件に合った場合
FileCopyをするコードです
構造が限定されているのなら
作業中のファルダパスを取得する事で可能です
作業中とはどのような作業なのか
ファイルを開いて操作していると言う事でしょうか
VBAで何だかの操作をフォルダ内ファイルに対して行ってい状態ですか?
このVBAのブックが作業中フォルダにあるとか・・・
(Excelブックなら簡単ですが)PDFファイルを手動で開いているだけとかになると他のアプリケーションのWindowからpathを取得する事になり難しいですね・・・これは該当しないと言う事で進めると
作業中もしくはVBA実行ブックからパスを取得して フォルダパスとファイル名を作成してPDFエキスポート(又はFileCopy)すれば出来ると思います
VBA実行ブックが テスト物件ファルダにあるのなら VBA実行ブックからパスを取得して
myPath(1) =ThisWorkbook.Path & "\審査\"
myPath(2) =ThisWorkbook.Path & "\検査\"
となります
VBAなどでテスト物件ファルダにあるブックを開いているのなら
Workbooks.Open 直後に グローバル変数など(セル値)に代入しておく
myPath(1) =ActiveWorkbook.Path & "\審査\"
myPath(2) =ActiveWorkbook.Path & "\検査\"
既に開いている テスト物件ファルダにあるブックが作業中ブックなら
Dim bk As Workbook
For Each bk In Workbooks
If bk.Path Like "*新築工事" Then
myPath(1) = bk.Path & "\審査\"
myPath(2) = bk.Path & "\検査\"
End If
Next bk
思い付く事を書きましたが
いずれにしても \審査 \検査 各フォルダが存在している事は
保証されていませんので
Dim f As Object
Dim n As Integer
With CreateObject("Scripting.FileSystemObject")
For Each f In .GetFolder(ThisWorkbook.Path).SubFolders
Select Case Mid(f.Path, InStrRev(f.Path, "\") + 1)
Case "審査"
myPath(1) = f.Path & "\"
n = n + 1
Case "検査"
myPath(2) = f.Path & "\"
n = n + 1
End Select
If n = 2 Then exit for
Next f
End With
の様に実際にサブフォルダを探してmyPathの値やnの値など取得できているかとか最終チェックをする方が良いと思われます
色々とありがとうございます
説明が悪く申し訳ありません
早速試してみて
又 ご連絡させていただきます
又 昨日PDFファイル名を変更する質問をさせて頂き 教えていただいたコードを設定してみましたがエラーが出て実行出来なかったと
補足させて頂きましたので
そちらもよろしくお願いします
No.4
- 回答日時:
>マクロを設定しているエクセルファイルは必ず審査フォルダ内にあります
Sub フォルダ削除()
On Error Resume Next
Dim FSO As Object
Dim Adr As String
Set FSO = CreateObject("Scripting.FileSystemObject")
Adr = FSO.GetParentFolderName(ThisWorkbook.Path)
FSO.DeleteFolder Adr & "\前審査"
End Sub
No.2
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/07/01 12:54
- Visual Basic(VBA) エクセルのマクロについて教えてください 物件ごとのフォルダを作成してます そのフォルダ内にサブフォル 2 2023/07/02 17:58
- Visual Basic(VBA) あるフォルダーのファイルを違う親フォルダーのサブフォルダーに移したい 11 2023/02/15 19:00
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Excel(エクセル) フォルダ内の全ブックのシート名を変更したい 7 2022/09/22 21:34
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/02/21 11:19
- Excel(エクセル) 【マクロ】ファイル名の日付によって、保管するフォルダを、自動選択したい 4 2023/08/16 11:24
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/04 12:47
- Excel(エクセル) 【VBAファイル移動】2つのマクロを順に実行。1つ目のマクロが実行不可⇒2つ目が実行不可となる件 2 2022/07/29 12:17
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで指定したフォルダに保存...
-
Windows10でコマンドプロンプト...
-
【マクロ】ファイル名の日付に...
-
Downloaded Program Filesはど...
-
ディレクトリ名変更してコピー...
-
Access VBA で フォルダ権限...
-
同一フォルダ内の別ブックから...
-
windowsでテキストファイルの各...
-
VBA 最新のフォルダ取得
-
エクセルで、マクロを使わずに...
-
VBA フォルダ名に特定の文字を...
-
PHPで、指定フォルダ(サブフォ...
-
パス名に2バイト文字(マルチバ...
-
Excelのハイパーリンクについて...
-
VBA フォルダの複数選択ができない
-
Excelvbaでブックをコピー名前...
-
保存先のフォルダ名を指定した...
-
ファイル名に特定の文字列を含...
-
ファイル保存時のダイアログ表...
-
フォルダ内のPDFファイル名を変...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
パス名に2バイト文字(マルチバ...
-
ファイル名と同名のフォルダを...
-
VBA 最新のフォルダ取得
-
Excelのハイパーリンクについて...
-
デスクトップの画像をhtmlに表...
-
ディレクトリ名変更してコピー...
-
VBA フォルダ名に特定の文字を...
-
バッチファイルで指定フォルダ...
-
フォルダ内のPDFファイル名を変...
-
Access VBA で フォルダ権限...
-
excelマクロ 冒頭3文字が一致す...
-
【マクロ】ファイル名の日付に...
-
フォルダにリンクを貼りたい
-
会社のネットワーク上のファイ...
-
多量のファイルをフォルダに自...
-
C ファイル出力で、フォルダが...
-
保存先のフォルダ名を指定した...
-
vbsで選択ダイアログを表示した...
-
Excel VBA 同じ名前のフォルダ...
おすすめ情報
回答ありがとうございます
物件フォルダは各物件ごとの名前等で決めてます
よろしくお願いします
私が行いたいのは
先ず 最初に各物件ごとのフォルダがあります(フォルダ名はフォルダごとに変更になる為固定できません)
そのフォルダフォルダの中にサブフォルダで
審査 検査 前審査 の3つのフォルダがありますが 物件によっては 前審査フォルダが無い場合もあります
マクロを設定しているエクセルファイルは必ず審査フォルダ内にあります
審査フォルダ内にあるマクロファイルを開き
マクロを実行した時に
サブフォルダにある 前審査フォルダを削除したいのですが
前審査フォルダが無い場合も想定して
コードの最初に
On Error Resume Next
を設定しました
よろしくお願いします