- ベストアンサー
エクセルのマクロ
【シート1】 見積書フォーマットを作成しており、見積発行依頼があればこのシートに記入します。 【シート2】 シート1で作成した見積データを見積No.順に保存するシート。 ここからが、質問です! ・シート1で作成した見積のデータをマクロでシート2に蓄積していきたい。 ・シート2に蓄積してある見積データの見積No.を選択すると自動的にシート1に見積内容が反映され、過去の見積書を印刷することが可能。 このようなことをしたいのですが、マクロをどう組めば良いのかわかりません。 どなたか教えてください! 仕事で困ってます・・・。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
全体の方針としては、わたしなら以下のようにします。 【1】シート1で作成した見積のデータをマクロでシート2に蓄積していきたい。 ・・・シート2の1行目に必要項目名を振る。 シート1にコマンドボタンを貼り付け、入力が終わってそのボタンを押したら、入力したデータをシート2の最下行に書き込むようにする。 書き込むべき最終行は、普通に以下みたいな感じでとったらいいんじゃないでしょうか。 r = Worksheets(2).Cells(Rows.Count,1).End(xlup).Row + 1 見積もりデータは、必ずしも見積もりNo順に入力されるわけではないのですね? それをNo順に蓄積したい、ということですから、データ入力後にSortをかけておけばよいでしょう。 Worksheets(2).Cells(1,1).CurrentRegion.Sort _ Key1:=Cells(1,1), _ Order1:=xlAscending, _ 以下略 【2】 シート2に蓄積してある見積データの見積No.を選択すると自動的にシート1に見積内容が反映され、過去の見積書を印刷することが可能。 入力された見積もりNOを、シート2の見積もりNO列から検索して、その行のデータを拾えば良いのではないでしょうか。 r = Application.WorksheetFunction.Match(k,Worksheets(2).Columns(1),0) 行さえ拾えれば、あとは表示できますよね。