VBAで
・ファイルを移動
できます!
ここでは
・私が可読性が良いと考える方法
を記載します!
※実現方法は複数あります。
※可読性が良い方法を知っておけばよいです。
移動時にエラーが発生しないように
・気を付けるべき点
も記載します!
VBAコード
ここでは例として、
・デスクトップ配下のファイル「aiueo.txt」を移動
させます。
Option Explicit
Sub sample()
Dim fso As Object
Dim fileFullPath As String
Dim folderPath As String
'移動させるファイルのパスを設定
fileFullPath = "C:\Users\user\Desktop\aiueo.txt"
'移動先のフォルダのパスを設定
folderPath = "C:\Users\user\Desktop\folder_001\"
Set fso = CreateObject("Scripting.FileSystemObject")
'ファイルを移動
Call fso.MoveFile(Source:=fileFullPath, Destination:=folderPath)
'後片付け
Set fso = Nothing
End Sub
実行結果
ファイルを移動できました。
備考(Nameステートメントについて)
「Nameステートメント」は「ファイル名を変更」するためのモノですが、応用することで「ファイルの移動」もできます。
Option Explicit
Sub sample()
Dim oldFileFullPath As String
Dim newFolderPath As String
'移動させるファイルのパスを指定
oldFileFullPath = "C:\Users\user\Desktop\aiueo.txt"
'移動先のファイルのパスを指定
newFolderPath = "C:\Users\user\Desktop\folder_001\aiueo.txt"
'ファイルを移動
Name oldFileFullPath As newFolderPath
End Sub
参考①
移動先のファイルが既に存在している状態で移動を実行すると、エラー「既に同名のファイルが存在しています」が発生します。
エラーが発生しないように、移動させる前に移動先のファイルの存在有無を確認しましょう。
ファイルが既に存在している場合は、削除しておきましょう。
※下記の記事の削除方法は、読み取り専用でないファイルも削除できます。
※削除するファイルが読み取り専用であっても問題無く削除できるよう、下記の記事の方法で削除することをオススメします。
参考②
フォルダを移動する方法は以下を参照してください。
参考③
ファイル名を変更することもできます。
詳細は以下の記事をご確認ください。
参考④
上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。
●「FileSystemObject」の「MoveFile」メソッド