• 締切済み

VBAに関する質問です。

VBAに関する質問です。長文でまとまらないと思いますが、よろしくお願いいたします。 身障者向けの移送サービス(車いすタクシー)の請求・支払業務のシステムを作ろうとしています。 タイトル行が何行かあり、運行年、月、日、利用者、緊急かどうか、車椅子の要・不要、運行時間(開始・終了)、タイムスケジュール、車両、運転手がテーブルになったEXCELのブックがあります。 これを使い、運行年の名前のフォルダが存在しなければ作成し、運行月の名前の請求、および、支払いのブックが存在しなければ作成し、請求、および、支払いのテンプレートシートから、利用者、および、運転協力者の名前のシートが存在しなければ作成し、運行日などからそれぞれ請求書、支払明細書を作成し、集計し、A4用紙にプリントアウトするところまで、自動でやりたいと思っています。 元データのテーブルは1年同一ブックを使う予定ですが、請求・支払業務は毎月やる予定です。なので、前月の分がプリントされてしまうと困ってしまいます。 現在、手入力である程度はおこなっているので、フォルダ・ブック・シートの作成、および、セル値のコピー(代入?)が出来れば良いのですが、ネット上で調べても、本を見ても、なかなかぴったりのものに行き当たらず困っています。 なお、開発はEXCEL2007で行ないますが、NAS上において、EXCEL2000~2010のパソコンで運用する予定なので、極力基本的な構造にしたいので、よろしくお願いします。 最終的にはACCESS、もしくは、WEBアプリケーションにしたいのですが、それはまた次回、私がある程度、ACCESSを勉強してから取り組もうと思っています。 よろしくお願いします。

みんなの回答

  • FEX2053
  • ベストアンサー率37% (7989/21362)
回答No.1

EXCEL-VBAに慣れていればそれほど難しい処理ではなさそうですね。 Excelで何とかしたいときは、可能な限り1つのブックにすべて収める方がむしろ動作が安定して処理も速いです。いくつものファイルを開いたり閉じたりしながら作業させるとそのたびに時間が掛りますし、PCの環境が変わると動作途中で「落っこちる」可能性があり、その時に「既に開いていた」ブックにどう「オトシマエ」をつけるかが難しいです。 ですので、元データのブックに、シートを追加する形で設計すると良いかと思います。当然VBA作成中は、仮データを入力した別ブックで作業し、完成した時点でデータをコピーし使用開始になります。 追加するシートですが、元データは作業用としてそのまま使いますので、処理用にデータを引っ張り出すシート(元データから期間などを使って抽出する)と、そのデータを使って出力するシートの2枚あれば何とかなると思います。一旦出力した後は処理用・印刷用シートの中身を消してしまえばオッケー、元のデータはちゃんと残ります。 この程度なら、全くの初心者でもできるんじゃないかと。 ちなみに勉強用のサイトはこのへんかな? http://www.hiroyuki.tank.jp/soft/macro/00.htm http://excelvba.pc-users.net/

kichi4182
質問者

補足

大変ためになるサイトをご紹介頂きありがとうございます。 利用者も運転協力者も登録制の制度のため、事前に名前とかはわかっているのですが、今のところ利用者は32名、運転協力者は15名居ます。 それぞれ名簿もあるので、データ入力時は、ドロップダウンリストで選択が可能なようにしているのですが(誤字を防ぐため)、人数が増えた場合に元データの方に手入力をし、それを自動で読み取り、名簿に追加し、リスト範囲を広げる処理まで、VBAにやらせることは難しいですか?ACCESSの方が良いですかね。 全員が毎月使用するわけではないので、普通に全シートをコピーしたブックを作るのでは、データ容量が大きくなってしまい、勿体ないとの代表の指摘により今回のシステムを考えたのですが、元データのブックにシートを追加していく方法だと、そのブックがクラッシュした時に復旧し難いと思うのですが、いかがでしょう?(各シートを保存する設定が前提です) 月単位でブックを分けた方が分かり易いし、後から見直す必要が有る時にも便利だと思うのですが.... 請求書と支払明細も分けた方が同じ理由で便利かと思うのですが(2011年度¥支払6月.xlsm等)、対比して見るには、同一ブック(2011年度¥6月.xlsm等)が良いのかなとも思って、悩んでいます。 ブック容量や確認の容易さなど総合的に見て、どちらが良いと思われますか?もちろん、決めるのは私ですが、ぜひ参考にさせて頂きたいので、ご意見をお聞かせください。よろしくお願いします。

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

関連するQ&A

  • 前回の質問の続きです。

    前回の質問のシステムの内容を具体的にフローにしてみました。 どこか、修正すべき点、注意すべき点などございましたら、アドバイスよろしくお願いします。 1 運行記録ファイル(記録yy.xls○)yyは年 運行記録ファイルを開く 2 運行記録ファイル(記録yy.xls○)yyは年 当月でフィルタリングをかけ、先頭行に移動 3 定期ファイル(定期mm.xls○)mmは月 定期送迎でフィルタリングをかけ、定期送迎シートを作成し、コピー 4 運行記録ファイル(記録yy.xls○)yyは年 データを1行読み込む 5 年(年度)フォルダが無ければ作成 6 当月ファイルが無ければ作成(請求・支払・集計) 7 請求ファイル(請求mm.xls○)mmは月 利用者シートが無ければ作成 7 支払ファイル(支払mm.xls○)mmは月 運転協力者シートが無ければ作成 8 請求ファイル(請求mm.xls○)mmは月 請求書ひな型シートから利用者シートへコピー 8 支払ファイル(支払mm.xls○)mmは月 支払明細ひな型シートから運転協力者シートへコピー 9 請求ファイル(請求mm.xls○)mmは月 運行記録ファイルのデータを利用者シートのデータ入力欄に代入 9 支払ファイル(支払mm.xls○)mmは月 運行記録ファイルのデータを運転協力者シートのデータ入力欄に代入 10 データが終わりだったら3ファイルの当月シートを全てプリントアウト 11 集計ファイル(集計mm.xls○)mmは月 請求ファイル・支払ファイルからデータをコピー、13へ 12 運行記録ファイル(記録yy.xls○)yyは年 次行に移動し、3に戻る 13 集計ファイル(集計mm.xls○)mmは月 集計作業をし、プリントアウト また、引き続き、VBAで参考になるサイトやソース等ございましたらそちらもよろしくお願いします。

  • AccessDB VBA

    お世話になります ■Excel C5以下行から社員コードを入力するとK5以下行に社員名がジャンプしてくる(Accessから)VBAを作成させたい ワークシートは増減あります、名前もランダムです book内のワークシートすべてに適用させたい おそらくADO接続?? 初心者なのでコード等よろしくお願いします

  • 以前のバージョンの Excel では、互換モードで作成されたピボットテーブルのみ機能します。とは???

    excel2007で作成したピボットテーブルを名前を付けて保存でexcel97-2003ブックで保存しようとすると 以下のエラー表示が出ますどうすれば解決出来ますかピボットテーブル作り直し方とか教えて頂ければ幸いです このブックで使用されている次の機能は、以前のバージョンの Excel ではサポートされていません。このブックを以前のファイル形式で保存すると、それらの機能が失われるか、正常に実行されなくなる可能性があります。 このブック内のピボットテーブルに、ピボットテーブルのスタイルが適用されています。以前のバージョンの Excel では、ピボットテーブルのスタイルによる書式は表示できません。 このブックのピボットテーブルは最新のファイル形式で作成されており、以前のバージョンの Excel では機能しません。以前のバージョンの Excel では、互換モードで作成されたピボットテーブルのみ機能します。 序に シート1個別の配合表(原料・方法・数量・月日の決まった型はめた表を用意し)でイ・ロ・ハ・ニ・ホ・ヘ・トが有り シート1の配合表をただ単に縦に「イの次にハを造る‥等のように‥」スケジュールの順番通りに連ねてていく(計画表シート2) そのシート2の計画表上で「イ」と簡単に入力するだけでシート1の配合表がコピペ出来るようにしたいのですが無理ですか教えて頂ければ幸いです

  • ブックを開いて閉じるVBA

    初めまして、ブックを開いて閉じるループのVBAについて質問させてください! 別添の画像のようなブックAの中に、「りんご」のように名前のついたシートが複数あります。(この数は変動します。来月は「ぶどう」が入るかもしれないし、「りんご」がなくなるかもしれません。) そして「新しいフォルダ」という名前のフォルダに、別添の画像のようにいくつかブックAのシートの名前を含むファイルが入っています。別添画像のように、シートの名前は必ず含むものの、ファイル名はバラバラで、「すもも」のようにシートにはないものもあります。そして、「みかん」のようにシートにあるのにファイルがない場合もあります。 このうち、ブックAに存在するシートの名前を含むファイルのみ開いて閉じるというループのVBAを入力したいのですが、どうすればよいのでしょうか…?!ちなみに、「すもも」のようにブックAに存在しないシートの名前のファイルは開かないでおきたいです。 「みかん」のようにシートはあるがファイルがない場合は、エラーを出さずそのまま次の処理をすすめたいです。 ちなみに、「新しいフォルダ」の存在する場所は 「C:\Users\PC〇〇〇\Desktop\新しいフォルダ\」です。 VBA初心者なので、なるべく簡素なものにしたいと思っています。 ご助力いただけると大変嬉しいです…!よろしくお願いいたしますm(_ _)m

  • VBAでsheetのコピー

    初めまして、宜しくお願い致します。環境:WindowsXPSP3EXCEL2010やりたい事Book1に複数の名前の付いたsheetがあります。sheetの数は可変です。このBook1のsheetをVBAから新に作成するBook2のsheet1に纏めたいのですが、Book2のsheet1だけに纏めたいのですが、Book2のsheet1の名前は、固定で構いません。Book1の一番初めのsheetにコピーする時だけ3行目にある見出しだけは、Book2のsheet1に付けたく。それ以外のBook1のsheetは、デターだけをコピーしたいのですが、作成したマクロでは、実行時エラーがでます。【実行時エラー'9'】【インデックスが有効範囲にありません】とでます。次の部分です。「Sheets("mySheetName(i)").Copy Before:=Workbooks("Book1").Sheets("Sheet1")」また、Book2のsheet1の名前は固定で構いません。しかし、マクロの記述の仕方も判りません。どなたかご教授願います。何卒宜しくお願い申し上げます。

  • Excelで集計

    Excelで請求書を作っています。 この請求書の集計表を自動的に別シートもしくは別ブックに作成されるようにしたいのですが、可能でしょうか? 具体的には以下のような具合です。 1.請求書の雛型があり、金額、各項目を入力し「名前をつけて保存」で保存していく 2.金額、各項目を別シートもしくは別ブックに自動的に作成されていく 私のレベルでは例えば「sheet1」のセルA1に何らかの文字列が入るとsheet2のセルA1に同じものが作成されるが、もし、sheet2のセルA1に何らかの文字列が存在する場合、次の行(sheet2のセルA2)に作成され、さらにsheet2のセルA2にも何らかの文字列が存在したらさらに次の行…、といった感じなのですが、何か良い方法はないでしょうか? ちなみにマクロやAccessはさっぱり分かりません。Excelで関数を駆使して出来る範囲でお願いします。 分かりにくい点があるかもしれません。その際はどしどし補足要求してください。

  • excel vba についての質問です。book名を変更したときのマクロ

    excel vba についての質問です。 請求書と営業売上のそれぞれ違うbookがあるのですが、請求書に入力した値を営業売上管理のbookの売上シートと連動させています。 当たり前ですが、bookの名前が変わると今までに作ったマクロが動作しなくなります。それに対応できるソースがあれば教えて頂きたいです。簡単なbookとシート間の説明です。 workbook("請求書").worksheet("請求書") workbook("営業売上管理").worksheet("売上") と二つのbookがあります。 bookの名前が二つともかわっても対応できるようなマクロがあれば教えていただきたいです。 宜しくお願いします。

  • VBA ACCESSからexcel操作

    仕事でアクセスから二つのファイルを操作したいです。 アクセスのテーブルから新規excel(BOOK1)にデータを抽出し、 そのデータを既存のデータが入っているexcel(BOOK2)にコピーしたいです。 どうしてもコピーメソッドのRANGEクラスのところで「アプリケーションの定義エラー」 なってしまいます。 BOOK1のデータをBOOK2の新規シートにコピー、BOOK1とBOOK2のデータ行を 数える、のは試しやってできたので、 二つのファイル操作は出来ていて、RANGEクラスのところで既存シートにコピーする部分が 出来ていないんだと思います。 基本操作だと思いますが困っています。よろしくお願いします。

  • Excel VBA

    今、Excel2000で作成したEXcelブックをExcel2007でも正常に動作するか確認しています。 伝票のようなもので、枠内に数字を記入後、保存する際に別のブックにセルの全コピーしてから保存するようになっているのですが、Excel2007で実行すると列幅と行幅がコピーされません。 Set NewBook = Workbooks.Add Workbooks(ThisWorkbook.Name).Sheets("伝票").Cells.Copy NewBook.Sheets("Sheet1").Activate ActiveSheet.Paste Excel2003で動かしたときは、大丈夫でした。 原因がわかりません。コピーの仕方がいけないのでしょうか。

  • エクセル内でのVBAの質問です。

    閲覧ありがとうございます。 エクセルの作業ファイルにてVBAのコードを作成しているのですが、中々思う通りに実行できないので、ご教授願います。 実行したい内容については以下の通りです。 ボタン1を押すと(添付画像上段のブック)、マイドキュメント内にある「データ転送ソフト2」という名前のブックを開き、そのブックのシート「A」内(添付画像下段)の、ボタン1を押したシートのF1セル(添付画像上段のブック)と同じ文字(日付)の列と"う"と入力された行の交差したセルの数値(添付画像下段の紫色のセル)をコピーして、ボタン1を押したシートのT4のセル(転送値1:の右隣にある薄緑のセル)に貼り付ける作業が行えるコードをご教授願いたいです。 要約しますと、作業しているシートのボタン1を押すと、別の場所にあるブックを開き、そのシート内の条件に沿った数値をコピーして、作業しているシートの指定されたセルに貼り付ける作業が行いたいです。 とても分かりにくい文章で申し訳ございませんが、お願いします。 可能ならば、コードの解説もつけてくださると嬉しいです。

お買物券の有効期限は?
このQ&Aのポイント
  • お買物券には有効期限が設定されています。通常、お買物券の有効期限は180日です。
  • お買物券の有効期限を調べる方法は、使用したいお店や発行元の公式ウェブサイトやお問い合わせ先にアクセスし、詳細を確認することです。
  • お買物券を使いたい場合は、有効期限を事前に確認しておくことが大切です。
回答を見る