• ベストアンサー

EXCELのデータ入力

EXCELでマクロをくみたいのですが、 シートが二つあって、 例えば項目が住所 氏名 電話番号 などとあって、 一つ目のシートにデータを入れて 登録ボタンをおすと 二つ目のシートに蓄積されていくマクロを組みたい のですが、二つ目のシートで、次の段を認識させる方法が思い浮かびません。 お詳しい方、お教えいただけないでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • nobuendo
  • ベストアンサー率47% (182/384)
回答No.4

すみません。一箇所勘違いしていました。 ↓キーの記録部分ですが、これだとあなたの言われるように、セルが指定されてしまいます。 この部分は、下記のマクロ記述例の、ActiveCell.Offset(1, 0).Activate と書き直してください。 これは、アクティブセルを下に一つ移動させるマクロ記述です。ちなみに、ActiveCell.Offset(-4, -2).Activateとすれば、上に四つ左に二つ移動します。つまり現在地を基点に好きな所へアクティブセルを移動できる、知っておくと便利なマクロです。 それから言い忘れましたが、二つ目のシートのA1には、何か適当なテータが記述されている必要があります(空白セル不可)。見えているのがいやなら、文字色を白にしてください。 尚、下記のマクロは、シート1(マクロボタンのあるシート)のA3からC3までのデータを、シート2のA3からデータを蓄積するマクロ記述例です。 前回も書きましたが、A列に蓄積されるデータに空白セルがあってはいけません。 また、二行目は各項目行で、三行目のA列(A3)からデータが蓄積されます。 尚、データは、複数行ずつ蓄積することも可能です。 Range("A3:C3").Select Selection.Copy Sheets("Sheet2").Select Range("A1").Select Selection.End(xlDown).Select ActiveCell.Offset(1, 0).Activate ActiveSheet.Paste

kamiero
質問者

お礼

度々ご丁寧にありがとうございます。 さっそく試してみまして、これをベースに 作れそうです。非常に助かりました。 ありがとうございます!

その他の回答 (3)

  • nobuendo
  • ベストアンサー率47% (182/384)
回答No.3

ANo2の訂正(最後の文) 入力データの蓄積マクロのコピーとペーストの間に、このマクロをくっつければ、次々とデータを蓄積できるはずです。 言い換えれば、入力データのコピーから、蓄積場所指定、そしてペーストまでを 新しいマクロの記録で作ればよいわけです。

kamiero
質問者

補足

コピー先の次列(新しい列)の識別をさせるための 条件の指定になると思えません。具体的によろしければ記述してみていただいてもよいですか。

  • nobuendo
  • ベストアンサー率47% (182/384)
回答No.2

ツール-マクロ-新しいマクロの記録で、マクロを組めば簡単に作れます。 尚、二つ目のデータは二行目がタイトル行で蓄積データは三行目から蓄積されるようにします。(二行目の各列には、あらかじめタイトルを入力しておく) 一つ目のシートに戻り、新しいマクロの記録を実行します。 記録内容 1.シート見出しで二つ目のシートをクリック(二つ目のシートに飛ぶ) 2.セルA1をクリック(仮にA列からデータを蓄積する場合で、A列はデータ抜け無き事⇒ナンバー列にすると良い) 3.キーボードのCtrlキーを押しながら↓キーを押す。(データの最下行に飛ぶ) 4.↓キーを押す。(これで空白セルの先頭行) マクロの記録終了。これで蓄積データの最後の行の次の行の先頭(A列)のセルを指定できます。 入力データの蓄積コピーマクロの前に、このマクロをくっつければ、次々とデータを蓄積できるはずです。

kamiero
質問者

補足

その方法は実は試しましたが、セルを指定して 指示してしまうので無理だったと思います。

  • a987654
  • ベストアンサー率26% (112/415)
回答No.1

必須入力の項目はありますか? 無ければ、項目のどれかは入力されているはずですよね。 そこで、FOR文などで 1.シート2の1ブロック分の領域をCOUNT関数でデータ有無を確認 2.データが無い場合にはEXIT 3.1ブロック分カウントUP 4.next FORを抜けた時にブロック分のカウンタが次に使える 領域になります。 FORのMAXを超えた時の処理は別途組み込んでください。   

関連するQ&A