ファイルへのアクセス 
外部ファイルへのアクセスを OpenOffice.org API のサービスを使用して行います。ファイルアクセスは OpenOffice.org Basic の実行の際のセキュリティー設定に大きく関与しています。
アクセス 
ファイルへのアクセスには com.sun.star.ucb.SimpleFileAccess サービスを使用します。
Sub SimpleFileAcccess_1
Dim oSimpleFileAccess As Object
oSimpleFileAcces = createUnoService( _
"com.sun.star.ucb.SimpleFileAccess" )
End Sub
ファイルの確認 
ファイルの有無や,ディレクトリかどうか,読み込み専用,などの確認に使用するメソッドです。
ファイルの有無の確認には exists メソッドを使用します。引数に指定した URL のファイルの有無を調べます。
Sub SimpleFileAcccess_2
Dim oSimpleFileAccess As Object
Dim oSettings As Object
Dim oPathSettings As Object
Dim sURL As String
oSettings = createUnoService( "com.sun.star.frame.Settings" )
oPathSettings = oSettings.getByName( "PathSettings" )
sURL = oPathSettings.getPropertyValue( "ProgPath" ) & _
"/" & "soffice.exe"
oSimpleFileAccess = createUnoService( _
"com.sun.star.ucb.SimpleFileAccess" )
MsgBox oSimpleFileAccess.exists( sURL )
End Sub
引数は URL 形式で指定します。
URL がディレクトリを示しているのかどうかを調べるには isFolder メソッドを使用します。引数はファイルの URL です。
Sub SimpleFileAcccess_3
Dim oSimpleFileAccess As Object
Dim oSettings As Object
Dim oPathSettings As Object
Dim sURL As String
oSettings = createUnoService( "com.sun.star.frame.Settings" )
oPathSettings = oSettings.getByName( "PathSettings" )
sURL = oPathSettings.getPropertyValue( "ProgPath" )
oSimpleFileAccess = createUnoService( _
"com.sun.star.ucb.SimpleFileAccess" )
MsgBox oSimpleFileAccess.isFolder( sURL )
End Sub
ファイルが読み込み専用かどうかを調べるには isReadOnly メソッドを使用します。引数はファイルの URL です。
Sub SimpleFileAcccess_4
Dim oSimpleFileAccess As Object
Dim oSettings As Object
Dim oPathSettings As Object
Dim sURL As String
oSettings = createUnoService( "com.sun.star.frame.Settings" )
oPathSettings = oSettings.getByName( "PathSettings" )
sURL = oPathSettings.getPropertyValue( "ProgPath" ) & _
"/" & "soffice.exe"
oSimpleFileAccess = createUnoService( _
"com.sun.star.ucb.SimpleFileAccess" )
MsgBox oSimpleFileAccess.isReadOnly( sURL )
End Sub
ファイル操作 
ファイルのコピー,移動,削除,ディレクトリの作成などです。
ファイルのコピーには copy メソッドを使用します。また,ファイルの削除には move メソッドを,ファイルの削除には kill メソッドを使用します。ディレクトリの作成には createFolder を使用します。
Sub SimpleFileAcccess_5
Dim oSimpleFileAccess As Object
Dim oSettings As Object
Dim oPathSettings As Object
Dim sURL As String
Dim sSourceURL As String
Dim sDestURL As String
oSettings = createUnoService( _
"com.sun.star.frame.Settings" )
oPathSettings = oSettings.getByName( "PathSettings" )
sURL = oPathSettings.getPropertyValue( "Work" ) & _
"/simplefileaccess"
sSourceURL = oPathSettings.getPropertyValue( "ProgPath" ) & _
"/" & "soffice.exe"
sDestURL = sURL & "/" & "soffice.exe"
oSimpleFileAccess = createUnoService( _
"com.sun.star.ucb.SimpleFileAccess" )
If NOT oSimpleFileAccess.exists( sURL ) Then
With oSimpleFileAccess
.createFolder( sURL )
.copy( sSourceURL, sDestURL )
MsgBox oSimpleFileAccess.exists( sDestURL )
.move( sDestURL, sURL & "/" & "OOo.exe"
Print .exists( sDestURL ), _
.exists( sURL & "/" & "OOo.exe" )
.kill( sURL )
MsgBox oSimpleFileAccess.exists( sURL )
End With
End If
End Sub
kill メソッドではディレクトリを指定すると,ディレクトリが空でなくてもディレクトリごと全て削除します。
実際に使用する際にはファイルの有無や読み込み専用の確認をもっとしっかり行う必要があります。
その他 
ファイルのサイズの取得には getSize メソッド,ファイルタイプの取得には getContentType メソッドを,ファイルの更新日時の取得には getDateTimeModified メソッド,ディレクトリの全てのファイル名を取得するには getFolderContents メソッドを使用します。
Sub SimpleFileAcccess_6
Dim oSimpleFileAccess As Object
Dim oSettings As Object
Dim oPathSettings As Object
Dim sURL As String
oSettings = createUnoService( "com.sun.star.frame.Settings" )
oPathSettings = oSettings.getByName( "PathSettings" )
sURL = oPathSettings.getPropertyValue( "ProgPath" ) & _
"/soffice.exe"
oSimpleFileAccess = createUnoService( _
"com.sun.star.ucb.SimpleFileAccess" )
MsgBox "size: " & oSimpleFileAccess.getSize( sURL )
MsgBox "type: " & oSimpleFileAccess.getContentType( sURL )
MsgBox "Time: " & oSimpleFileAccess.getDateTimeModified( sURL )
End Sub
上の三つのメソッドの引数はともにファイルの URL です。
getFolderContents メソッドではサブディレクトリ名も取得するかどうかを指定できます。
Sub SimpleFileAcccess_7
Dim oSimpleFileAccess As Object
Dim oSettings As Object
Dim oPathSettings As Object
Dim sURL As String
Dim sFiles() As String
Dim sContents As String
oSettings = createUnoService( "com.sun.star.frame.Settings" )
oPathSettings = oSettings.getByName( "PathSettings" )
sURL = oPathSettings.getPropertyValue( "ProgPath" )
oSimpleFileAccess = createUnoService( _
"com.sun.star.ucb.SimpleFileAccess" )
For i% = 0 To 1
sContents = ""
sFiles() = oSimpleFileAccess.getFolderContents( sURL, i )
For j% = 0 To UBound( sFiles() )
sContents = sContents & sFiles( j ) & Chr(10)
Next j
MsgBox UBound( sFiles() ) + 1 & " files" & Chr(10) & sContents
Next i
End Sub
getFolderContents メソッドの最初に引数には URL を,二番めの引数にはサブディレクトリ名をファイルと同様に表示するかどうかを指定します。