Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6080 / 13646 ツリー ←次へ | 前へ→

【47306】最終行を取得消去 おっと 07/3/7(水) 20:58 質問[未読]
【47309】Re:最終行を取得消去 Kein 07/3/7(水) 22:00 回答[未読]
【47328】Re:最終行を取得消去 Kein 07/3/8(木) 1:38 発言[未読]
【47341】Re:最終行を取得消去 おっと 07/3/8(木) 15:10 お礼[未読]
【47311】Re:最終行を取得消去 ponpon 07/3/7(水) 22:05 発言[未読]
【47313】Re:最終行を取得消去 ponpon 07/3/7(水) 22:10 発言[未読]
【47319】Re:最終行を取得消去 ウッシ 07/3/7(水) 22:34 発言[未読]
【47312】Re:最終行を取得消去 ウッシ 07/3/7(水) 22:09 回答[未読]
【47327】Re:最終行を取得消去 おっと 07/3/8(木) 0:14 お礼[未読]

【47306】最終行を取得消去
質問  おっと  - 07/3/7(水) 20:58 -

引用なし
パスワード
   みなさん VBA初心者ですがよろしくお願いします。
D列の最終行(入力済み)を取得し
C列の取得位置(D列)から下のデータを
消去したいのですがどう書けばいいでしょうか。

Sub 余消し()
Range("D65536").End(xlUp).Offset(1).Select

  Selection.ClearContents

End Sub
よろしくお願いします。
追加説明
C列の範囲なんですがC30:C480迄の範囲で
消去は実行可能範囲としたいのです。

【47309】Re:最終行を取得消去
回答  Kein  - 07/3/7(水) 22:00 -

引用なし
パスワード
   D列の最終入力行は、Range("D65536").End(xlUp).Row で取得できます。
Offset(1) すると「一つ下の空白セル」になるので、その質問では
どちらを指定したいのか良く分からないのですが、いちおう一つ下とすると

Sub 余消し()
  Dim GetR As Long

  GetR = Range("D65536").End(xlUp).Row + 1
  If GetR >= 30 Or GetR <= 480 Then
   Range("C" & GetR & ":C480").ClearContents
  End If
End Sub

というコードになります。最終入力行に合わせるなら、当然 〜.Row + 1 の
ところで 1 を加算しなければ良いのです。

【47311】Re:最終行を取得消去
発言  ponpon  - 07/3/7(水) 22:05 -

引用なし
パスワード
   ▼おっと さん:
こんな感じでしょうか?
Sub test()
  With Sheets("Sheet1")
   .Range(.Range("D65536").End(xlUp).Offset(1, -1), .Range("C65536").End(xlUp)).ClearContents
  End With
End Sub

>追加説明
>C列の範囲なんですがC30:C480迄の範囲で
>消去は実行可能範囲としたいのです。

ここの説明がいまいちなんですが、・・・
この範囲外だったら消去しないということでしょうか?

【47312】Re:最終行を取得消去
回答  ウッシ  - 07/3/7(水) 22:09 -

引用なし
パスワード
   こんばんは

Sub 余消し()
  Dim L As Long
  L = Rows.Count
  On Error Resume Next
  Intersect(Range("C30:C480"), _
    Range(Range("D" & L).End(xlUp).Offset(1, -1), Range("C" & L))).ClearContents
  On Error GoTo 0
End Sub

エラースキップ忘れてました。

【47313】Re:最終行を取得消去
発言  ponpon  - 07/3/7(水) 22:10 -

引用なし
パスワード
   >>追加説明
>>C列の範囲なんですがC30:C480迄の範囲で
>>消去は実行可能範囲としたいのです。
>
>ここの説明がいまいちなんですが、・・・
>この範囲外だったら消去しないということでしょうか?

こういうことだったら、
ウッシさん(お久しぶりです。おげんきでしたか?)
の書かれている通りです。
失礼しました。

【47319】Re:最終行を取得消去
発言  ウッシ  - 07/3/7(水) 22:34 -

引用なし
パスワード
   ▼ponpon さん:
こんばんは(^.^)

【47327】Re:最終行を取得消去
お礼  おっと  - 07/3/8(木) 0:14 -

引用なし
パスワード
   今仕事から帰りました。
返事遅くなりすみません

Keinさん
ウッシさん
ponponさん
最終行の取得方法
*Range("D65536").End(xlUp).Row
*Range(.Range("D65536").End(xlUp).Offset(1, -1)
勉強になりました
どれも思い通りに動きました。
ありがとうございました。
解決ですw

【47328】Re:最終行を取得消去
発言  Kein  - 07/3/8(木) 1:38 -

引用なし
パスワード
   遅れましたが一点、間違いがあったので修正しておきます。
>If GetR >= 30 Or GetR <= 480 Then


If GetR >= 30 And GetR <= 480 Then

でした。すいません。

【47341】Re:最終行を取得消去
お礼  おっと  - 07/3/8(木) 15:10 -

引用なし
パスワード
   ▼Kein さん:
>遅れましたが一点、間違いがあったので修正しておきます。
>>If GetR >= 30 Or GetR <= 480 Then
>↓
>
>If GetR >= 30 And GetR <= 480 Then
>
>でした。すいません。
Keinさんわざわざすみません
今気がつきました。
修正しまーす。

6080 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free