DOBON.NET DOBON.NETプログラミング掲示板過去ログ

スプレッドのシート行数取得について

環境/言語:[VB .NET]
分類:[.NET]

大変恐縮なのですが。

スプレッドシートの行数を取得するのはVBでどうやったらよいのですかね?
できれば、スプレッドシートの中にデータが入っている行数を調べたいのですが

なかなか取得できません。。。


適当な聞き方ではありますが。一つこの馬鹿に伝授してやってください。
> スプレッドシートの行数を取得するのはVBでどうやったらよいのですかね?


spread_Sheet1.RowCountでは無理ですか?
■No6532に返信(TTさんの記事)
>>スプレッドシートの行数を取得するのはVBでどうやったらよいのですかね?
>
>
> spread_Sheet1.RowCountでは無理ですか?
お返事くださいましてありがとうございます

確かに、spread_Sheet1.RowCountで全体行数は表示できるのですが、

例えば、10行あるシートの内、データが入ってる行数がわからないと
駄目なのです;;

もし、わかるようでしたら引き続きご伝授お願いします。
VB初心者さん、TTさん、こんにちは。

> >>スプレッドシートの行数を取得するのはVBでどうやったらよいのですかね?
>>
>>
>>spread_Sheet1.RowCountでは無理ですか?
> お返事くださいましてありがとうございます
>
> 確かに、spread_Sheet1.RowCountで全体行数は表示できるのですが、
>
> 例えば、10行あるシートの内、データが入ってる行数がわからないと
> 駄目なのです;;
>
> もし、わかるようでしたら引き続きご伝授お願いします。
つまり、更新されたなどの対象行だけをカウントしたいって事でしょうか?
でしたら、そんな便利なメソッドやプロパティは無いと思います。
では、どうするのか…
答えは簡単です。隠し列を作成しておき、そこにフラグを収めておくのです。
例えば、
・何もしていない行:0
・新規行:1
・更新行:2
・削除行:3
といった感じです。
で、例えば、更新した行数が知りたければ、2の行をカウントしていけば良いのです。
皆様、こんにちは。

■No6538に返信(VB初心者さんの記事)
> 例えば、10行あるシートの内、データが入ってる行数がわからないと駄目なのです;;

最大行はわかるのですから、Forステートメントでデータが入っているかを見れば良いのでは?
格納する必要があるならば、何処かの変数に格納する。


■No6539に返信(ぺがらぼさんの記事)
> 答えは簡単です。隠し列を作成しておき、そこにフラグを収めておくのです。

Array変数を可変で持って格納した方が、スマートで良さそうな気もします。
まあ、実装方法が違うだけで目的は同じですけども。

> ・何もしていない行:0
> ・新規行:1
> ・更新行:2
> ・削除行:3

補足になっちゃいますけど、これは、以下のようにEnum型で表現すると判りやすいですね。

Private Enum EnumRowState As Byte
    NoChangeRow = 0
    NewRow      = 1
    UpdateRow   = 2
    DeleteRow   = 4
End Enum
■No6539に返信(ぺがらぼさんの記事)
> VB初心者さん、TTさん、こんにちは。
ありがとうございます。

dim i as integer '行以降用変数
dim row as integer 'データのある行を確保する変数

While i < 10
If FpSpread3_Sheet1.Cells(i, 0).Value <> "" Then
row = row + 1
End If
i = i + 1
End While

でスプレッドシートの中にあるデータ行を抽出することができました!

わかると簡単なんですが、悩むと長いですね。。。
お二人様、お付き合いいただいて感謝しています。
ありがとうございました。
創意工夫するからこそ、経験と知識になるのです。
だから、私の書いた事がトンチンカンに見えても後で、なるほど…って思う時が来るので、頑張ってください。
私も負けないように精進します。

DOBON.NET | プログラミング道 | プログラミング掲示板