• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excelを使ってフォームを自動保存したいのです!)

Excelを使ってフォームを自動保存したい!

このQ&Aのポイント
  • Excelを使用して顧客からの売上内容と業者からの仕入内容を管理するフォームを作成し、保存時に各顧客別に自動的にシートを保存できる方法を知りたいです。
  • 入力規則のリストを全ての顧客に反映させるために、マスター入力からシートのコピーまでの作業を利用者が行わずに自動化したいです。
  • Excelで安定してフォームを作成するために、データベースのフォームではなくExcel上で作成する方法を探しています。

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

  • ベストアンサー
  • skikichi
  • ベストアンサー率65% (45/69)
回答No.2

こういう感じでしょうか!? 雛形の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. マクロはパスワードでプロテクトしておかれた方がいいですね。

tmknok
質問者

お礼

やってみました。ありがとうございます! (返信が遅くなり大変失礼いたしました) >ブック.SaveAs FileName:=ブック.Sheets("Sheet1").Cells(1, 1) & ".csv" この部分に >日付(date()関数)を付加してもいいでしょう。 (「東京電力ー20050413.csv」) というのがいまいちうまくいきませんでした。。。 A1に顧客名を入力するフォームにはなっていなかったのでRange(A1)を前につけ、顧客名のあるセルにCells(1, 1) を変えて組んだらできました。&でセルを2つまでは 付けられましたが、日付がつきませんでした。 あと、保存フォルダは特に設定していないとマイドキュメントになるんですね。マクロの記録の修正程度しかやってなかったので、ちゃんとテキストなりを買って勉強しようと思います。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • skikichi
  • ベストアンサー率65% (45/69)
回答No.3

お無沙汰ですね! date()関数は「2005/04/20」って感じに出力されます。 ファイル名に「/」は使用できませんので、たとえば「/」を取り除くように編集する必要があるわけです。 [A1]= "東京電力ー" & Left(Date, 4) & Mid(Date, 6, 2) & Right(Date, 2) 結果:A1=東京電力ー20050420

tmknok
質問者

お礼

関数、やっぱり勉強不足です。そして禁止文字! 教えて頂くと「確かに。」なのですが、作業中に 思いつかないのですね。。。希望通りのファイル名 で保存できました!保存先のフォルダ指定とかも 言われましたが、それは各自で移動するように してしまいました。その辺はまずテキストを見て 知識をつけなければ。 いろいろとありがとうございました!また、何か ありましたらよろしく御願い致します。

全文を見る
すると、全ての回答が全文表示されます。
  • skikichi
  • ベストアンサー率65% (45/69)
回答No.1

う~ん、いまひとつどういうオペレーションをされているのか分りかねます。 分らない点は、つまり誰がどのタイミングでどんな頻度でどの単位でシートの保存を行うのでしょうか? ユーザーが操作するのですか? ExcelのマクロでVBAを組んで、ボタン操作による顧客毎のシート保存は可能です。 または、Accessを使用し同様に実現できますが、もしフォームを誤操作を避けるようにしたいのでしたら、mdeに変換されればよいと思いますが、そういうことを言っておられますか?

tmknok
質問者

補足

早速のご回答、ありがとうございました!説明が明確でなくすみません。 >分らない点は、つまり誰がどのタイミングでどんな頻度でどの単位でシートの保存を行うのでしょうか? ユーザーが操作するのですか? ユーザーが各項目入力後、各PCに保存します。営業から経理へ「請求書発行依頼書」を作成している状態です。1施工(現場工事なので)が終了毎に、1顧客宛に受注伝票が1シート作成されます。 >ExcelのマクロでVBAを組んで やはり、そうなりますよね。不勉強なゆえ、私個人としてはAccessで作成したいのですが(1db上に顧客ごとのフォームを作れば良いかと)・・・。ユーザーの誤操作、よりはファイルメーカーを使っているのでこれ以上のDBは使いたくないのと、ファイルメーカー自体の操作も怪しいレベルがユーザーなのでDB化しないでいいなら既存のExcel雛形を活用したいのです。 どうぞよろしく御願い致します。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • excel 商品リストにて 商品名を入力→単価自動的に表示

    商品リストを作成してます シート1に商品リスト、シート2に単価表を作成してます 商品リストAセルに日付、Bセルに商品名、Cセルに数量、Dセルに単価、Eセルに小計、Fセルに仕入先とします。 各商品にコードを指定するのではなく ダイレクトに、商品名で反映?です 商品名と数量を入力すると、単価→小計が出せる数式にしたいのですが 力不足のためご質問させていただきます VLOOKUPを使用してかな?と試みてはみました・・・・・・ 最終的には、商品ごとに1カ月の合計を出したいのですが どなたかお解りの方がいらっしゃいましたらお教えくださいますよう お願いいたします 質問の内容やわかりにくいところがありましたら 申し訳ありません どうぞよろしくお願いいたします

  • access フォーム間で情報が引き継がれない

    初心者です、よろしくお願いします。 仕様環境 WinXP Access2002 請求管理のシステムを作っています。 テーブルには 顧客マスタ(主キーは顧客番号でテキスト型 例:0001等) 請求マスタ(主キーは請求番号でテキスト型 例:A0001等) 明細マスタ(主キーは明細番号でオートナンバー ダミーみたいな感じで使っています。) そしてリレーションシップで顧客マスタ(1)→(多)請求マスタ(1)→(多)明細マスタになっています。 顧客マスタを元にしたフォーム(顧客入力フォーム)に顧客情報を入れて、 「請求書作成ボタン」を作り、そのボタンを押すと別のフォーム(請求書作成フォーム)に 飛ぶようにしているのですが、その際に顧客入力フォームに入力した情報を 引っ張っていくようにしたいのですが、うまくいきません。 ちなみに顧客マスタと請求マスタのリレーションは”顧客番号”でつなげています。 請求書作成フォームは請求書作成クエリから成り、 その中で顧客番号(テーブル:顧客マスタ)の抽出条件に[Forms]![顧客入力フォーム]![顧客番号]と 入れて”顧客番号つながり”で飛ぶようにしているのですが、 請求書作成フォームは開くのですけど、項目はすべて空白です。 またいろいろレコードを追加している内に、請求番号が既にあるものに対しては顧客情報も引き継がれることが判明しました。 構文が間違っているのでしょうか? 混乱しています、お助けください。

  • ACCESSでデーフル作成入力フォームで入力しながら、クエリのデータを参照したい

    ACCESSで売上明細テーブルを作成し、入力用のフォームを作成しました。他に顧客マスタテーブルがあります。売上明細には顧客CDフィールドがありますが、顧客名等はマスターに存在するため設けてません。しかし売上明細入力時に顧客CDを入力した時点で顧客名の確認がしたいのです。そこで入力フォームの顧客CDの隣に非連結でテキストボックスを作り、そこに顧客名を表示したいのです。売上明細には顧客名のフィールドは追加したくありません。ただ参照したいだけです。顧客マスタと売上明細で顧客CDをキーにクエリを作成し、明細に対応する顧客情報は顧客情報検索というクエリで作成済みです。入力フォーム画面の非連結のフィールドのプロパティのコントロールソースに =DLookup("[顧客名]","顧客情報検索","[顧客CD] =" _ & Forms![売上明細入力Form]![顧客CD]) と表記しましたがエラーになります。 最初はコントロールソースに直接顧客情報検索クエリの顧客名フィールドを表記し、フォーカス取得時にクエリを開くマクロを実行していました。でもやはり表示されませんでした。 顧客名の設定をどのように設定すればいいのですか? コントロールソースでの設定だけでは無理なのでしょうか? よろしくお願いします。

  • エクセル 顧客マスタを利用してお中元リストを作りたいのですが。

    エクセル 顧客マスタを利用してお中元リストを作りたいのですが。 顧客名、住所、電話番号などの情報が入った顧客マスタをエクセルに落として、それを利用して 会社のお中元リストを作ろうと思います。 「お中元リスト」シートの顧客名欄にお中元を出したい顧客名を入力すると、「顧客マスタ」シート から同じ顧客名を探し出し、お中元リストの住所欄、電話番号欄が自動で埋まる仕組みのものを作り たかったのですが上手くいきません。 VLOOKUP関数を使ってお中元リストを作ってみたのですが、実際に顧客名を入力しようとすると 正式な顧客名がわからないことが多いことに気が付きました。 その顧客が株式会社なのか有限会社なのか、先(株)か後(株)か、「○○産業」だったか「○○工業」 だったか等で、正式な顧客名(顧客マスタに登録されている顧客名)が分らない為に、結局顧客マスタ を見ながら顧客名を入力しなければならない有様です。 「入力規則」のリストを使おうと考えましたが、顧客マスタの件数が多く(2,000件以上)、リストから 選ぶのも大変です。 できればインターネットの検索みたいに入力途中に候補を表示してくれるような仕掛けを作れれば素 晴らしいのですが。 何かいい方法をご存知でしたら教えて下さい。

  • excel2007 利益集計がしたい(初心者)

    美容サロンを営む店舗にてexcel2007にて売上と利益率を集計できる表を作っています。 困っている内容とは、まずF5セルに売上金額を手入力で入力⇒F6セルに販売商品は入力規則のリストにて作成してあるものから選択⇒F7セルに支払方法も入力規則のリストから選択するとF8に社員への報酬がF9に利益が自動的に出る様にしたいのですが、どのようにしたらよいのか困っております。 ちなみに利益率などの細かい内容は別Sheetに表を作成してあるので、そこからデータを引用出来たら1番良いのですが、詳しい方宜しくお願い申し上げます。

  • アクセス2007 フォームで入力したデータが検索フォームの結果に反映されません

    アクセス2007を使用しています。 今顧客のデータベースを作成しています。 新規の顧客のデータを入力し、検索して顧客データを閲覧できるようにしたいです。 以下のような構成にしてあります。 ○T顧客マスタ ○F新規入力 ○F検索 ○Q検索 新規の顧客データをフォーム【F新規入力】より入力して、入力したデータはテーブル【T顧客マスタ】に格納されます。 また、検索フォームとして顧客名や顧客住所から、該当する顧客データをあいまい検索できるような【F検索】を作成しました。(Q検索から作成) しかし、サンプルデータとしてはじめにインポートしたデータ200件は検索対象となっているのですが、【F新規入力】から入力したデータ10件は検索に引っ掛かりません。【T顧客マスタ】には格納されているのですが・・・ 当方、アクセスは初心者なので何か根本的に間違っているのかも知れませんが、どうにもこうにもわからないので質問いたしました。 質問内容がわかりづらいようでしたら申し訳ありません。都度補足いたしますのでよろしくお願いいたします。

  • エクセルVBAについて

    エクセルシートのデータ入力でユーザーフォームを作成してみました。テキストボックスを複数用意してそれぞれに顧客名であったり商品名、数量などを入力するものです。 そこで質問がございます。 現在の設定ではリターンキーを押すと「次行」コマンドが有効になり、次行のセルがアクティブになります。なのでマウスでテキストボックスをクリックしないとそれぞれの情報を入力できません。 顧客名から始まり、次に商品名、数量etc.とユーザーフォーム内でリターンキーで移動させる方法はあるのでしょうか。教えてくださいまし。

  • アクセスのフォームの保存について。

    顧客名簿を作っています。 テーブル・フォームと作成しています。 顧客に対しての、情報が多いので、フォームにツールボックスにある タブコントロールをつくりました(しおりみたくなってるもの) しかし、いざ入力するとタブコントロールに入力した情報が 保存されません。 どうしたら保存できますでしょうか?

  • Accessでのフォーム入力エラー

    顧客管理を 顧客マスタ 受注明細 入金明細のテーブルを作成し、リレーションシップの設定をしてあります。テーブルには、この形で入力できるのですが、フォームをウィザードを使って作成(サブフォームのリンクされたフォーム)しました。 新規入力することができません。「テーブル’顧客マスタ’にリレーションシップが設定されたレコードが必要なので、レコードの追加や変更をおこなうことはできません。」のメッセージが出ます。 どうしていいのか、わかりません。教えてください。

  • エクセルでデータベース

    最初から「アクセスを使え!!」とお叱りを受けると思いますが、アクセスが無いため、エクセルで何とかしようとたくらんでおります。 本題に入りまして… まず、シート1に顧客リスト(コード、氏名、住所… )と入力してあります。 シート2には顧客毎に請求月日、売上額、値引き等を入力していきます。 シート3には請求月日(毎月5の倍数)を入力します。A列に1月5日、1月10日、1月15日…というように、12月30日まで入力してあります。 ここでデータベースとなる!?わけですが、VBAでフォームをつくり、シート1に入っている氏名から、該当する顧客を選んで、シート2に各項目ごと、データを入力するというものです。シート2に入力する項目の中で、請求年月日はシート3から選ぶようにします。 なお、もしシート1の顧客リストに該当者が無い場合(新規)は、シート1の顧客リストに追加し、追加した後、シート2にデータを入力できるようにしたいです。 ちなみに、顧客数は400件くらいあります。 VBAは超初心者で、命令文などがほとんど理解できないので、勝手でずうずうしいお願いなのですが、説明があると非常にありがたいです。 よくわからない質問をして、なおかつ無謀なことをやろうとしている私に、お力をお貸しくださいm(__)m

専門家に質問してみよう