|
|
本章では、ファイルの操作についてコードサンプルを示しながら説明していきます。 |
|
|
[ツール]→[参照設定]で、
「Microsoft Office 11.0 Object Library」をチェックすること
「Microsoft Scripting Runtime」をチェックすること |
|
|
|
|
例1
Dim fd As FileDialog
Dim vrtSelectedFiles As Variant
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd 'プロパティの設定
.Title = "ダイアログのタイトル(ファイル参照)"
.Filters.Clear 'フィルターの設定
.Filters.Add "テキスト", "*.txt; *.csv"
.Filters.Add "エクセル", "*.xls"
.Filters.Add "Access", "*.mdb"
.Filters.Add "すべてのファイル", "*.*"
.FilterIndex = 4 '"すべてのファイル"をデフォルト表示
.InitialView = msoFileDialogViewDetails
.InitialFileName = CurrentProject.Path '最初に開くホルダー
.AllowMultiSelect = True '複数選択可
If .Show = -1 Then '.Showで[参照] ダイアログ ボックスを表示
For Each vrtSelectedFiles In .SelectedItems
Msgbox "選択したアイテムのパス : " & vrtSelectedItems
Next vrtSelectedFiles
Else 'ユーザーが [キャンセル] をクリック
End If
End With
Set fd = Nothing
※事前の準備(参照設定)
Visual Basic Editor→ツール→参照設定→MicroSoft Office 1x.0 Object Libraryをチェック |
|
|
|
|
|
|
使用例 |
Dim fd As FileDialog
Dim vrtSelectedFolder As Variant
Set fd = Application.FileDialog(msoFileDialogFolderPicker)
With fd 'プロパティの設定
.Title = "ダイアログのタイトル(フォルダ参照)"
.InitialView = msoFileDialogViewDetails
.InitialFileName = "C:\" '最初に開くホルダー
If .Show = -1 Then [参照] ダイアログ ボックスを表示
For Each vrtSelectedFolder In .SelectedItems
FDFolderPicker = vrtSelectedFolder
Next vrtSelectedItem
Else 'ユーザーが [キャンセル] をクリックした場合
End If
End With
Set fd = Nothing |
|
|
|
|
|
|
Excelの場合
DoCmd.TransferSpreadsheet [transfertype][, spreadsheettype], tablename,filename[,
hasfieldnames][, range]
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "ABCTable",
"C:\サンプル.xls", False
|
CSV(Text)の場合
DoCmd.TransferText [transfertype][, specificationname], tablename, filename[,hasfieldnames]
DoCmd.TransferText acImportDelim, , "ABCTable", "C:\サンプル.csv",
False |
|
|
|
|
|
|
Excelの場合
DoCmd.TransferSpreadsheet [transfertype][, spreadsheettype], tablename,filename[,
hasfieldnames][, range]
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "ABCTable",
"C:\サンプル.xls", False
|
CSV(Text)の場合
DoCmd.TransferText [transfertype][, specificationname], tablename, filename[,hasfieldnames]
DoCmd.TransferText acExportDelim, , "ABCTable", "C:\サンプル.csv",
False |
|
|
|
|
|
|
例1
Dim fn As String
fn = CurrentProject.Path & "\サンプル.mdb"
If Dir(fn) <> "" Then
MsgBox "ファイルは存在"
Else
MsgBox "ファイルは存在しない"
End If
|
例2
Object.FileExists(filespec)
Dim VarRet As Variant
Dim myFileSystem As New Scripting.FileSystemObject
VarRet = myFileSystem.FileExists("C:\サンプル.mdb")
If VarRet = True Then
MsgBox "ファイルは存在"
ElseIf VarRet = False Then
MsgBox "ファイルは存在しない"
End If |
|
|
|
|
|
|
object.CopyFile source, destination[, overwrite] |
Dim myFileSystem As New Scripting.FileSystemObject
myFileSystem.CopyFile "C:\サンプル.mdb", "D:\" |
|
|
|
|
|
|
object.MoveFile source, destination |
Dim myFileSystem As New Scripting.FileSystemObject
myFileSystem.MoveFile "C:\サンプル.mdb", "D:\" |
|
|
|
|
|
|
object.DeleteFile filespec[, force] |
Dim myFileSystem As New Scripting.FileSystemObject
myFileSystem.DeleteFile "C:\サンプル.mdb" |
|
|
|
|
|
|
object.FileExists(filespec) |
Dim fso As Object 'FileSystemObject
Dim myFullPath As String 'フルパス
Dim myFileName As String 'ファイル名
myFullPath = "C:\サンプル.mdb"
Set fso = CreateObject("Scripting.FileSystemObject")
myFileName = fso.GetFileName(myFullPath) |
|
|
|
|
|
|
Dim pathNAME As String
pathNAME = CurrentProject.Path |
|
|
|
|
|
Dim csvFILENAME As String Dim wk_DB
As Database
Dim wk_Rec As
Recordset
csvFILENAME = CurrentProject.Path & "\csvJOBS.txt" Open
csvFILENAME For Output As #1
Set wk_DB = CurrentDb() Set wk_Rec =
wk_DB.OpenRecordset("JOBS", dbOpenTable)
Do Until wk_Rec.EOF =
True Write #1, wk_Rec.Fields("JOB_ID"), wk_Rec.Fields("JOB_TITLE"),
wk_Rec.Fields("MIN_SALARY") wk_Rec.MoveNext Loop
wk_Rec.Close wk_DB.Close
Close
#1 |