- ベストアンサー
ExcelVBAでセルの移動をしたい
aという変数に、A1の値を代入することはできましたが、 例えば、A2にも値があればA2の値を代入するようにしたいです。 A列の1番下のセルの値を代入させるようにするにはどうしたらよいのでしょうか。 日本語が下手ですいません。 宜しくお願い致します。 a = Range("A1")
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 > A列の1番下のセルの値を代入させるようにするにはどうしたらよいのでしょうか。 この場合は、こちら。 ------------------------------------- Sub Sample() Dim x As Long Dim myString As String x = Range("a65536").End(xlUp).Row myString = Cells(x, 1).Value End Sub ------------------------------------- myStringに値が代入されます。
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
色んな流儀がありますが 下記のdがデータ最下行(番目数)を採る常套手段です。 Sub test01() Dim d dim i d = Range("A65536").End(xlUp).Row For i = 1 To d MsgBox Cells(i, "A") Next i End Sub これでほとんどの処理はできます。 -- 表現から危なっかしい箇所 >例えば、A2にも値があればA2の値を代入するようにしたいです 値があればの意味は。空白のこと? どこへ代入? >aという変数に、A1の値を代入することはできましたが、 どんな風にしましたか a=Range("A1").Value ですか。この方法より、上記のCells()方が応用が聞くのが判りますか。 >値を代入することはできましたが 一旦aに代入して使わなくても、場合によっては、そのまま右辺を使っても良いのですよ。 VBAをはじめて間もないらしいが、セルの値を採ったり、セットしたり、このRangeの問題は基礎ですから、解説本の当該箇所をじっくり読んでください。
お礼
回答ありがとうございます。 質問が下手ですいません。 >値があればの意味は。空白のこと? >どこへ代入? A列に表があるのですが、その表の一番下のセルの値を別のセルに代入するのが目的でした。 >どんな風にしましたか >a=Range("A1").Value ですか。この方法より、上記のCells()方が応>用が聞くのが判りますか。 a=Range("A1").Valueです。Cells()だと、列、行の両方で指定ができるから応用が利くといくことでしょうか。 >一旦aに代入して使わなくても、場合によっては、そのまま右辺を使っても良いのですよ。 代入を無理に使わなくてもいいのですね。 本も読んでいますが、実務で急ぎで必要なため、 ついこちらにお願いしてしまいます。 申し訳ありません。 ご指摘ありがとうございました。
お礼
早速の回答ありがとうございます。 いただいたように修正しましたら、解決できました。 ありがとうございました。