人生最悪の忘れ物

ACCESS2000を使っています。

現在レポートとして作成したものを
スナップショットに変換し、それを文書の内容ごとに分類されたネットワークフォルダに保存しています。

たとえば
県名が「福岡」であれば、「福岡」というフォルダの中の→「平成15年度」→「○○書」というフォルダに、「佐賀」であれば「佐賀」→「平成15年度」→「○○書」というフォルダに保存しているのです。
現在は「スナップショット」に変換することはマクロを組み、フォームからボタンを押すだけでできるようにしています。
でもできたらその後の処理も自動的に行いたいのです。

イメージは
ボタンを押すをスナップショットに変換して印刷し、さらにレポート内の、たとえば「県名」というコントロール内の文字が「福岡」であれば「福岡」→「平成15年度」→「○○書」というフォルダが自動的に開くというものです。
さらにできたらファイル名に指定したコントロールの文字が自動的に入れば申し分ないのですが。

かなり欲張りだとは思いますが、量の多い仕事なのでとても時間をくっています。
もっと自動化が実現できたらと思ってお尋ねしてみました。

アドバイスよろしくお願いします。
またVBAは初心者なので何卒よろしくお願いします。

A 回答 (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]![画面名]![項目あ])」みたいな感じで指定します。条件が複数あるなら引数を増やすと良いでしょう。
    • good
    • 0
この回答へのお礼

アドバイスありがとうございました。
>お聞きしますがフォームでボタンを押す際にはその時点の情報(フォームに有るフィールドの値など)で保存先のフォルダ・ファイル名は特定できますか?

はい、フォーム上に「福岡」という値があれば「福岡」というフォルダに・・・という特定はできますが、こういう意味でよろしいですか。

アドバイス通りにコードを記述してみましたが、残念ながら私のレベルではむずかしいようです。
(エラーメッセージが出てしまいます)
もう少し自分で勉強してからまたトライしてみたいと思います。
いろいろありがとうございました。

お礼日時:2003/11/20 08:57

スナップショットを作成するマクロを調べてみました。

マクロで出力ファイルを指定するところに関数も指定できます。その関数で状況に応じたファイル名を返せばご期待の事は可能だと思います。
他にも、スナップショットは固定ファイル名で作って、作ったファイルを移動するという手も有ると思います。

ちなみに、現在はどうされているのでしょうか?質問文からはちょっと読みとれませんでした。

最初のアドバイスで作る関数についてですが、恐らく次の様な仕様だと思います。
・レポートの作成と同じ条件を引数として受け取る(画面上のフィールドの場合も有るでしょう)
・引数で受け取った内容を判断して保存先のファイル名を組み立てる。必要に応じてフォルダを作ったりする必要もあるかも知れません。
・組み立てたファイル名を戻り値として返す。

この回答への補足

さっそくのお答えありがとうございます。

>現在はどうされているのでしょうか?

「出力」というアクションでファイル形式を「snapshot format」にしてマクロを作りました。
これを登録したボタンを押すと「ファイルへの出力」というダイアログボックスで出ますのでここで保存先のフォルダをその都度選んでから保存しています。

>スナップショットは固定ファイル名で作って、作ったファイルを移動するという手も有ると思います。

すみません。もう少し具体的にお願いできますか?

>マクロで出力ファイルを指定するところに関数も指定できます。その関数で状況に応じたファイル名を返せばご期待の事は可能だと思います。
・・・恐らく次の様な仕様だと思います。

申し訳ありませんが、こちらの方ももう少し具体的に記述方法などを教えていただけませんか。
もちろん関数は知っていますが、これだけでは私のレベルではどうしたらいいのかわかりません。
よろしくお願いします。

補足日時:2003/11/18 23:07
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す


おすすめ情報