|
|
|
本章では、ファイル操作に関するコードサンプルを例示します。 |
|
|
|
Sub カレント文書のパスを取得する()
Dim mypath As String
mypath = ActiveDocument.Path & Application.PathSeparator '文書のパス
mypath = CurDir() & Application.PathSeparator 'カレントのパス
End Sub |
|
|
|
Sub カレントディレクトリを変更する()
Dim mypath As String
mypath = ActiveDocument.Path & Application.PathSeparator
End Sub |
|
|
|
|
Sub FilePathGet1()
Set dlgOpen = Application.FileDialog(FileDialogType:=msoFileDialogFilePicker)
With dlgOpen
.AllowMultiSelect = False
.Title = "処理対象のフォルダーを指定してください。"
.InitialFileName = "C:\Documents and Settings" '初期表示パス
.Filters.Clear
'[ファイルの種類]ボックスのリストに「Word 文書(*.doc)」を追加
.Filters.Add "Word 文書(*.doc)", "*.doc"
If .Show = -1 Then
MsgBox .SelectedItems(1)
End If
End With
End Sub
'フルパスからファイル名を取り出す
MagBox .Mid(strPath, InStrRev(strPath, "\") + 1, Len(strPath)
- InStrRev(strPath, "\"))
|
|
|
|
|
'表示するファイルの種類を指定しない方法
Sub FolderPathGet1()
Dim strPath As String
Dim dlgFind As Dialog
Set dlgFind = Dialogs(wdDialogFileFind)
With dlgFind
Select Case .Display
Case -1 'ファイルが選択されたとき
'FileFind Dialogの更新
.Update
'FileFind Dialogからフォルダパスの取得
strPath = .SearchPath
Case Else 'キャンセルボタンが押されたとき
End
End Select
End With
MsgBox strPath
End Sub
※wdDialogFileOpen クラス :
wdDialogFileFind クラス :
FileSearch メソッド
表示するファイルの種類を指定する方法
Sub FolderPathGet2()
Dim mydlgOpen As Dialog
Dim mydlgFind As Dialog
'ダイアログボックスを表示しファイル指定を要求します
Set mydlgOpen =
Dialogs(wdDialogFileOpen)
Set mydlgFind =
Dialogs(wdDialogFileFind)
With
mydlgOpen
'表示されるファイルをワード文書に指定
.Name = "*.doc"
Select
Case .Display
Case -1
'ファイルが選択されたとき
mydlgFind.Update
strPath =
mydlgFind.SearchPath
Case Else
'キャンセルボタンが押されたとき
End
End Select
End With
End Sub |
|
|
|
Sub FindFile1()
Dim scrFileName As String
scrFileName = "MyDoc.Doc"
Documents.Open FileName:=.scrFileName, _
ConfirmConversions:=(False), _
ReadOnly:=(False), _
AddToRecentFiles:=(False), _
PasswordDocument:=(""), _
PasswordTemplate:=(""), _
Revert:=(False), _
WritePasswordDocument:=(""), _
WritePasswordTemplate:=(""), _
Format:=wdOpenFormatAuto
End Sub
Sub FindFile2()
scrPath = "C:\My Documents\"
scrFileName = "MyDoc.Doc"
' Set the FileOpen dialog to display the criteria.
Set dlg = Dialogs(wdDialogFileOpen)
dlg.Name = scrFilePath & scrFileName
' If the file is not found, trap the error.
On Error Resume Next
' Execute the dialog without displaying.If the file exists
' the dlg.Execute command will open the file.
dlg.Execute
' If the file does not exist, display default error.
If Err = 5174 Then
MsgBox Err.Description
End If
End Sub
|
|
|
|
|
Sub 文書を閉じる()
ActiveDocument.Close
Documents("Report.doc").Close SaveChanges:=wdDoNotSaveChanges
End Sub |
|
|
|
|
Sub 文書を保存()
ActiveDocument.Save
End Sub |
|
|
|
|
Sub 名前を付けて保存()
Dim newFileNM As String
ChangeFileOpenDirectory ActiveDocument.Path & Application.PathSeparator
newFileNM = "新規文書名称.doc"
ActiveDocument.SaveAs FileName:=newFileNM, FileFormat:=wdFormatDocument,
_
LockComments:=False, Password:="", AddToRecentFiles:=True,
_
WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=
_
False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
SaveAsAOCELetter:=False
End Sub
|
|
|
|
|
Sub 開いている文書を処理する()
For Each doc In Documents
If doc.Name = "文書.doc" Then
・・・・・・
Next doc
End Sub |
|
|
|
|
Sub フォルダの中のすべての文書を処理する()
Dim i As Integer
Dim strPath As String
Dim FC As Integer
Dim fs As Variant
Dim actDoc As Document
Dim mydlgOpen As Dialog
Dim mydlgFind As Dialog
'ダイアログボックスを表示しファイル指定を要求します
Set mydlgOpen = Dialogs(wdDialogFileOpen)
Set mydlgFind = Dialogs(wdDialogFileFind)
With mydlgOpen
'表示されるファイルをワード文書に指定
.Name = "*.doc"
Select Case .Display
Case -1 'ファイルが選択されたとき
mydlgFind.Update
strPath = mydlgFind.SearchPath
Case Else 'キャンセルボタンが押されたとき
End
End Select
End With
'上記フォルダ中のワードファイルを検索します
Set fs = Application.FileSearch
With fs
.LookIn = strPath
.FileName = ".doc"
If .Execute > 0 Then
FC = .FoundFiles.Count
For i = 1 To FC
MsgBox .FoundFiles(i) 'n番目のファイル名を表示
Next i
Else
MsgBox "ワードファイルは見つかりませんでした。"
End If
End With
End Sub
|
|
|
|
|
Sub 文書にパスワードを掛ける()
Dim objApp As Object
Dim newFileNM As String
Set objApp = CreateObject("Word.Application")
kizonFileNM = "既存文書名称.doc"
With objApp
. Documents.Open ActiveDocument.Path & Application.PathSeparator
& kizonFileNM
.ActiveDocument.Password = "読み取りパスワード"
.ActiveDocument.WritePassword = "書き込みパスワード"
.ActiveDocument.Save
.Quit
End With
Set objApp = Nothing
End Sub |
|
|
|
|
Sub テキストファイルを書き出す()
Dim n As Long
Dim newFileNM As String
newFileNM = "新規テキスト.txt"
n = 1
'本文書と同じディレクトリーにテキストファイルを書き出す
Open ActiveDocument.Path & Application.PathSeparator & newFileNM
For Output As #n
Print #n, "あいうえお" ' 一行書き込む
Close #n
End Sub |
|
|
|
|
Sub DocActivate()
Dim dc As Document
For Each dc In Documents
If dc.Name = "Word1.doc" Then Windows("Word1.doc").Activate
Next dc
End Sub
Sub DocActivate2()
Documents("Word1.doc").Activate
End Sub |
|
|