投稿日 | : 2005/06/14(Tue) 17:31 |
投稿者 | : ゆうり |
Eメール | : |
URL | : |
タイトル | : Re^8: スプレッド使用時における明細行の選択操作について |
先月、本掲示板に投稿させていただいたものです。
あれから少し時間が経ってしまいましたが、前回の課題について本日確認を実施してみました。
現状は、つめが甘く上手くいっていない状況です。
再度御質問させていただきたく下記に内容を記載いたします。
不手際があるようであれば、ご指摘いただければ幸いです。
【実施環境】
VB5.0/SPREAD2.5J
【実現したい要件】
上記サンプル画面でのスプレッドでの明細行をクリック(複数行選択可能)し、
選択行における各列の値を取得したい。
【確認コード】
下記3パターンで確認実施中。いずれもNGの結果です。
-----------------------------------------------------------
(1)パターン1
Dim i_cnt As Integer
Dim sel_cnt As Long
Dim selwk As Long
Dim Sel_Txt As Boolean
For i_cnt = 1 To fp.Spread1.MaxRows
sel_cnt = fp.Spread1.GetMultiSelItem(selwk)
Sel_Txt = fp.Spread1.GetText(1, sel_cnt, ax1) '選択行のax1をGet
Sel_Txt = fp.Spread1.GetText(2, sel_cnt, az5) '選択行のaz5をGet
'以下、必要列数分記述
Next i_cnt
『確認実施手順』
スプレッド明細行にて、2行目と4行目を選択し実行する。
『結果』
sel_cnt に、2が返されるが、4は返されない。
選択行2行目の列(ax1)と、列(az5)の値は、正しく取得可能。
但し、4行目の値は、Get出来ず。
⇒ For ループの中で、sel_cnt の値を確認しても、表示件数
(MaxRows=10)までのループで、”2”しか値がセットされない。
-----------------------------------------------------------
(2)パターン2
※グレープシティ社のHPにて、類似事例があったので以下のコードで試してみました。
Dim lngArray() As Long '配列を宣言
Dim lngCount As Long '選択している行の総数を格納する変数
Dim lngPre As Long '取得した行番号を一時的に格納する変数
Dim i_ct As Integer
ReDim lngArray(0) '配列の初期サイズを宣言
lngCount = fp.Spread1.SelModeSelCount '選択している行の総数を取得
lngPre = 0
For i_ct = 0 To lngCount - 1
'選択行の行番号を配列に格納します
lngArray(i_ct) = fp.Spread1.GetMultiSelItem(lngPre)
'Sel_Txt = fp.Spread1.GetText(1, lngArray(i_ct), ax1) '選択行:Get
'Sel_Txt = fp.Spread1.GetText(2, lngArray(i_ct), az5) '選択行:Get
ReDim Preserve lngArray(i_ct + 1) '配列のサイズを拡張します
Next i_ct
『確認実施手順』
スプレッド明細行にて、2行目と4行目を選択し実行する。
lngArray(i_ct) に、2が返されるが、4は返されない。
(1)と同様の結果となる。
-----------------------------------------------------------
(3)パターン3
※グレープシティ社のHPでの別の類似事例による以下のコードで試してみました。
Dim c, r, c2, r2
Dim x As Long
With fp.Spread1
If .IsBlockSelected Or . SelectionCount Then
.BlockMode = True
For x = 0 To . SelectionCount - 1
.GetSelection x, c, r, c2, r2
.Col = c
.Col2 = c2
.Row = r
ow2 = r2
ebug.Print .Col, .Col2, .Row, .Row2
ext x
.BlockMode = False
End
End With
『確認実施手順』
スプレッド明細行にて、2行目と4行目を選択し実行する。
GetSelection については動作確認できず。
(プロパティがサポートされてません)