VBレスキュー(花ちゃん)
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ各掲示板

リンク元へ戻ります。 フォルダー関係のメニュー
1.FileSystemObject のフォルダーに関するメソッド・プロパティについて
2.フォルダーに関する基本的なワンポイントサンプル集
3.フォルダー(ディレクトリ)に関するパス操作色々
4.指定のフォルダーのファイル数・サブフォルダー数・総バイト数を取得
5.指定のフォルダーをエクスプローラーで表示
6.深い階層のフォルダーを一発で作成する
7.ファイル・フォルダーをごみ箱へ
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.その他、当サイト内に掲載のフォルダーに関するサンプル


2.フォルダーに関する基本的なワンポイントサンプル集
1.現在のフォルダーパスを取得する(カレントディレクトリを取得する)
2.フォルダーの有無を調べる
3.新しいフォルダーを作成する
4.フォルダーを削除する
5.フォルダーをコピーする
6.フォルダーを移動する
7.フォルダーの作成日時/アクセス日時/更新日時を取得する
8.
9.
10.
11.
12.
13.
14.
15.


 下記プログラムコードに関する補足・注意事項 
動作確認:Windows Vista・Windows 7 (32bit) / VB6.0(SP6) Excel 2010
Option :[Option Explicit]
参照設定:Microsoft Scripting Runtime (scrrun.dll)    参照設定方法参照
使用 API:

その他 :
    :
このページのトップへ移動します。 1.現在のフォルダーパスを取得する(カレントディレクトリを取得する)   

Private Sub Command1_Click()

  Debug.Print App.Path            'C:\Program Files\Microsoft Visual Studio\VB98
  Debug.Print CurDir$             'C:\Program Files\Microsoft Visual Studio\VB98

'---------- FileSystemObject での操作 ----------

  Dim Fso    As New FileSystemObject
  Debug.Print Fso.GetFolder(".").Path     'C:\Program Files\Microsoft Visual Studio\VB98

End Sub

このページのトップへ移動します。 2.フォルダーの有無を調べる

'フォルダーの有無を調べる
Private Sub Command1_Click()
  Dim myFolder As String
  myFolder = Dir$("c:\test", vbDirectory)
  If Len(myFolder) > 1 Then
    MsgBox "フォルダーが見つかりました"
  Else
    MsgBox "フォルダーが見つかりません"
  End If

'---------- FileSystemObject での操作 ----------

  Dim Fso    As New FileSystemObject
  If Fso.FolderExists("C:\Test1") = True Then
    MsgBox "フォルダーが見つかりました"
  Else
    MsgBox "フォルダーが見つかりません"
  End If
End Sub

このページのトップへ移動します。 3.新しいフォルダーを作成する

Private Sub Command1_Click()
  Dim myFolder As String
  myFolder = Dir$("c:\test", vbDirectory)
  If Len(myFolder) > 1 Then
    '指定したフォルダーが既に存在していた場合は、エラーが発生するので
    '事前にフォルダーの有無を調査
    MsgBox "すでにフォルダーが存在します。"
  Else

    MkDir$ "C:\Test"

    MsgBox "フォルダーを作成しました。"
  End If

'---------- FileSystemObject での操作 ----------

  Dim Fso    As New FileSystemObject
  If Fso.FolderExists("C:\Test1") = True Then
    '指定したフォルダーが既に存在していた場合は、エラーが発生するので
    '事前にフォルダーの有無を調査
    MsgBox "すでにフォルダーが存在します。"
  Else

    Fso.CreateFolder "C:\Test1"

    MsgBox "フォルダーを作成しました。"
  End If
End Sub

どちらの機能も "C:\Test\Test1" のような階層のフォルダーを一発で作成する事はできません。(エラーが発生)

このページのトップへ移動します。 4.フォルダーを削除する

Private Sub Command1_Click()
  Dim myFolder As String
  myFolder = "c:\test"
  If Len(Dir$(myFolder, vbDirectory)) > 1 Then
    '指定したフォルダー内にファイルが存在していると、エラーが発生します。
    RmDir$ myFolder
  End If

上記では、実用的ではないので下記を使用された方が便利かと思います。

'---------- FileSystemObject での操作 ----------

  Dim Fso    As New FileSystemObject
  Dim myFolder As String
  myFolder = "c:\test"

  If Fso.FolderExists(myFolder) = True Then
    Fso.GetFolder(myFolder).Delete
    Fso.DeleteFolder myFolder, True
  End If

End Sub

Delete メソッドを使った方法も DeleteFolder メソッドを使って行った処理とまったく同じです。

このページのトップへ移動します。 5.フォルダーをコピーする

Private Sub Command1_Click()
'---------- FileSystemObject での操作 ----------
  Dim Fso    As New FileSystemObject
  Dim myFolder As String
  myFolder = "c:\test"

  If Fso.FolderExists(myFolder) = True Then
    '"c:\test" のフォルダーがコピーされ "D:\test1" というフォルダーが作成されます。
    Fso.GetFolder(myFolder).Copy "D:\test1", True
    Fso.CopyFolder myFolder, "G:\test1", True
  End If

End Sub

このページのトップへ移動します。 6.フォルダーを移動する

Private Sub Command1_Click()
'---------- FileSystemObject での操作 ----------
  Dim Fso    As New FileSystemObject
  Dim myFolder As String
  myFolder = "c:\test\test2"

  If Fso.FolderExists(myFolder) = True Then
    '異なるドライブ間への移動はできません(エラーが発生する)
    Fso.GetFolder(myFolder).Move "c:\"
    Fso.MoveFolder myFolder, "c:\"
  End If

End Sub

従ってコピーしてから元のフォルダーを削除する事になります。

このページのトップへ移動します。 7.フォルダーの作成日時/アクセス日時/更新日時を取得する

Private Sub Command1_Click()
'------------------------- FileSystemObject での操作 -------------------------
  Dim Fso    As New FileSystemObject

  'フォルダーが作成された日付と時刻を取得
  Debug.Print Fso.GetFolder("c:\test").DateCreated    '2013/07/13 11:12:26

  'フォルダーが最後にアクセスされたときの日付と時刻を取得
  Debug.Print Fso.GetFolder("c:\test").DateLastAccessed  '2013/07/14 10:33:08

  'フォルダーが最後に更新されたときの日付と時刻を取得
  Debug.Print Fso.GetFolder("c:\test").DateLastModified  '2013/07/14 10:33:08

End Sub

このページのトップへ移動します。 8.


このページのトップへ移動します。 9.


このページのトップへ移動します。 10.


このページのトップへ移動します。 11.


このページのトップへ移動します。 12.


このページのトップへ移動します。 13.


このページのトップへ移動します。 14.


このページのトップへ移動します。 15.


このページのトップへ移動します。 検索キーワード及びサンプルコードの別名(機能名)





このページのトップへ移動します。