• ベストアンサー

入力するごとにセルを移動させる方法

今、VBAを組んでいてどうしても分からないところがあるので教えてください。 シート1のA1に値を入力し、シート上に作ったコマンドボタンを押すと、シート2のB1に値が入力されるマクロを組んでいます。新たにシート1のA1に値を入力し、ボタンを押すと、今度はシート2のB2に値が入力される、もう一度同様の作業をするとシート2のB3に値が入力される、そんなVBAってありますか? もし、それがムリなら、日付をフラグとして上記のようなVBAを組む方法はありますか?

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 コントロールツールのボタンに以下のように付ければよいかと思います。ただし、その列には、このデータのみを入れるようにしてください。 Private Sub CommandButton1_Click() With Worksheets("Sheet2").Range("B65536").End(xlUp)  If .Row = 1 And .Value = "" Then    .Value = Range("A1").Value  Else   .Offset(1).Value = Range("A1").Value  End If End With

kyoroxchan
質問者

補足

ありがとうございます。 >ただし、その列には、このデータのみを入れるようにしてください とはどういうことですか? その列とはどの列のことでしょう?

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 私の書いたマクロは、お分りになりませんでしたか? Worksheets("Sheet2").Range("B65536").End(xlUp) その列というのは、Sheet2のB列のことです。これは、B列の下から上に検索していますから、その列は、当然、途中は、空いていないといけませんね。だから、積み上げ式に、B1,B2,B3 ... となっていきます。 その列の最後尾までの間に、何か別のデータを入るようなら、このマクロは書き換えなくてはなりません。そういう意味なのですが、おわかりになりますか?

kyoroxchan
質問者

お礼

なるほど!上から順に記入していくと言うのではなく、下から積み上げていくと言う形になるのですね! 一度、試してみます。 ありがとうございました。

  • the_moon
  • ベストアンサー率40% (9/22)
回答No.1

回答はこちら♪ Option Explicit Public mintSheet As Integer Sub Macro1() mintSheet = mintSheet + 1 Sheets(2).Cells(1, mintSheet) = Sheets(1).Cells(1, 1) End Sub

kyoroxchan
質問者

お礼

ありがとうございます。 ちなみに、シート2に事前に日付が入力されていて シート1にも日付を入力する欄があり、シート1の入力した日付に該当する行(シート2)に値を入力する場合はどうなりますか?

関連するQ&A