- ベストアンサー
入力するごとにセルを移動させる方法
今、VBAを組んでいてどうしても分からないところがあるので教えてください。 シート1のA1に値を入力し、シート上に作ったコマンドボタンを押すと、シート2のB1に値が入力されるマクロを組んでいます。新たにシート1のA1に値を入力し、ボタンを押すと、今度はシート2のB2に値が入力される、もう一度同様の作業をするとシート2のB3に値が入力される、そんなVBAってありますか? もし、それがムリなら、日付をフラグとして上記のようなVBAを組む方法はありますか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 コントロールツールのボタンに以下のように付ければよいかと思います。ただし、その列には、このデータのみを入れるようにしてください。 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
その他の回答 (2)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 私の書いたマクロは、お分りになりませんでしたか? Worksheets("Sheet2").Range("B65536").End(xlUp) その列というのは、Sheet2のB列のことです。これは、B列の下から上に検索していますから、その列は、当然、途中は、空いていないといけませんね。だから、積み上げ式に、B1,B2,B3 ... となっていきます。 その列の最後尾までの間に、何か別のデータを入るようなら、このマクロは書き換えなくてはなりません。そういう意味なのですが、おわかりになりますか?
お礼
なるほど!上から順に記入していくと言うのではなく、下から積み上げていくと言う形になるのですね! 一度、試してみます。 ありがとうございました。
- the_moon
- ベストアンサー率40% (9/22)
回答はこちら♪ Option Explicit Public mintSheet As Integer Sub Macro1() mintSheet = mintSheet + 1 Sheets(2).Cells(1, mintSheet) = Sheets(1).Cells(1, 1) End Sub
お礼
ありがとうございます。 ちなみに、シート2に事前に日付が入力されていて シート1にも日付を入力する欄があり、シート1の入力した日付に該当する行(シート2)に値を入力する場合はどうなりますか?
補足
ありがとうございます。 >ただし、その列には、このデータのみを入れるようにしてください とはどういうことですか? その列とはどの列のことでしょう?