teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

間違い修正

2019/12/11 12:54

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -1,11 +1,10 @@
1
1
  `Set xls = CreateObject("Excel.Application")`だけではファイルは生成されないので、
2
2
  新規ブックを追加して保存するときのデフォルトのフォルダーのことだと推測して回答します。
3
3
 
4
- ChDir でカレントデータベースを変更すれば、そこがデフォルトのフォルダーになります。
4
+ ~~ChDir でカレントディレクトリを変更すれば、そこがデフォルトのフォルダーになります。
5
- 別ドライブに保存したい場合は、ChDrive でカレントドライブを変更してから ChDir です。
5
+ 別ドライブに保存したい場合は、ChDrive でカレントドライブを変更してから ChDir です。~~
6
- 詳細下記参照
6
+ AccessからExcelのカレントディレクトリは変更できないようです
7
7
 
8
- [【ExcelVBA入門】カレントディレクトリの取得・変更方法を徹底解説! | 侍エンジニア塾ブログ(Samurai Blog) - プログラミング入門者向けサイト](https://www.sejuku.net/blog/74911)
9
8
 
10
9
  下記の実行してみて、イミディエイトの結果をみて意味を考えてください。
11
10
 

2

コードにコメント追記

2019/12/11 12:54

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -21,8 +21,8 @@
21
21
  Set wb = xls.Workbooks.Add 'ここで新規ブックが追加される
22
22
  Debug.Print "新規: "; wb.Path 'まだ、ファイルとして保存されていないので空白
23
23
 
24
- wb.SaveAs "test.xlsx"
24
+ wb.SaveAs "test.xlsx" 'ファイル名だけだと
25
- Debug.Print "保存後: "; wb.Path
25
+ Debug.Print "保存後: "; wb.Path 'カレントディレクトリに保存される
26
26
 
27
27
  wb.SaveAs "C:\test\test.xlsx" 'フルパスだと
28
28
  Debug.Print "フルパスで保存後: "; wb.Path 'そのフォルダに保存される

1

説明コード追記

2019/12/10 04:15

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -5,4 +5,31 @@
5
5
  別ドライブに保存したい場合は、ChDrive でカレントドライブを変更してから ChDir です。
6
6
  詳細は下記参照。
7
7
 
8
- [【ExcelVBA入門】カレントディレクトリの取得・変更方法を徹底解説! | 侍エンジニア塾ブログ(Samurai Blog) - プログラミング入門者向けサイト](https://www.sejuku.net/blog/74911)
8
+ [【ExcelVBA入門】カレントディレクトリの取得・変更方法を徹底解説! | 侍エンジニア塾ブログ(Samurai Blog) - プログラミング入門者向けサイト](https://www.sejuku.net/blog/74911)
9
+
10
+ 下記の実行してみて、イミディエイトの結果をみて意味を考えてください。
11
+
12
+ ```vba
13
+ Sub Sample1()
14
+ Dim xls As Object
15
+ Set xls = CreateObject("Excel.Application")
16
+
17
+ xls.Visible = True
18
+ Debug.Print xls.Path 'これは EXCEL.EXE自体のパス 変更不可
19
+
20
+ Dim wb As Object
21
+ Set wb = xls.Workbooks.Add 'ここで新規ブックが追加される
22
+ Debug.Print "新規: "; wb.Path 'まだ、ファイルとして保存されていないので空白
23
+
24
+ wb.SaveAs "test.xlsx"
25
+ Debug.Print "保存後: "; wb.Path
26
+
27
+ wb.SaveAs "C:\test\test.xlsx" 'フルパスだと
28
+ Debug.Print "フルパスで保存後: "; wb.Path 'そのフォルダに保存される
29
+
30
+
31
+ wb.Close
32
+ xls.Quit
33
+ Set xls = Nothing
34
+ End Sub
35
+ ```