- ベストアンサー
Excel VBAでの質問です。アクティブになっているシート上では書けたのですが・・・
例えば、sheet1、sheet2、sheet3があって、今sheet1がアクティブになっています。sheet1がアクティブの状態でsheet2のセル(3,2)からセル(3,12)の間に上から順に値を入力していきます。値はForm1のTextbox1の値です。 しかしながら、sheet2のセル(3,2)からセル(3,10)の間には、何らかの値がすでに入っている場合があります。 このような場合は、空白のセルの中で一番上のセルに値を返したい場合、どのように記述すればよいでしょうか? sheetをアクティブ状態になっていれば書けたのですが、アクティブでないsheetに、アクティブ状態にしないで上のようなプログラムを書くのがなかなかできません。 お手数かけますが、よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
CommandButton1をクリックすると シート2のA列の最後の空白セルにTextBox1の値を書き込みます。 参考になれば良いのですが。 Private Sub CommandButton1_Click() Dim Lrow As Long With Worksheets("Sheet2") Lrow = .Cells(Rows.Count, 1).End(xlUp).Row .Cells(Lrow, 1).Offset(1, 0).Value = _ Me.TextBox1.Value End With End Sub
その他の回答 (1)
こんにちは。 アクティブでないシートで処理をするときは、セル指定をシート名からきちんと書けばいいです。 Worksheets("Sheet2").Range("A1").Value = "AAA" という風にします。処理が多いときは With Worksheets("Sheet2") .Range("A1").Value = "AAA" .Range("A2").Value = "AAA" End With とWithを使うといいでしょう。
お礼
なんか、難しい処理を組み合わせておりました。 単純に空白セルを見つけて、そこに記述するようにしました。 ご回答ありがとうございました。
お礼
なんか、難しい処理を組み合わせておりました。 単純に空白セルを見つけて、そこに記述するようにしました。 ご回答ありがとうございました。
補足
しかしながら、sheet2のセル(3,2)からセル(3,10)の間には、何らかの値がすでに入っている場合があります。このような場合は、空白のセルの中で一番上のセルに値を返したい場合 ここの部分で、引っかかっています。 もうちょっと、知恵かして下さい