色の知識で人生の可能性が広がる!みんなに役立つ色彩検定 >>

こんにちは、エクセルのマクロで解らない事がるので教えて頂けませんか?

F5セルから右に、数値が入力されています。

その最終行まで全選択し、F8に貼り付けようとしているのですが、検索でも最終行の取得は記載が有るのですが、全選択の情報が見当たりません。

空白も間に含むことが有るのですが、最終行までを選択する式を教えて頂けませんか?

よろしくお願い足します。


Range("F5").End(xlToRight).Select  '⇐これじゃ無いんですよね。 本当どうやれば良いのでしょう。

Selection.Copy

Range("F8").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True

質問者からの補足コメント

  • 回答ありがとうございます。

    この方法でやってみたのですが、空白をふくむ場合 空白の手前で最終列と判断されてしまうようです。

    No.1の回答に寄せられた補足コメントです。 補足日時:2015/05/06 20:49
教えて!goo グレード

A 回答 (3件)

その次にある Selection.Copy という行もまとめて 1 行にすると、次のような。



range(range("f5"), cells(5, columns.count).end(xltoleft)).copy
    • good
    • 2
この回答へのお礼

回答ありがとうございます。

最終列から左に探していくような形なのでしょうか、空白も処理できて大変助かりました、ありがとうございます。

お礼日時:2015/05/06 22:19

>空白の手前で最終列と判断されてしまうようです


それは、その通りです。
Range("F5").End(xlToRight)
は F5から右へ移動して、空白の列(F5が空白でない場合)ですので

もし、途中の空白を無視して、一番右側のセルを探したいなら
もっとも右側のセルから 左へ移動して空白でないセルを探します。
エクセル2007以上であれば、最大の列番号は 16348列ですので
Range("F16348").End(xlToLeft)
を使います。
いちいち、最大の列数を覚えるのも面倒なので
Range("F" & Columns.Count).End(xlToLeft)
と記述するケースが多いです。
上記の場合で云えば
Range(Cells(5, 6), Cells(5, Cells(5, Columns.Count).End(xlToLeft).Column)).Select
ちょっと長くなりましたね。
No2の方の様に指定する事も可能です。
それぞれ、意味は同じですので、理解して使ってください。
最終行を取得する場合でも同じですが
途中に空白がある場合と空白なしで詰める場合で使い方が異なります。
    • good
    • 0
この回答へのお礼

再び回答を頂きまして、ありがとうございます。

rangeで範囲を指定して、範囲の最終を探すイメージなのでしょうか、大変便利で助かりました。

教えて頂きありがとうございました。

お礼日時:2015/05/06 22:22

Range("F5").End(xlToRight).Select  '⇐これじゃ無いんですよね。



Range(Cells(5, 6), Cells(5, Range("F5").End(xlToRight).Column)).Select
で試してみてください。
この回答への補足あり
    • good
    • 1
この回答へのお礼

回答ありがとうございます。

なるほどです、入れ子? にするんですね、解りやすかったです。

助かりました、感謝感謝いたします。

お礼日時:2015/05/06 20:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

教えて!goo グレード

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング