テーマ:プログラミングあれこれ(230)
カテゴリ:VBA
先日に引き続き今回もVBAスタンダード
テキストから具体的なソースを交えて 書いてみようと思う。 -------------------------------------- ①FileCopy ②MkDir -------------------------------------- -------------------------------------- ①FileCopy -------------------------------------- その名の通り、ファイルをコピーする関数。 ボタン押下によるプログラムとしてみた。 ボタン押下前のフォルダ状態(=コピー元) ソース(抜粋) ' コピー元、先のパスを取得 Dim copyFrom As String: copyFrom = ThisWorkbook.Sheets(1).Range("I39").Value Dim copyTo As String: copyTo = ThisWorkbook.Sheets(1).Range("I40").Value 'ファイルコピー FileCopy copyFrom, copyTo で、下が「ファイルコピー」ボタン押下後の エクスプローラ内。鈴木.xlsxがコピーされて いることが分かる。(タイムスタンプも同一となる) VBEからF2を押下して、ライブラリを見るクセを つけておくと良い。 FileCopyは、VBAライブラリのFileSystemクラスに 属するメンバーであることが分かる。 また、下記画像の最下部にあるリファレンス。 第1引数はSource、つまりコピー元、 第2引数はDestination、コピー先、というのが引数で分かる。 まぁ、プログラム上、FileCopyと打って、スペースを 押下すれば引数候補が出るのでそれを見ればわかるが、 ライブラリ全体を通してみたい場合はF2から見るのが良い。 ちなみにFileCopyはファイルのコピーなので(当たり前) 既に存在していたとしてもエラーにはならず、上書きされる。 -------------------------------------- ②MkDir -------------------------------------- 以下のように「フォルダ作成」欄の「4.x」という名前で フォルダを作成してみる。 Dim createDir As String: createDir = ThisWorkbook.Sheets(1).Range("I41").Value ' フォルダ作成 MkDir createDir FileCopy copyFrom, createDir & "\" & "佐藤.xlsx" 上記プログラム実行後は、以下の ように「4.x」フォルダが作成され、かつ ファイルがコピーされているのが分かる。 FileCopyは上書きされるが、MkDirは作成したい フォルダが既に存在すると、以下のエラーが出るので エラーハンドリングが必要となるので注意。 画像は省略するが、MkDirもFileCopyと同じく、 VBAライブラリのFileSystemクラスに 属するメンバーである。 ソースはあくまで資格取得用の為だけ記載しているため、 本来はもっと効率のよい記載方法があったり、 Cellsを利用する方が良いのだが、極力試験対策に 合わせて記載しているのでご了承を。。 お気に入りの記事を「いいね!」で応援しよう
Last updated
2020.08.22 10:02:56
コメント(0) | コメントを書く
[VBA] カテゴリの最新記事
|