• ベストアンサー

Excelで、activecellから最終列まで選択するvbaはどうすれば?

たとえばアクティブセルcells(2,30)からcells(2,256)までのセル範囲を選択したいのですが方法がわかりません。 行単位でレコードになっているのですが、任意の行をコピーして別のシートに貼り付けたいのです。 コピーは1行単位、1回ずつでよく、連続処理する必要はありません。 どうぞよろしくお願いします。

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

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

では、こんな風にも書けますね。   With ActiveCell    .Resize(, 257 - .Column).Select   End With

laptop
質問者

お礼

お礼が遅れまして申し訳ございませんでした。 ありがとうございます。 こういう表現もあるんですねぇ。実にスマートにまとめていただいてうれしくなりました。 今後もっと勉強を重ねてこういう発想ができるようになりたいものです。 またよろしくご指導くださいませ。

その他の回答 (5)

  • taocat
  • ベストアンサー率61% (191/310)
回答No.6

またまたこんにちは。 No.5です。追加情報。 Sheet2の20行目にコピーするには、 Range("A20")でもいいのですが、 違和感がある場合は次のようにしてください。 ---------------------------------------------  ActiveCell.EntireRow.Copy Destination:=Sheets("Sheet2").Range("A20") --------------------------------------------- この最後の、Range("A20") を ----------------------------------------------  ActiveCell.EntireRow.Copy Destination:=Sheets("Sheet2").Rows(20) ---------------------------------------------- このように、Rows(20) として下さい。 以上です。

  • taocat
  • ベストアンサー率61% (191/310)
回答No.5

こんにちは。 要するにアクティブセルの行を別のシートにコピーしたいということですよね? アクティブセルの行を求めるのは   ActiveCell.EntireRow ですから、その行を選択したければ   ActiveCell.EntireRow.Select そしてその行を別なシートにコピーしたければ 例えば、Sheet2の20行目にコピーしたければ ------------------------------------------- Sub Test()  ActiveCell.EntireRow.Select  Selection.Copy Destination:=Sheets("Sheet2").Range("A20") End Sub -------------------------------------------- Selectしないで直接コピーしたければ -------------------------------------------- Sub test()  ActiveCell.EntireRow.Copy Destination:=Sheets("Sheet2").Range("A20") End Sub ---------------------------------------------- 以上です。  

  • 134
  • ベストアンサー率27% (162/600)
回答No.3

失礼しました。cells(行、列) ですので、 Range("AE2",Range("IV2").End(xlToLeft)).Select と記述するべきでしたね。 でも、よくよく内容を読みますと、最初に解答なさった方の通りですね。 駄文で申し訳ありませんでした。

laptop
質問者

お礼

ご連絡が遅れまして申し訳ありません。 なるほど。こういう記述も考えられるのですね。 大変参考になりました。ありがとうございます。 今後ともよろしくご指導下さい。

  • 134
  • ベストアンサー率27% (162/600)
回答No.2

cells は、単独のセルを選択するものなので、この場合、range を用いる方がよいかと思います。  Range("B2",Range("B6554").End(xlUp)).Select とすると、データのある列を拾ってくれると思います。

回答No.1

Dim myrow As Long と変数を宣言した上で、 myrow = ActiveCell.row で、アクティブセルの行番号を取得し、 Range(Cells(myrow, 30), Cells(myrow, 256)).Select で、希望のセル範囲が選択できます。

laptop
質問者

お礼

迅速かつ簡潔にご回答いただきありがとうございました。 的確に質問の意を汲んでいただき、胸のつかえがとれた思いです。 急用ができ、ご返事が今になってしまいましたがお許し下さい。 困っていた点は完全に解消いたしました。 本当にありがとうございました。

関連するQ&A

専門家に質問してみよう