• 締切済み

ファイル投稿プログラム

社内アンケート(エクセルファイル)を誰が書いたかわからないように匿名で収集できるようにしたい。 どんなシステムが良いのか・・? 参照ボタンでファイル選択してアップロードみたいなものが良いのかな、と思ったのですが、VBAで付ける事はできるでしょうか? Windows2003serverをファイルサーバーとして使っているので、そこにエクセルファイルがどんどん蓄積される形にしたいです。 どのようなプログラムを書けば良いでしょうか? どうか宜しくご教授くださいませm(__)m

みんなの回答

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

こんにちは。 >(1)ユーザーがボタンクリックで参照ボックスみたいなのを出す→ >(2)ユーザーがファイル選択→ それでもかまいませんが、それだとフォルダ固定にはならないと思いますし、マクロでやる意味はほとんどないのでは? (「回答は○○のフォルダに入れてください」って周知しておけば良い) マクロ側でフォルダを固定しておいて  ThisWorkbook.SaveAs Filename:=fNme みたいな処理で保存すれば、ユーザは「アンケートに回答」というボタンを押すだけですみます。 特定のファイル名の存在は Dir関数でチェックできますので、↑の保存を実行する前に、ファイル名のチェックをしてfNameを決めておきます。 SaveAsを使用すると、開いているブックの名前もその名に変えられてしまいますので、処理の最後でThisWorkbookを閉じてしまったほうが良いかも知れませんね。 いずれにしろ、回収率や未回答者へのアラームなどはできません。 (誰が回答したか不明だし、重複回答を許していると回収率もみかけの回収率とせざるを得ない) >idやPCは共有のものを使用しているので匿名は守られると思います。 機器のidがみな同じということですか?(そんなの可能なのかなぁ) あるいは共用機を利用しているということでしょうか? まぁ、そのへんは運用と心理の問題なのでここでの質問には直接関係ありませんね。

okwabe
質問者

補足

なるほど。SaveAsFilename=でできそうですね。ありがとうございます。 一度やってみます。わからなかったら助けてください…。 ちなみに、匿名のためアカウントと個人との紐付けはされないので、未提出アラートはできないですよねー。 回収率に関しては、アカウントをランダムに発行して、 ファイル送信の際にアカウント名を入力させる、というので回収率を集計することはできそうな気がするのですが どうでしょう? アカウントを重複発行しない、という善意が前提ですが。 もっと簡単な方法ありますでしょうか?

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

簡単そうなのは、ボタンを押すとマクロで固定フォルダに別名保存されるという案かな? ファイル名が同じだと困るので、後ろに通し番号でもつけることにして、ファイルの存在をチェックして存在しない番号で保存する。 あるいは、項目別に内容をテキストファイルで保存して、集計の手間を省くとか… このままだと、何度もボタンを押せば重複回答ができてしまうので、実行は一回のみに限定しておくとか、そのへんの工夫が必要になりそう。 一方で、↑の限定をしてしまうと、誤操作で未回答のものを送ってしまったり、あるいは回答を修正したいときに、今度はできない… なんてことまで考慮してゆくとけっこう面倒になるけど、その辺をかまわないというのであれば別名保存かな? でも、「匿名で送られます」と周知したところで、機械を利用していると、回答者にとってその保証が得られないということの解決が一番難しそう。 (裏で、idとかとっていないかとか、サーバ側でログをとっていないかとか)

okwabe
質問者

補足

ご回答ありがとうございます。 色んな条件を考え出すときりがないですよね… ボタンを押すとマクロで固定フォルダに別名保存されるというのは、 (1)ユーザーがボタンクリックで参照ボックスみたいなのを出す→ (2)ユーザーがファイル選択→ (3)選択したファイルをファイルサーバーの特定のフォルダにコピー(ファイル名の後ろに通し番号付ける) (4)コピー成功したら「おつかれちゃん」メッセージ、失敗したら「失敗」メッセージ という流れでしょうか? どんなプログラムになりますか? あと、idやPCは共有のものを使用しているので 匿名は守られると思います。 どうでしょう?

関連するQ&A