- ベストアンサー
スプレッドについて
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
- みんなの回答 (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型になるので注意。
その他の回答 (2)
- Kuppycat
- ベストアンサー率50% (109/216)
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の内容を取りに行きます。
お礼
できました。 ありがとうございます。
- ki-ton
- ベストアンサー率50% (3/6)
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番目の列の値がとれますよ
お礼
いろいろ方法があるのですね。 方法2のほうが一般的なのでしょうか? 見た感じ方法2のほうがよさそうですね。 試してみます。 ありがとうございました。