電子書籍の厳選無料作品が豊富!

VBも素人なんですが、スプレッドのとり方を教えてください。

以下のスプレッドが既存で存在していてチェックボックスが各行ごとにあるのですが、チェックしたときに呼ばれる関数を以下に書きました。
例えば002という値を取得したいときどうコーディングしたらよいでしょうか?

 _____________
 | 001 | AAAA |  a   | 
 |-----|------|----------|   
 | 002 | BBBB |  b   |
 |-----|------|----------|
 | 003 | CCCC |  c   |
 |-----|------|----------|
※関数の中身は適当です。どうやったらとれるか試行錯誤しています。。。

Private Sub sprService_ButtonClicked(ByVal Col As Long, ByVal Row As Long, ByVal ButtonDown As Integer)

Dim intbutton As Integer

Col = Row
intbutton = ButtonDown
sprService.Col = sprService.Row
sprService.Col = sprService.Row2

End Sub

A 回答 (3件)

方法は2種類あります。



'方法1
Dim strResalt as String '値を入れる変数

Spread1.Row = Row 'チェックをした行を設定
Spread1.Col = 1 '1列目を設定
strResalt = Spread1.Text '値を取得して変数にセット

'BBBBを取得したかったら、Spread1.Col = 2と
してやればよいわけです。

'方法2
Dim varResalt as Variant '値を入れる変数
Dim blnRC as Boolean 'GetTextが成功したかの戻り値

blnRC = Spread1.GetText(1,Row,varResalt)
'BBBBを取得したかったら、GetTextの1つ目のパラメータを2にします。

速度は方法2のほうが速いです。
方法2は変数がVariant型になるので注意。
    • good
    • 0
この回答へのお礼

いろいろ方法があるのですね。
方法2のほうが一般的なのでしょうか?
見た感じ方法2のほうがよさそうですね。
試してみます。
ありがとうございました。

お礼日時:2005/03/18 18:19

Private Sub sprService_ButtonClicked(ByVal Col As Long, ByVal Row As Long, ByVal ButtonDown As Integer)


Dim tmp

 If ButtonDown = 1 then
  sprService.GetText 1, Row, tmp
 Else
  tmp = ""
 End If

End Sub

この方法で、チェックボックスにチェックがついたときに、列1の内容を取りに行きます。
    • good
    • 0
この回答へのお礼

できました。
ありがとうございます。

お礼日時:2005/03/18 17:38

a,b,cがチェックボックスだと仮定して書きますが


Private Sub sprService_ButtonClicked(ByVal Col As Long, ByVal Row As Long, ByVal ButtonDown As Integer)

dim varGetExt

if col = <> 3 then
exit sub
end if

sprService.GetText 1, Row , varGetTxt

これでチェックされた行の1番目の列の値がとれますよ
    • good
    • 0

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