質問: エクセルのマクロ 【シート1】 見積書フォーマットを作成しており、見積発行依頼があればこのシートに記入します。 【シート2】 シート1で作成した見積データを見積no.順に保存するシート。 ここからが、質問です! ・シート1で作成した見積のデータをマクロでシート2に蓄積していきたい。 ・シート2に蓄積してある見積データの見積no.を選択すると自動的にシート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) 行さえ拾えれば、あとは表示できますよね。