100753 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

ULALA'Sブログ

ULALA'Sブログ

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
2020.08.13
XML
カテゴリ: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) | コメントを書く


PR

Profile

ULALA13

ULALA13

Calendar


© Rakuten Group, Inc.