- ベストアンサー
エクセルでマクロ作成依頼。セールス情報を移動・並べ替え
- セールス業務でエクセルでの情報管理が必要となり、上司にマクロ作成を依頼されました。Bシートでの顧客情報をAシートに移動する機能と、Aシートでの情報の並べ替え機能が必要です。マクロ作成の理由は会議中にエクセルを更新するためです。水曜日の会議に間に合わせるため、早急に助けが必要です。
- セールス業務でエクセルを使用していますが、情報管理が煩雑になってきました。上司からBシートの顧客情報をAシートに移動するマクロの作成依頼を受けました。また、Aシートでの情報の並べ替え機能も必要です。マクロの作成が急務で、水曜日の会議に間に合わせたいです。
- セールス業務において、エクセルでの情報管理が必要ですが、手動での作業が煩雑になってきました。上司からBシートの顧客情報をAシートに移動するマクロを作成してほしいと依頼されました。また、Aシートでの情報の並べ替え機能も必要です。マクロの作成期限は水曜日の会議までです。お手数ですが、早めのご支援をお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
お急ぎの様ですが。シートの状況が見えてきません。もう少し補足していただかないと回答は無理ですよ。 例 未確定情報のシート A B C D E F G 1 会社名 情報1 情報2 情報3 情報4 情報5 情報6 2 A社 ・・・・ 3 ・・・・ 4 ・・・・ 5 ・・・・ 6 B社 ・・・・ 7 ・・・・ 確定済み情報シート 同じとして さて どこに確定である情報があるのでしょうか。 どのセルを目安にして確定済みのシートに移動すればよいのか 古い順に並び替えるにしても、どの列に古い、新しい(日付)の情報があるのでしょうか。 それと 質問者の方のVBAのレベルは? 補足を記述するために回答しておきます。
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17070)
全般に、操作者のボタンクリックなりで作業をするのは、VBAでイベントと言う処理のパターンを使います。 (1)この質問の場合は、確定にともない、BシートからAシートに転記するキッカケ (2)BシートからAシートへ移ってきた会社について、Aシートでしかるべき位置に収める(多分ソート)のキッカケ それはVBA初心者の域を脱した人が学ぶことです。質問の書きぶりから、質問者はそこまで達してないようです。結局質問を丸なげし、回答の丸写ししか出来ないと思う。 ーー それと認識すべき事項がもれている。 Bシートには複数顧客の交渉情報が混じっていると思うが、X社が確定情報になったとして、BシートのX社の情報範囲をどうして確定(指定・選択)するか。 社名、会社番号、範囲を選択するなどの指定方法が考えられる。範囲を選択する、がやりやすいかとおもう。 1社5行と決まっていてもどの部分か判明しないとAシートに移せないでしょう。 ーー >ボタンを二つにわける理由としては、エクセルの更新は会議中にするためです。 この必要性がわからない。1つにしておけば、確定列に確定サインを入れて、並べ替えれば済むともいえる。確定区画にソートで写す。 >会議中にBからAに移動、終わってからAを並べ替えるという手順です 私の例では、X者が会議中といえどもAシートでまとまってないと、読みにくいでしょう。 確定に写すと言うのは会議の結果で決るとも思えない。交渉者の上司管理者が会議前に決めるのでは。 これは会社別+日付でソートは、やる仕組みにきめれば、作業実行は数秒で済むことと思います。 とりあえずはAシートの最後に転記し、ソートするのがロジックとしてはやりやすい。 しかるべき行(群)に行挿入して張り付けなどは、やや難しいロジックになる。 ーー こういうことを命ずる上司は、VBAを判っているのでしょう。だからやらすのでしょう。頼って教えてもらったら。 ーー佐合そのもののコードは、一例の操作をやってみて、マクロの記録を取り、園子ーぢで以パン製を持たせるには何処をどう変えるべきか目安をつけてはどうですか。 ソートのコードなどマクロのきろくどおりが生かせると思う。 マクロの記録は Sub Macro1() Range("A11:C15").Select '範囲指定 人間が決める場合この行不要 Selection.Cut 'カット Sheets("Sheet2").Select 'Sheet2を選択 Range("A11").Select 'A11セル選択 <--このセルは最終行の次行で、毎回変わる ActiveSheet.Paste '貼り付け Sheets("Sheet1").Select 'Sheet1選択 Selection.Delete Shift:=xlUp ’行削除 上に詰める(確定に格上げ会社の行群にあたる End Sub ーー Sheet2の最終行は Sub test02() MsgBox Worksheets("Sheet2").Range("A65536").End(xlUp).Row + 1 End Sub を実行して納得してください。