• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ACCESSのVBAで自動的に保存フォルダを開くには)

ACCESSのVBAで自動的に保存フォルダを開くには

このQ&Aのポイント
  • ACCESS2000を使っています。現在レポートをスナップショットに変換し、それを分類されたネットワークフォルダに保存しています。保存先は県名によって異なります。ボタンを押すとスナップショットが作成され、指定されたフォルダが自動的に開きます。
  • 自動化によって、時間のかかる作業を効率化したいと考えています。ボタンを押すだけでスナップショットが作成され、適切なフォルダが自動的に開かれる仕組みを実現したいと思っています。
  • アドバイスをいただけると幸いです。初心者のため、簡単な説明や手順を教えていただけると助かります。

質問者が選んだベストアンサー

  • ベストアンサー
  • human_7
  • ベストアンサー率29% (15/51)
回答No.2

#1です マクロで「出力ファイル」の欄を空白にされているのですね、なるほど。 では、お聞きしますがフォームでボタンを押す際にはその時点の情報(フォームに有るフィールドの値など)で保存先のフォルダ・ファイル名は特定できますか? できるなら、先のアドバイスが可能だと思います。 例えばですが、モジュールを作成して適当な関数(Function)を作成します。ここではABCとしましょう。 とりあえずABCの中身はこんな感じにしてみます。 Public ABC() As String ABC = "c:\abc.snp" End Function これを保存しておいて、マクロで「出力ファイル」の欄に「=ABC()」と指定しておくと、ダイアログが出ずに"c:\abc.snp"にスナップショットファイルが作成されると思います。 後は、条件に応じてABC関数が戻す内容を変えてやれば良いと思います。 例えば、画面のフィールド「項目あ」によって判断したければ、ABC関数を Public ABC(P_判定項目 As String) As String if (P_判定項目 = "福岡") then ABC = "c:\abc福岡.snp" else ABC = "c:\abcその他.snp" end if End Function といった感じにし、マクロでは「=ABC([Forms]![画面名]![項目あ])」みたいな感じで指定します。条件が複数あるなら引数を増やすと良いでしょう。

ohdorry
質問者

お礼

アドバイスありがとうございました。 >お聞きしますがフォームでボタンを押す際にはその時点の情報(フォームに有るフィールドの値など)で保存先のフォルダ・ファイル名は特定できますか? はい、フォーム上に「福岡」という値があれば「福岡」というフォルダに・・・という特定はできますが、こういう意味でよろしいですか。 アドバイス通りにコードを記述してみましたが、残念ながら私のレベルではむずかしいようです。 (エラーメッセージが出てしまいます) もう少し自分で勉強してからまたトライしてみたいと思います。 いろいろありがとうございました。

その他の回答 (1)

  • human_7
  • ベストアンサー率29% (15/51)
回答No.1

スナップショットを作成するマクロを調べてみました。マクロで出力ファイルを指定するところに関数も指定できます。その関数で状況に応じたファイル名を返せばご期待の事は可能だと思います。 他にも、スナップショットは固定ファイル名で作って、作ったファイルを移動するという手も有ると思います。 ちなみに、現在はどうされているのでしょうか?質問文からはちょっと読みとれませんでした。 最初のアドバイスで作る関数についてですが、恐らく次の様な仕様だと思います。 ・レポートの作成と同じ条件を引数として受け取る(画面上のフィールドの場合も有るでしょう) ・引数で受け取った内容を判断して保存先のファイル名を組み立てる。必要に応じてフォルダを作ったりする必要もあるかも知れません。 ・組み立てたファイル名を戻り値として返す。

ohdorry
質問者

補足

さっそくのお答えありがとうございます。 >現在はどうされているのでしょうか? 「出力」というアクションでファイル形式を「snapshot format」にしてマクロを作りました。 これを登録したボタンを押すと「ファイルへの出力」というダイアログボックスで出ますのでここで保存先のフォルダをその都度選んでから保存しています。 >スナップショットは固定ファイル名で作って、作ったファイルを移動するという手も有ると思います。 すみません。もう少し具体的にお願いできますか? >マクロで出力ファイルを指定するところに関数も指定できます。その関数で状況に応じたファイル名を返せばご期待の事は可能だと思います。 ・・・恐らく次の様な仕様だと思います。 申し訳ありませんが、こちらの方ももう少し具体的に記述方法などを教えていただけませんか。 もちろん関数は知っていますが、これだけでは私のレベルではどうしたらいいのかわかりません。 よろしくお願いします。

関連するQ&A