ExcelマクロVBA入門 | 第80回.ファイル操作T(その他) | Excelマクロの基礎と応用、エクセルVBAの入門・初級・初心者向け解説



最終更新日:2018-03-13

第80回.ファイル操作T(その他)


VBAではファイル操作するためのステートメントと関数が用意されています、

VBAでファイル操作する場合は、これらの用意されたステートメントや関数を使い処理を実現します。



ファイル操作で使う、ステートメントと関数

ChDriveステートメント
ChDirステートメント
MkDirステートメント
RmDirステートメント
Killステートメント
FileCopyステートメント
Nameステートメント
GetAttr関数
SetAttrステートメント

ステートメント・関数

構文 説明
ChDrive ChDrive drive 現在のドライブを変更します。
ChDir ChDir path 現在のフォルダを変更します。
MkDir MkDir path 新しいフォルダを作成します。
RmDir RmDir path 既存のフォルダを削除するステートメントです。
Kill Kill pathname

ディスクからファイルを削除します。
複数のファイルを指定するためのワイルドカード文字を使用できます。

FileCopy FileCopy source, destination ファイルをコピーします。
Name Name oldpathname As newpathname ファイルまたはフォルダの名前を変更します。
必要に応じて他のフォルダにファイルを移動します。
GetAttr GetAttr(pathname) ファイルまたはフォルダの属性を表す整数を返します。
SetAttr SetAttr pathname, attributes ファイルの属性を設定します。

GetAttrのみ関数となっていますが、特に意識する必要はありません。
GetAttrは取得した属性を返すための戻り値が必要な為、関数として実装されています。


GetAttrとSetAttrの、属性を表す定数

定数 内容
vbNormal 標準ファイル
vbReadOnly 読み取り専用ファイル
vbHidden 隠しファイル
vbSystem システム ファイル。
Macintosh では使用できません。
vbVolume ボリューム ラベル。この値を指定すると、すべての属性は無効になります。
Macintosh では使用できません。
vbDirectory フォルダ
vbAlias エイリアス ファイル。Macintosh でのみ使用できます。



使用例.

ChDrive "D"
"D" を現在のドライブにします。

ChDir "D:\WINDOWS\SYSTEM"
"D:" の現在のフォルダを変更します。
現在のドライブは変更されません。

MkDir "MYDIR"
フォルダ"MYDIR"を作成します。
既にフォルダが存在する場合はエラーとなります。

RmDir "MYDIR"
フォルダ"MYDIR"を削除します。
フォルダ内にファイルが残っている場合はエラーとなります。

Kill "TestFile"
ファイル"TestFile"を削除します。
ファイルが存在しない場合はエラーとなります。

FileCopy "SourceFile", "DestinationFile"
"SourceFile"と"DestinationFile"は、ファイルのフルパスを指定します。
ファイル"SourceFile"を"DestinationFile"としてコピーします。
"DestinationFile"が既に存在する場合は上書きされます。

Name "OldName" As "NewName"
"OldName"と"NewName"は、ファイルのフルパスを指定します。
ファイル"OldName"の名前を"NewName"に変更します。
"NewName"が既に存在する場合はエラーとなります。

変数 = GetAttr("TESTFILE")
ファイル属性の正数値が入ります。
GetAttrは関数なので戻り値が存在します。

SetAttr "TESTFILE", vbHidden + vbReadOnly
ファイル"TESTFILE"に隠しファイル属性、および読み取り専用属性を設定します。



これらは、単体で使用する事はほとんどないでしょう。

前回の、Dir関数と合わせて、各種ファイル操作を実現します。


実践例

フォルダごとバックアップを作成します。
バックアップフォルダは、
元のフォルダ名_bk

ただし、以下のVBAではサブフォルダは考慮していません。

Sub sample()
  Dim strPath As String
  Dim strFileName As String
  'フォルダの選択
  With Application.FileDialog(msoFileDialogFolderPicker)
    .InitialFileName = "D:\user"
    .AllowMultiSelect = False
    .Title = "フォルダの選択"
    If .Show = True Then
      strPath = .SelectedItems(1)
    Else
      Exit Sub
    End If
  End With
  'バックアップフォルダの削除
  If Dir(strPath & "_bk", vbDirectory) <> "" Then
    strFileName = Dir(strPath & "_bk\")
    Do While strFileName <> ""
      Kill strPath & "_bk\" & strFileName
      strFileName = Dir()
    Loop
    RmDir strPath & "_bk\"
  End If
  'バックアップフォルダの作成
  MkDir strPath & "_bk"
  'バックアップの作成
  strFileName = Dir(strPath & "\")
  Do While strFileName <> ""
    FileCopy strPath & "\" & strFileName, strPath & "_bk\" & strFileName
    strFileName = Dir()
  Loop
End Sub

ファイル操作関連のステートメントと関数を太字にしています。

VBAコード内にコメントを入れていますが、
処理手順としては以下の順となっています。、

・フォルダの選択
・バックアップフォルダの削除
・バックアップフォルダの作成
・バックアップの作成



VBAでファイル操作をしたい時、
ファイル操作のステートメントや関数を知らなければ処理が出来ません。

しかし、これらを全て完璧にマスターする必要はありません。

どういうものがあるかだけを覚えておいて、
必要な時に調べながら使えれば問題ありません。




同じテーマ「マクロVBA入門」の記事

第77回.組み込みダイアログ(Dialogs,xlDialogPrint)
第78回.総合練習問題8
第79回.ファイル操作T(Dir)
第80回.ファイル操作T(その他)
第81回.総合練習問題9
第82回.Rangeのプロパティ(Resize)
第83回.Rangeのプロパティ(Offset)
第84回.Rangeのプロパティ(Address)
第85回.結合セルの扱い
第86回.総合練習問題10
第87回.WorksheetFunction(ワークシート関数を使う)

新着記事 ・・・新着記事一覧を見る

数値範囲で表検索するVLOOKUP近似一致|エクセル関数超技(10月5日)
エクセルVBAでのシート指定方法|VBA技術解説(9月8日)
VBAのクラスとは(Class,Property,Get,Let,Set)|VBA技術解説(8月28日)
VBAこれだけは覚えておきたい必須基本例文10|VBA技術解説(8月22日)
VBAの省略可能な記述について|ExcelマクロVBA技術解説(8月11日)
複数条件判定を行う時のコツ|ExcelマクロVBA技術解説(7月11日)
For Next の使い方いろいろ|VBA技術解説(6月14日)
VBAを定型文で覚えよう|ExcelマクロVBA技術解説(3月26日)
VBAスタンダード試験対策まとめ|MOS VBAエキスパート対策(3月16日)
ユーザーフォームとメニューの操作|MOS VBAエキスパート対策(3月14日)

アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|ExcelマクロVBA入門
3.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
4.変数とデータ型(Dim)|ExcelマクロVBA入門
5.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
6.マクロって何?VBAって何?|ExcelマクロVBA入門
7.定数と型宣言文字(Const)|ExcelマクロVBA入門
8.繰り返し処理(For Next)|ExcelマクロVBA入門
9.とにかく書いて見よう(Sub,End Sub)|VBA入門
10.ひらがな⇔カタカナの変換|エクセル基本操作



  • >
  • >
  • >
  • ファイル操作T(その他)

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。





    このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。

    本文下部へ

    ↑ PAGE TOP