- PR -

行数の取得

投稿者投稿内容
未記入
会議室デビュー日: 2008/11/24
投稿数: 13
投稿日時: 2008-11-24 15:46
(利用規約違反のため削除いたしました。@ITクラブメンバーシップセンター)
未記入
会議室デビュー日: 2008/11/24
投稿数: 13
投稿日時: 2008-11-24 15:47
(利用規約違反のため削除いたしました。@ITクラブメンバーシップセンター)
未記入
会議室デビュー日: 2008/11/24
投稿数: 13
投稿日時: 2008-11-24 15:48
(利用規約違反のため削除いたしました。@ITクラブメンバーシップセンター)
なび
ぬし
会議室デビュー日: 2007/08/27
投稿数: 273
投稿日時: 2008-11-25 18:20

みなさん、何度もありがとうございます。

(0, 0)から最終データまで選択して、そのうちの行の数を数える。
すると、行の数=最終行。

とありますが、ある1列で判断してかまわないのです。
具体的にどのように最終行まで選択して、行数を数えるのでしょうか?

もう少しご教授頂けないでしょうか?

宜しくお願いします。

ふるふる
会議室デビュー日: 2008/02/05
投稿数: 19
投稿日時: 2008-11-26 13:59
エクセルのマクロでは、次のようにデータの入力されている最終行を取得するのが多いです。
sheet1.Range("A65536").End(xlUp).Row

要はシートの最終行(Excel2003なら65536行目)からCtrl+↑でとんだ先の行番号を取得、ですね。
先頭行から値のない行を検索しても、その後に値のある行があると正しくないですからね。
後ろから数える、というような視点を変えることができるようになってくださいね。




なび
ぬし
会議室デビュー日: 2007/08/27
投稿数: 273
投稿日時: 2008-11-26 16:01
ふるふるさん、ありがとうございます。

もう1点お聞きしたいことがありますので

また、よろしくお願いします。
platini
大ベテラン
会議室デビュー日: 2002/12/03
投稿数: 193
投稿日時: 2008-11-26 17:09
Jittaさん
引用:

最終行ってのを、どう定義します?
すべての列に、必ず何らかの値が入っているなら、値がない行まで調べればいいのですが、セルの結合をしていたり、空値もありえるなら、単一の列だけを調べていると、最終行にならないかも知れません。

まぁ、出てきていない条件については、今までの経験で勝手に想像するわけですが。
(だから、上司に報告したり、同僚に相談するのが先じゃないか?と書くのです。)



Jittaさんが言っていることの意味が非常に重要です。

ふるふるさん Wrote:
引用:

sheet1.Range("A65536").End(xlUp).Row
要はシートの最終行(Excel2003なら65536行目)からCtrl+↑でとんだ先の行番号を取得



この取り方、(希望要件に適合しないかもしれない)意図しないセルを取るケースがあります。
具体例
A65533のセルに
=IF(B65533="","",1)

という数式(隣のセルが空白なら空白、空白でなければ1)を
入力し、B65533が空の場合、このコードの実行結果は、65533を返します。

これは多分、本当は返して欲しくない行番号の値
(こんなところが取りたいのではない)ではありませんか?

だからこそ、Jittaさんの最終行って何よ?が重要なんです。
いや、数式なんて入ってません。値しかありません。
と言い切れる場合、そのコードでOKでしょうが、
それは(その条件でよいかは)我々にはわかりません。

引用:

出てきていない条件については、今までの経験で勝手に想像するわけですが



なびさんの過去の投稿パターンを見てみたのですが、
質問初回に、拘束・制約条件の提示情報量が少なく、
回答者が無駄な推察を繰り返すパターンが多いように思います。



### 2008-11-27 AM01:06 セルの行番号のキーパンチミス(数式とミスマッチ)が
        あったので修正


[ メッセージ編集済み 編集者: platini 編集日時 2008-11-27 01:06 ]

スキルアップ/キャリアアップ(JOB@IT)