触り始めて1ヵ月の初心者です。
AccessVBAでExcelオブジェクトを生成する際の、
Set xls = CreateObject("Excel.Application")
というコードがあります。
この時、xls.path を見てみるとEXCEL.EXEがあるフォルダに作られてしまいます。
これを任意のパスに変えるにはどうしたら良いでしょうか…。
教えていただけると助かります。
---------------補足-------------------
皆様ありがとうございます;;
パスは変えられないのですね、勘違いしていたようです。助かりました。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
CreateObject("Excel.Application")は、Excelのアプリケーションオブジェクトを作成するので、
インストールされているパスが出ます。
Excelのブックを作成し、その保存パスを指定したいのであれば、
vba
1Sub testcode() 2 Dim xls: Set xls = CreateObject("Excel.Application") 3 Dim bk: Set bk = xls.Workbooks.Add 4 5 bk.SaveAs "C:\Users\test\Desktop\test.xlsx" 6 7 bk.Close 8 xls.Quit 9End Sub
こんな感じで、保存するときにフルパスを指定します。
投稿2019/12/10 02:58
総合スコア337
0
ベストアンサー
Set xls = CreateObject("Excel.Application")
だけではファイルは生成されないので、
新規ブックを追加して保存するときのデフォルトのフォルダーのことだと推測して回答します。
ChDir でカレントディレクトリを変更すれば、そこがデフォルトのフォルダーになります。
別ドライブに保存したい場合は、ChDrive でカレントドライブを変更してから ChDir です。
AccessからはExcelのカレントディレクトリは変更できないようです。
下記の実行してみて、イミディエイトの結果をみて意味を考えてください。
vba
1Sub Sample1() 2 Dim xls As Object 3 Set xls = CreateObject("Excel.Application") 4 5 xls.Visible = True 6 Debug.Print xls.Path 'これは EXCEL.EXE自体のパス 変更不可 7 8 Dim wb As Object 9 Set wb = xls.Workbooks.Add 'ここで新規ブックが追加される 10 Debug.Print "新規: "; wb.Path 'まだ、ファイルとして保存されていないので空白 11 12 wb.SaveAs "test.xlsx" 'ファイル名だけだと 13 Debug.Print "保存後: "; wb.Path 'カレントディレクトリに保存される 14 15 wb.SaveAs "C:\test\test.xlsx" 'フルパスだと 16 Debug.Print "フルパスで保存後: "; wb.Path 'そのフォルダに保存される 17 18 19 wb.Close 20 xls.Quit 21 Set xls = Nothing 22End Sub
投稿2019/12/10 02:56
編集2019/12/11 12:54総合スコア34073
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/11 12:53
0
>EXCEL.EXEがあるフォルダに作られてしまいます。
何が作られるというのでしょうか?
投稿2019/12/10 02:52
総合スコア1067
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/10 02:59
2019/12/10 03:02
2019/12/12 04:39
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。