アプリ版:「スタンプのみでお礼する」機能のリリースについて

EXCEL VBA超初心者です。

EXCELのVBAについての質問です。
以下のような、日ごとのお金の貸付、返済の一覧データがあります。



A B C D E
1 年  月 日 貸付  返済
2 2008 5 10 10000
3 2008 6 10      8000
4 2008 7 10 20000
5 2008 8 20      7000

・データの行数は決まっていません。
・最後の行が「貸付」で終わることもありますし
例のように「入金」で終わることもあります。
・各データには必ず「年」「月」「日」が入力してあります。

VBAで、A2セルからE5セルを範囲選択するには
どのように記述したらいいですか?

ちなみに自分で色々と調べてみて
Selection.SpecialCells(xlCellTypeConstants, 23).Select
としたのですが
それだと空白セル(例でいうとE2やD3セル)が選択されず
とびとびになってしまいました。

ご教授お願いいたします!

A 回答 (2件)

n-junです。



>Range("A2",
セルA2と

>Cells(Rows.Count, 1)
A列(Cells(行番号,列番号:"A"=1))の最終行(Rows.Count)から

>.End(xlUp))
上に遡ってデータのある行までを範囲とし、

>.Resize(, 5).Select
その範囲をResize(行,列)で、行方向には変化させず(値を省略⇒省略しない場合はResize(1,5))
列方向に5列広げる(⇒A列からE列まで)

すなわちA2:A5と取得した範囲を、A2:E5とするという感じ。

数式があってもその結果次第で範囲の取り方も変わります。
例えば数式の結果が0であった場合、A列を順に確認していって0に
なったかどうかを判定する必要がある。

あとは、
A列の”数式があって値が数値である範囲”
Range("A:A").SpecialCells(xlCellTypeFormulas, xlNumbers).Select
⇒ただし0も数値ですから省けませんけど。

A列の”数式があって値が文字列である範囲”
Range("A:A").SpecialCells(xlCellTypeFormulas, xlTextValues).Select
等々・・・数式から求められた結果によってさまざまかと。
    • good
    • 0
この回答へのお礼

丁寧におしえていただいてありがとうございます!!
これで色々アレンジして使えそうです★
じっくり読ませていただき勉強させてもらいます!
どうもありがとうございました!!

お礼日時:2009/04/09 13:43

A列の最終データまでを有効と見なせるのなら、


Range("A2", Cells(Rows.Count, 1).End(xlUp)).Resize(, 5).Select
とか?
    • good
    • 0
この回答へのお礼

ご回答いただきありがとうございます!
VBAに記述してみたら
それらしき動きをしてくれました!
ちなみにVBA超初心者なため
内容を自分でアレンジすることができません。
もしお時間ありましたら
教えていただいたものの意味を教えていただけますか?
ちなみに空白セルとはいっても
全てのセルに数式が入っているんです。
このような場合どのあたりを修正すればよいかも
もしよかったら教えてください!

お礼日時:2009/04/07 14:58

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