回答編集履歴
4
修正
answer
CHANGED
@@ -37,7 +37,7 @@
|
|
37
37
|
```
|
38
38
|
フォルダ選択だったようなので、自作のFunctionを提供しておきます。
|
39
39
|
```VBA
|
40
|
-
Public Function MyFileDialog(pType, pTitle, Optional pFileterTitle, Optional pFileter, Optional pPath) As String
|
40
|
+
Public Function MyFileDialog(pType, pTitle, Optional pFileterTitle, Optional pFileter, Optional pPath="") As String
|
41
41
|
Dim wGetFileName
|
42
42
|
wGetFileName = ""
|
43
43
|
With Application.FileDialog(pType)
|
3
追記
answer
CHANGED
@@ -34,4 +34,42 @@
|
|
34
34
|
DoCmd.OutputTo acOutputReport, "R_レポート名", acFormatPDF, FileName
|
35
35
|
End If
|
36
36
|
End Sub
|
37
|
+
```
|
38
|
+
フォルダ選択だったようなので、自作のFunctionを提供しておきます。
|
39
|
+
```VBA
|
40
|
+
Public Function MyFileDialog(pType, pTitle, Optional pFileterTitle, Optional pFileter, Optional pPath) As String
|
41
|
+
Dim wGetFileName
|
42
|
+
wGetFileName = ""
|
43
|
+
With Application.FileDialog(pType)
|
44
|
+
'ダイアログのタイトルを設定
|
45
|
+
.title = pTitle
|
46
|
+
If pType = 3 Then
|
47
|
+
'ファイルの種類を設定
|
48
|
+
.Filters.Clear
|
49
|
+
.Filters.Add pFileterTitle, pFileter
|
50
|
+
.FilterIndex = 1
|
51
|
+
'複数ファイル選択を許可しない
|
52
|
+
.AllowMultiSelect = False
|
53
|
+
End If
|
54
|
+
'初期パスを設定
|
55
|
+
If Nz(pPath) <> "" Then
|
56
|
+
.InitialFileName = pPath
|
57
|
+
Else
|
58
|
+
.InitialFileName = CurrentProject.path
|
59
|
+
End If
|
60
|
+
'ダイアログを表示
|
61
|
+
If .Show <> 0 Then
|
62
|
+
'ファイルが選択されたとき
|
63
|
+
'そのフルパスを返り値に設定
|
64
|
+
wGetFileName = Trim(.SelectedItems.Item(1))
|
65
|
+
End If
|
66
|
+
End With
|
67
|
+
MyFileDialog = wGetFileName
|
68
|
+
End Function
|
69
|
+
Sub PDF化コード()
|
70
|
+
Dim FldName As String
|
71
|
+
FldName = MyFileDialog(4, "PDF保存先を選択")
|
72
|
+
If FldName <> "" Then
|
73
|
+
DoCmd.OutputTo acOutputReport, "R_レポート名", acFormatPDF, FldName & "\保存するPDF.pdf"
|
74
|
+
End If
|
37
75
|
```
|
2
推敲
answer
CHANGED
@@ -11,7 +11,6 @@
|
|
11
11
|
|
12
12
|
```VBA
|
13
13
|
Function SaveAsFileDialog()
|
14
|
-
Dim strFiles As String
|
15
14
|
With Application.FileDialog(msoFileDialogSaveAs)
|
16
15
|
'FileDialogオブジェクトの各種プロパティを設定
|
17
16
|
.Title = "別名保存"
|
1
追記
answer
CHANGED
@@ -3,4 +3,36 @@
|
|
3
3
|
DoCmd.OutputTo acOutputReport, "R_レポート名", acFormatPDF, "C:保存先パス\保存するPDF名.pdf"
|
4
4
|
➞名前はこちらで決められるが、保存先を事前にコードで指定しなくてはならず、都度保存ダイアログを開けない。
|
5
5
|
```
|
6
|
-
[VBA:AccessのFileDialogを使用して[名前を付けて保存]ダイアログボックスを表示するサンプルプログラム](https://selifelog.com/blog-entry-249.html)
|
6
|
+
[VBA:AccessのFileDialogを使用して[名前を付けて保存]ダイアログボックスを表示するサンプルプログラム](https://selifelog.com/blog-entry-249.html)
|
7
|
+
追記
|
8
|
+
---
|
9
|
+
こんな感じ。
|
10
|
+
※msoFileDialogSaveAsの場合は、フィルター出来ないのが難点ですけどね。
|
11
|
+
|
12
|
+
```VBA
|
13
|
+
Function SaveAsFileDialog()
|
14
|
+
Dim strFiles As String
|
15
|
+
With Application.FileDialog(msoFileDialogSaveAs)
|
16
|
+
'FileDialogオブジェクトの各種プロパティを設定
|
17
|
+
.Title = "別名保存"
|
18
|
+
.ButtonName = "保存実行" 'デフォルトは[保存(&S)]
|
19
|
+
.InitialFileName = CurrentProject.Path
|
20
|
+
'複数ファイル選択を許可しない
|
21
|
+
.AllowMultiSelect = False
|
22
|
+
|
23
|
+
'[名前を付けて保存]ダイアログボックスを表示する
|
24
|
+
If .Show Then
|
25
|
+
SaveAsFileDialog = .SelectedItems(1)
|
26
|
+
Else
|
27
|
+
SaveAsFileDialog = ""
|
28
|
+
End If
|
29
|
+
End With
|
30
|
+
End Function
|
31
|
+
Sub PDF化コード()
|
32
|
+
Dim FileName As String
|
33
|
+
FileName = SaveAsFileDialog
|
34
|
+
If FileName <> "" Then
|
35
|
+
DoCmd.OutputTo acOutputReport, "R_レポート名", acFormatPDF, FileName
|
36
|
+
End If
|
37
|
+
End Sub
|
38
|
+
```
|