• ベストアンサー

エクセルVBAでセル選択

エクセル2000でリストを作成し、VBAで編集しようとしています。 A列に入力されているコードの先頭に「’」をつけて文字列とするための関数をB2のセルからA列のデータが入力されている最後のセルの隣までコピーしたいと思っています。 A列の最終セルを取得するVBAは分かったのですが、その値をB列の選択範囲として使用する方法がわかりません。 エクセルVBAは全くの初心者です。 どなたか教えてください!

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

  • ベストアンサー
  • moon_piyo
  • ベストアンサー率60% (88/146)
回答No.2

ん~やりたいことはこんな感じですか range("a2",range("a2").End(xlDown)).offset(0,1).FormulaLocal="=""'""&a2"

yukikocchi
質問者

お礼

まさにやりたかったことはこれです! No.3の方の回答と組み合わせて使わせていただきます。 ありがとうございました。

その他の回答 (2)

  • jindon
  • ベストアンサー率43% (50/116)
回答No.3

A列の最終列は取得済みですね? 一応 Range("A65536").End(Xlup).Row こんな感じですかね。 このまま使う場合は、 Range("B2:B" & Range("A65536").End(Xlup).Row).Select で良いでしょう。 変数を宣言して Dim lastA as Long LastA=Range("A65536").End(Xlup).Row Range("b2:b" & lastA).Select こういった使い方の方がポピュラーでしょう。

yukikocchi
質問者

お礼

早速の回答ありがとうございます! 変数の代入の仕方が分かりました。""で囲んで文字列として使えばよかったんですね。 早速使わせて頂きます。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

>関数をB2のセルからA列のデータが入力されている最後のセルの隣までコピーしたいと思っています それも良いが(書式に拘らないで良いなら) Sub test06() For i = 1 To 5 Cells(i, "A") = "'" & Cells(i, "A") Next i End Sub でできます。それをお勧めします。 >A列の最終セルを取得するVBAは分かったのですが 上記5に当たるところに Sub test06() d = Range("A65536").End(xlUp).Row MsgBox d For i = 1 To d Cells(i, "A") = "'" & Cells(i, "A") Next i End Sub とすれば良いが >B列の選択範囲として使用する方法がわかりません Sub test06() d = Range("B65536").End(xlUp).Row MsgBox d For i = 1 To d Cells(i, "B") = "'" & Cells(i, "B") Next i End Sub でどうですか。 空白行は’を入れないなら Sub test06() d = Range("B65536").End(xlUp).Row MsgBox d For i = 1 To d If Cells(i, "B") <> "" Then Cells(i, "B") = "'" & Cells(i, "B") End If Next i End Sub (1)

yukikocchi
質問者

お礼

早速のお返事ありがとうございました。 変数の使い方、とても参考になりました。 エクセルVBAの構成が少しだけ見えてきました。 どうもありがとうございます。

関連するQ&A