Access2003 WinXP (ADO)です。
テーブルをExcelへエクスポートするのですが
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "テーブル名", "ほにゃらら"
と書いたらデスクトップに新規にExcelブックが出来上がっていて、内容もエクスポートされていました。
ブックの名前は”ほにゃらら”です。
既存のブックではなく新規のブックに吐きたかったので良いのですが、本当はエクスポート先のブックをフルパスで指定するのですよね?
このままでは何か弊害が出ますでしょうか?
No.2ベストアンサー
- 回答日時:
> このままでは何か弊害が出ますでしょうか?
その危険性が高いですね。
出力先のディレクトリを明示的に指定しない場合は、カレント ディレクトリが使用されます。
カレント ディレクトリはアプリケーション個別に設定を保持できないため、どのタイミングでどこから変更されるかまったく予測できません。
A さんの環境ではデスクトップに出力されるかもしれないし、B さんの環境ではマイ ドキュメントに出力されるかもしれません。
たとえば A さんの環境で1回目はデスクトップに出力されたとします。
途中で割り込みの仕事を片付けることになって、Excel であるファイルに名前をつけてマイ ドキュメントに保存したとします。これだけで、カレント ディレクトリがマイ ドキュメントに変更されてしまいます。これが Excel でなくメモ帳でもペイントでも IE だったとしても一緒です。
A さんが割り込みの仕事を終えて Access に戻り、再度出力したときには、デスクトップには出力されません。直前の作業でカレント ディレクトリが変更されているという認識が A さんに無ければ、どこを探せばいいのか途方に暮れるかもしれません。
ファイルの出力先は固定にするか、さもなくばユーザーに任せた方がベターではないでしょうか。
たとえば DoCmd.TransferSpreadsheet ではなく DoCmd.OutputTo を使えば、ファイルに名前を付けて保存ダイアログを自動で表示して、ユーザーが選ぶ任意のディレクトリに出力することができます。
回答ありがとうございます。色々試してみましたら、確かにデスクトップだったりc:\tempだったり・・・これではだめです。
ダイアログを出してユーザーに保存先を促す事にします。
ありがとうございました!
No.1
- 回答日時:
こんばんは。
>このままでは何か弊害が出ますでしょうか?
弊害自体はないけれど、デスクトップ以外ですと、たぶん探すと思います。
もし、デスクトップなら、デスクトップを明示的に決めたほうがよいと思います。
しかし、私なら、このようにして、ファイルと同じ場所に出力させる方法が分かりやすいですね。デスクトップにあまり多く出すと、結構、間違いで立ち上げることがありますから。
Dim strFileName As String
strFileName = CurrentProject.Path & "\ほにゃらら"
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "TestTable", strFileName, False
回答ありがとうございます。
未保存のファイル名なので同じ場所に…は出来なかったのですが
CurrentProject.Path &は他で使えそうです。
デスクトップはいっぱいになる人が多いですから、やめた方が良いですね。
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) [クイックアクセスツールバー]の設定ファイルの格納場所について、 5 2023/04/21 14:43
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2022/08/04 13:56
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/02/07 09:58
- Excel(エクセル) Excel VBA 指定セルに入力されているパスからシートをコピーして別のブックに転記するVBAのコ 2 2022/04/19 15:53
- Excel(エクセル) マクロVBA別Excelブックにデータ転記 2 2022/07/10 23:35
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/02/21 11:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CSVファイルの時刻の形式について
-
accessでクエリをExcelにエクス...
-
ACCESS2002(or2003)の日付表示...
-
社員情報
-
ファイナルカットで編集した動...
-
VB6.0でExcel,PDF,Word出力方法
-
COBOL、項目末尾に空白がある場...
-
accessのリポートを、excelに出...
-
Thunderbird 受信メールからの...
-
フォルダ内のサブフォルダ名や...
-
Apacheのエラーログのログレベ...
-
コマンドプロンプトのテキスト...
-
EXCEL VBAでのCSVファイル読み...
-
AccessのレポートからPDFをペー...
-
HTMLテキストリンクでExcelファ...
-
includeで別サイトを読み込む
-
Excel VBAが徐々に遅くなる
-
VBAでフォルダ内の全てのcsv...
-
ATTファイルってどうやって開け...
-
C#で文字列リソースを扱う
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
accessでクエリをExcelにエクス...
-
CSVファイルの時刻の形式について
-
コマンドプロンプトのテキスト...
-
COBOL、項目末尾に空白がある場...
-
Thunderbird 受信メールからの...
-
VB6.0でExcel,PDF,Word出力方法
-
ショートカットで起動した場合...
-
AccessのレポートからPDFをペー...
-
accessのリポートを、excelに出...
-
Acrobat参照設定
-
Excel で「OLE は現在使用でき...
-
ファイナルカットで編集した動...
-
WshShellから起動したbat(ftp)...
-
COBOL FILLER
-
エクセルが裏で動いたままなん...
-
Fortranでの出力ファイル
-
マクロについて質問です。 現在...
-
iTextでPDFを表示させたら日本...
-
TransferSpreadsheetでフルパス...
-
ACCESS2002(or2003)の日付表示...
おすすめ情報