質問: エクセル入力したデータを別シートの空白セルへ 各シート(担当者別シートのイメージ)に入力されたデータ(行)が、 1枚のシートの空白行に次々に貼り付けられていくようにするには、 マクロを使う事になるかと思いますが、 マクロ初心者につきわかりません。 もう少し具体的にしたい事をいいますと、 ・sheet1を貼り付け先の集合シートにします。 ・sheet2からsheet5までが入力シートです。 ・入力する列の範囲はa~anです。 ・列項目はすべてのシート共通です。 ・sheet2~sheet5にはシート毎に決められた担当者が入力します。 ・(例えばですが)各自が入力完了後、各シート内に据え付けのボタンをクリックしてsheet1に貼り付けられて集められていく。 というものにしたいのです。 どなたか、ご指導願います。
回答: 考え方だけいいます。 sheet2~sheet5の先頭(a列)には行番号を入れておきます。 この番号は例えばsheet2ならば if(isbrank(bi)、999999、20000+row()) つまり入力があれば行番号+20000、なければ999999になります。 例えばsheet2は20001-20100、sheet5は50001-550100. 002などというようにします。 sheet1のa列にはあらかじめsheet2~sheet5よりも大きい数値を入れておきます。例えば9999999などというように。 マクロの考え方は、 sheet2の1行目から10行目など入力行数に応じた最大行数を値のコピーをし、これを例えばsheet1の100行目から貼り付けます。 同様に、sheet3の1行目から10行目など入力行数に応じた最大行数を値だけコピーし、これを例えばsheet1の200行目から貼り付けます このようにしてsheet5までコピー貼り付けをします。 その後でsheet1のa1からan600(これは最大件数で決めます)の範囲をa列で昇順にならべ替えをします。 こうすると入力されたデータだけが上位の行に固まって表示できます。 入力のない行はどのsheetも99999ですから並べ替えで最下行に行きます。 以上の考え方は、ある程度入力件数が増減しても一つのマクロの動作でおなじ結果になります。 マクロの組み方はヘルプで調べてください。あなたが手作業で実行したとおりに記録する機能があリますので、別にvbaは必要ありません、