ExcelのVBAを高速化する際のおまじないを詳しく解説
ねこる
ねこるの仕事術
Excelのマクロ(VBA)でファイルのコピー、切り取りをしたいと思ったことはありませんか?
マクロ(VBA)でもコピー、切り取りは可能です。
難しくないので、やり方を解説していきますね!
1Sub CopyFile()
2 Dim fso As Object
3 Set fso = CreateObject("Scripting.FileSystemObject")
4
5 ' コピー元のファイルパスを指定
6 Dim sourceFilePath As String
7 sourceFilePath = "/Users/nekoru/Library/CloudStorage/Dropbox/0 Inbox/Book1.xlsm"
8
9 ' コピー先のフォルダパスを指定
10 Dim destinationFolderPath As String
11 destinationFolderPath = "/Users/nekoru/Library/CloudStorage/Dropbox/1 files/Book1.xlsm"
12
13 ' ファイルをコピー
14 fso.CopyFile sourceFilePath, destinationFolderPath
15
16 ' オブジェクトを解放
17 Set fso = Nothing
18End Sub
マクロ(VBA)では、FileSystemObjectを使ってファイルをコピーします。
上記のように指定するとファイルがコピーされます。
1Sub CutFile()
2 Dim fso As Object
3 Set fso = CreateObject("Scripting.FileSystemObject")
4
5 ' 切り取るファイルのパスを指定
6 Dim filePath As String
7 filePath = "/Users/nekoru/Library/CloudStorage/Dropbox/0 Inbox/Book1.xlsm"
8
9 ' 移動先のフォルダパスを指定
10 Dim destinationFolderPath As String
11 destinationFolderPath = "/Users/nekoru/Library/CloudStorage/Dropbox/1 files/Book1.xlsm"
12
13 ' ファイルを切り取る
14 fso.MoveFile filePath, destinationFolderPath
15
16 ' オブジェクトを解放
17 Set fso = Nothing
18End Sub
切り取りもコピーと同じく、FileSystemObjectを使います。
そして、切り取り元、移動先のパスを指定し、fso.MoveFileで確定です。
コマンドが違うだけで、どちらも似たようなものですね。
プログラムでファイルコピー、切り取りをするさいの注意点があります。
それは、「プログラムが正しく動かないかも」と考えることです。
プログラムをコピーすれば完璧なんですが、なにか一部間違っていたりしたらファイルが消えてしまいます。
なので、絶対にバックアップを取っておきましょう。
プログラムで関わらないフォルダにファイルをコピーしておけばOKです。
プログラムを実行させてうまくいくまでバックアップファイルは残しておきましょう。
Excel VBAを勉強するなら「できる大辞典」がおすすめです。
辞書なのでピンポイントで学ぶことができます。大学時代、2016年版を購入して勉強していましたが相当使いました。
ネットだけでも勉強はできますが、本を読みながらVBAを勉強したい方は購入してください。