Excel VBA質問箱 IV

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

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


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

【13662】最下行を調べるための みーちゃん 04/5/10(月) 19:41 質問[未読]
【13663】Re:最下行を調べるための ちゃっぴ 04/5/10(月) 19:53 発言[未読]
【13686】Re:最下行を調べるための みーちゃん 04/5/11(火) 11:41 発言[未読]
【13690】Re:最下行を調べるための ちゃっぴ 04/5/11(火) 12:24 回答[未読]
【13696】Re:最下行を調べるための みーちゃん 04/5/11(火) 13:19 お礼[未読]

【13662】最下行を調べるための
質問  みーちゃん  - 04/5/10(月) 19:41 -

引用なし
パスワード
   最下行を調べる

LastRow = range("B65536").End(xlup).row

は、行の途中に空白が入っていても使えますか?

【13663】Re:最下行を調べるための
発言  ちゃっぴ E-MAIL  - 04/5/10(月) 19:53 -

引用なし
パスワード
   ▼みーちゃん さん:
>最下行を調べる
>
>LastRow = range("B65536").End(xlup).row
>
>は、行の途中に空白が入っていても使えますか?


そこまでわかっているのでしたら、自分で実験してみましょう。

Sub GetLastRow
  Msgbox Range("B65536").End(xlup).Row
End Sub

これを対象の表で実行して実験してみれば、おのずとわかるはずです。

【13686】Re:最下行を調べるための
発言  みーちゃん  - 04/5/11(火) 11:41 -

引用なし
パスワード
   ▼ちゃっぴ さん:
>そこまでわかっているのでしたら、自分で実験してみましょう。
>
>Sub GetLastRow
>  Msgbox Range("B65536").End(xlup).Row
>End Sub
>


あ、それも、そうですね(赤) 疲れているのかなぁ...

ちなみに、罫線で囲ってる範囲があるとして、
その範囲のなかのB列の最下行をとりたい場合はどうしたらよいのでしょう。
しかも、そこには空白だとしたら。

【13690】Re:最下行を調べるための
回答  ちゃっぴ E-MAIL  - 04/5/11(火) 12:24 -

引用なし
パスワード
   ▼みーちゃん さん:
>ちなみに、罫線で囲ってる範囲があるとして、
>その範囲のなかのB列の最下行をとりたい場合はどうしたらよいのでしょう。
>しかも、そこには空白だとしたら。

For Each文でセル範囲をループして
Borders(XlBottom).LineStyleプロパティがxlLineStyleNoneでないセルを
検索すればよいのでは

以下サンプル
Dim rngTarget as Range

For Each rngTarget In Range("B1:B65536")
  With rngTarget
    If .Borders(XlBottom).LineStyle <> xlLineStyleNone Then
      MsgBox .Row
    End If
  End With
Next rngTarget

これだとセルの下端に罫線が設定されているセルをB1から検索して、
最初に引っかかった行を表示します。

下から検索する場合には上記のループ文をFor文に置き換えてSTEP -1で実行してください。

また、"UsedRange"プロパティを使用する方法もあります。

【13696】Re:最下行を調べるための
お礼  みーちゃん  - 04/5/11(火) 13:19 -

引用なし
パスワード
   ▼ちゃっぴ さん:
で、出来た!(喜) できました。
その位置を取得して、その次の行で改ページし、
2つ下の行から新しくへ値を入れるという事をしたかったので、
良かったです。
ちゃっぴ さん ありがとうございました。

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