重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Excelのマクロについて教えてください。

下記のマクロがあります。

With Range("A" & Rows.Count).End(xlUp)
.EntireRow.Copy .Offset(1)
.Offset(1).EntireRow.SpecialCells(xlCellTypeConstants).ClearContents
.Offset(1).Value = .Value + 1
End With

実際にデータが入っているのはA列~E列までで
.EntireRow(行全体)ではなく A?:E? と範囲を指定して上記を実行させたいのですが
どのように変更するといいでしょうか。

よろしくお願いします。

A 回答 (4件)

ん?


全く同じでできますよ。

With Range("A" & Rows.Count).End(xlUp)
.range("A1:E1").Copy .Offset(1)
.Offset(1).range("A1:E1").SpecialCells(xlCellTypeConstants).ClearContents
.offset(1).range("A1:E1").Borders(xlEdgeTop).Weight = xlThin
.Offset(1).Value = .Value + 1
End With




#あれもこれも実はこんな事も丸投げでやって欲しかったんですと,後出しでだらだらと続けないでください。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
おかげさまで、どこが間違っていたのかも理解できました。

ありがとうございました!

お礼日時:2010/05/09 18:58

たとえば


With Range("A" & Rows.Count).End(xlUp)
.range("A1:E1").Copy .Offset(1)
.Offset(1).range("A1:E1").SpecialCells(xlCellTypeConstants).ClearContents
.Offset(1).Value = .Value + 1
End With

のように。
マクロを読んでビックリするようなら,まずテストデータで実動作をしっかり追いかけてみてください。

この回答への補足

ご回答ありがとうございます。
範囲を指定すれば、範囲内のセルにのみ
.Borders(xlEdgeTop).Weight = xlThin
などの設定もできるのかと思っていたのですが、ダメでした。
私の考え方が間違っているのだとは思いますが、
もしよろしければ上記を可能にする方法を教えていただけると助かります。

補足日時:2010/05/09 15:53
    • good
    • 0

Range(.Offset(1), .Offset(1,4)).SpecialCells(xlCellTypeConstants).ClearContents


とか
.Offset(1).Resize(,5).SpecialCells(xlCellTypeConstants).ClearContents
でどうでしょうか。

この回答への補足

ご回答ありがとうございます。
範囲を指定すれば、範囲内のセルにのみ
.Borders(xlEdgeTop).Weight = xlThin
などの設定もできるのかと思っていたのですが、ダメでした。
私の考え方が間違っているのだとは思いますが、
もしよろしければ上記を可能にする方法を教えていただけると助かります。

補足日時:2010/05/09 15:53
    • good
    • 0

>実際にデータが入っているのはA列~E列まで


なら
.EntireRow
でよいかと存じますが、それでも
>A?:E? と範囲を指定して上記を実行
なさりたいのでしたら、
.EntireRow
の替わりに
.Resize(1, 5)  または、  .Resize(, 5)
というのでよろしいでしょうか。

この回答への補足

ご回答ありがとうございます。
範囲を指定すれば、範囲内のセルにのみ
.Borders(xlEdgeTop).Weight = xlThin
などの設定もできるのかと思っていたのですが、ダメでした。
私の考え方が間違っているのだとは思いますが、
もしよろしければ上記を可能にする方法を教えていただけると助かります。

補足日時:2010/05/09 15:52
    • good
    • 0

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