• ベストアンサー

スプレッドについて

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

質問者が選んだベストアンサー

  • ベストアンサー
  • embe
  • ベストアンサー率37% (3/8)
回答No.2

方法は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型になるので注意。

toshi_200578
質問者

お礼

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

その他の回答 (2)

  • Kuppycat
  • ベストアンサー率50% (109/216)
回答No.3

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の内容を取りに行きます。

toshi_200578
質問者

お礼

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

  • ki-ton
  • ベストアンサー率50% (3/6)
回答No.1

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番目の列の値がとれますよ

関連するQ&A