- ベストアンサー
Excelを使ってフォームを自動保存したい!
- Excelを使用して顧客からの売上内容と業者からの仕入内容を管理するフォームを作成し、保存時に各顧客別に自動的にシートを保存できる方法を知りたいです。
- 入力規則のリストを全ての顧客に反映させるために、マスター入力からシートのコピーまでの作業を利用者が行わずに自動化したいです。
- Excelで安定してフォームを作成するために、データベースのフォームではなくExcel上で作成する方法を探しています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こういう感じでしょうか!? 雛形のExcel(依頼書.xls)を作成し、ファイルのプロパティーで読み取り専用に設定しておきます。 (これで、雛形を壊されることは無くなります) さて、この雛形のマクロの内容ですが・・・ ====================== Set ブック = Workbooks("依頼書.xls") ブック.SaveAs FileName:=ブック.Sheets("Sheet1").Cells(1, 1) & ".csv" msgbox("保存しました。 なお、このファイルは自動的に閉じられます。") Application.Quit ====================== セルA1に顧客名を入力させるようにします。 データ入力後、顧客名付きのExcelファイルで保存されます。 たとえば、顧客名が「東京電力」でしたら保存ファイル名は「東京電力.csv」となります。 日付(date()関数)を付加してもいいでしょう。 (「東京電力ー20050413.csv」) csvファイルとして保存後、雛形のExcelファイルはquitで強制的に保存されずに終了します。 保存のトリガーですが、Ctrl+hやファンクションキーなどに割り付けてはいかがでしょうか。 P.S. マクロはパスワードでプロテクトしておかれた方がいいですね。
その他の回答 (2)
- skikichi
- ベストアンサー率65% (45/69)
お無沙汰ですね! date()関数は「2005/04/20」って感じに出力されます。 ファイル名に「/」は使用できませんので、たとえば「/」を取り除くように編集する必要があるわけです。 [A1]= "東京電力ー" & Left(Date, 4) & Mid(Date, 6, 2) & Right(Date, 2) 結果:A1=東京電力ー20050420
お礼
関数、やっぱり勉強不足です。そして禁止文字! 教えて頂くと「確かに。」なのですが、作業中に 思いつかないのですね。。。希望通りのファイル名 で保存できました!保存先のフォルダ指定とかも 言われましたが、それは各自で移動するように してしまいました。その辺はまずテキストを見て 知識をつけなければ。 いろいろとありがとうございました!また、何か ありましたらよろしく御願い致します。
- skikichi
- ベストアンサー率65% (45/69)
う~ん、いまひとつどういうオペレーションをされているのか分りかねます。 分らない点は、つまり誰がどのタイミングでどんな頻度でどの単位でシートの保存を行うのでしょうか? ユーザーが操作するのですか? ExcelのマクロでVBAを組んで、ボタン操作による顧客毎のシート保存は可能です。 または、Accessを使用し同様に実現できますが、もしフォームを誤操作を避けるようにしたいのでしたら、mdeに変換されればよいと思いますが、そういうことを言っておられますか?
補足
早速のご回答、ありがとうございました!説明が明確でなくすみません。 >分らない点は、つまり誰がどのタイミングでどんな頻度でどの単位でシートの保存を行うのでしょうか? ユーザーが操作するのですか? ユーザーが各項目入力後、各PCに保存します。営業から経理へ「請求書発行依頼書」を作成している状態です。1施工(現場工事なので)が終了毎に、1顧客宛に受注伝票が1シート作成されます。 >ExcelのマクロでVBAを組んで やはり、そうなりますよね。不勉強なゆえ、私個人としてはAccessで作成したいのですが(1db上に顧客ごとのフォームを作れば良いかと)・・・。ユーザーの誤操作、よりはファイルメーカーを使っているのでこれ以上のDBは使いたくないのと、ファイルメーカー自体の操作も怪しいレベルがユーザーなのでDB化しないでいいなら既存のExcel雛形を活用したいのです。 どうぞよろしく御願い致します。
お礼
やってみました。ありがとうございます! (返信が遅くなり大変失礼いたしました) >ブック.SaveAs FileName:=ブック.Sheets("Sheet1").Cells(1, 1) & ".csv" この部分に >日付(date()関数)を付加してもいいでしょう。 (「東京電力ー20050413.csv」) というのがいまいちうまくいきませんでした。。。 A1に顧客名を入力するフォームにはなっていなかったのでRange(A1)を前につけ、顧客名のあるセルにCells(1, 1) を変えて組んだらできました。&でセルを2つまでは 付けられましたが、日付がつきませんでした。 あと、保存フォルダは特に設定していないとマイドキュメントになるんですね。マクロの記録の修正程度しかやってなかったので、ちゃんとテキストなりを買って勉強しようと思います。