前提
以下のようなエクセルの表があった場合に
VBAにてB列目の最初の行から最後の行の文字列を取得し
B列の値をメッセージボックスで出力するようにしております。
<エクセル表の例>
A | B |
---|---|
1 | hoge |
2 | fuga |
3 | piyo |
<VBAコード>
vba
1Set r = Range("B1", Range("B1").End(xlDown)) 2For Each str In r 3 MsgBox(str) 'hoge,fuga,piyoの順に出力される 4Next
解決したい内容
上記の表の場合は、特に問題はないですが、
表が以下のようになっている場合に同様の処理を実行すると、B列のxlDownにおいて、
エクセル上での最大行数まで行ってしまうため処理がオーバーフローを起こしてしまいます。
<エクセル表の例>
A | B |
---|---|
1 | hoge |
上記のような場合は、End(xlDown)を実行せず、Range("B1")のみを出力したいと思うのですが、
何かいい方法はありませんでしょうか。
恐れ入りますが、ご回答いただけますと幸いです。
よろしくおねがいします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/23 06:18