こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルVBAでのチェックボックス操作

エクセルを利用した、VBAで困っています。
所定のsheetに埋め込まれたチェックボックスに対して、
別sheet内のセルの値を参照し、結果をオン、オフという
操作を行いたいのですが、チェックボックスに対するVBAでの指定方法
が分かりません。
イメージとしては
(1)Sheet1内にチェックボックスがある。
 該当チェックボックスは7個のチェックボックスで構成されており
 それぞれにchb1~chb7といったオブジェクト名がある。
(2)sheet2のA1セルに特定の値が入っていればチェックボックス(chb1)
 がオン値がなければオフのまま
(3)sheet2のB1セルに特定の値が入っていればチェックボックス(chb2)
 がオン値がなければオフのまま
という感じです。
先方より指定された様式なのでsheet1の内容や書式を変更することが出来ないので、なんとか埋め込まれたオブジェクトを操作したいのですが・・・

良い方法があれば教えてください。

投稿日時 - 2010-03-09 23:21:36

QNo.5739265

すぐに回答ほしいです

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

こんばんは。

一例です。
適当に応用してください。

Sub test1()
  Dim Ws1 As Worksheet
  Dim Ws2 As Worksheet
  Dim i As Integer
  Dim myKey
  
  myKey = Array("特定値1", "特定値2", "特定値3", "特定値4", _
          "特定値5", "特定値6", "特定値7")
  
  Set Ws1 = Worksheets("Sheet1")
  Set Ws2 = Worksheets("Sheet2")
  
  For i = 1 To 7
    If Ws2.Cells(1, i).Value = myKey(i - 1) Then
      Ws1.OLEObjects("chb" & i).Object.Value = True
    Else
      Ws1.OLEObjects("chb" & i).Object.Value = False
    End If
  Next i
  
  Set Ws1 = Nothing
  Set Ws2 = Nothing
End Sub

投稿日時 - 2010-03-10 00:24:46

お礼

>ka_na_de様
ありがとうございます。
さっそく試してみたところ、正常にオブジェクトは選択されているような動作をしているのですが、チェックがオン状態になりません。
おそらくif文の条件指定と思いますので、いろいろと試行錯誤してみます。

投稿日時 - 2010-03-10 09:11:20

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

こんにちは。

サンプルプログラムでは、
  myKey = Array("特定値1", "特定値2", "特定値3", "特定値4", _
          "特定値5", "特定値6", "特定値7")
で、それぞれの文字列で比較しています。

もし、特定値が数値であれば、
  myKey = Array(1,2,3,4,5,6,7)
のように数値で指定してください。

また、特定値が複数の値であったり、ある範囲の値の場合は
改良が必要です。

投稿日時 - 2010-03-10 12:43:02

お礼

>ka_na_de様
ご支援ありがとうございました。
無事に期待通りの動作を実現することが出来ました。

投稿日時 - 2010-03-10 16:34:07

ANo.1

まずは「マクロの記録」でチェックボックスをチェック状態にするコードを生成させる。

そのうえで、シート2!A1をIF文で判定して値を設定するコードを書く。

投稿日時 - 2010-03-09 23:43:14

補足

>bin-chan様
何回か「マクロの記録」をやってみたのですが、まったく記録されずです。
質問記載が不十分だったかも知れませんが、チェックボックスはどうやらコントロールオブジェクトを使用されているようです。

投稿日時 - 2010-03-10 00:11:32

お礼

>bin-chan様
間違えて質問捕捉に記載していました。

何回か「マクロの記録」をやってみたのですが、まったく記録されずです。
質問記載が不十分だったかも知れませんが、チェックボックスはどうやらコントロールオブジェクトを使用されているようです。

投稿日時 - 2010-03-10 09:12:32

あなたにオススメの質問