[[20061106160729]] 『チェックボックス』(つまり) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『チェックボックス』(つまり)
 いつもお世話になっております。
 チェックボックスの応用について教えてください。

 シートが2枚あります。

 1枚のシートのA1のセルにプルダウンリストを作成
 リスト内容・・・みかん・りんご・ぶどう

 もう2枚目のシートにチェックボックスを3個作成
 A1のセルにみかん
 B1のセルにりんご
 C1のセルにぶどう

 この様なデータがあるのですが、
 1枚目のシートのリストでみかんを選んだ時、
 2枚目のみかんのチェックボックスにチェックが入るようにしたいのですが、
 チェックボックスのコントロールの書式設定などいじってみたんですが、
 わかりませんでした・・・

 こんな事は出来ないのでしょうか?
 どなたか教えてください。
 よろしくお願いします。


 >セルにプルダウンリストを作成
 入力規則を使っているのか、他を使っているのかはっきりとわかるように
 書いたほうが良いです。
 何度もやり取りするようなことになるので....。

 >チェックボックスのコントロールの書式設定
 これも、アクティブXコントロールのコントロールツールボックスなのか、
 フォームのほうなのか、はっきり書いておいたほうが良いです。
 でないと解答が付きにくいと思います。
 (Jaka)


 すみません・・・

 プルダウンリストは入力規則を使っています。
 チェックボックスはフォームのチェックボックスです。

 よろしくお願いします。

 (つまり)

 えっと、コントロールの書式設定のコントロールタブにリンクするセルってありますよね?
 そこに適当にセルアドレスをいれてみてOK。チェックをON・OFFすると、リンクしたセルがTRUE・FALSEと変わります。
 要はリンクしたセルがTRUEならチェックが入るので、そのセルに
 =IF(リストから選択するセル="みかん",TRUE) なんて数式を入れ、フォント色を白とでも
すればとりあえずはご要望のようになると思うんですが、問題が。 
 チェックボックスにチェックを入れてしまうと数式は消える。
 シートの保護をすれば数式は消えませんが、保護する際にロックされたセル範囲の選択が
許可されていれば、複数チェックを入れることはできる。のです。
 複数チェックOKなら問題ないんですけど、どれか一つをっというのなら、オプションボタンのほうがいいように思います。

 私なんぞの怪しげな回答より、全文検索でチェックボックス オプションボタン フォーム で検索してみたので、
見てみてください。きっと参考になるスレッドがあると思います。^^;
http://www.excel.studio-kazu.jp/cgi-bin/estindex/estseek2.cgi?phrase=%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9%E3%80%80%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%9C%E3%82%BF%E3%83%B3%E3%80%80%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0&perpage=10&attr=&order=@uri+STRD&clip=-1
(かなれっと)


 かなれっとさん、ありがとうございます。
 複数チェックOKなので教えていただいた方法でやってみます。
 (つまり)


 リンクするセルに
 Worksheets("Sheet2").Range("B4").Value = True
 Worksheets("Sheet2").Range("B4").Value = False
 ってな感じに書き込んでもいいんですが、普通に書くとこんな感じです。
 尚、入力規則のリスト設定の仕方よっては、97だと動きません。
 (Jaka)

 Private Sub Worksheet_Change(ByVal Target As Range)
 Dim LsId As Integer
 If Target.Address(0, 0) = "A1" Then
    If Target.Value = "みかん" Then
       LsId = 1
    ElseIf Target.Value = "りんご" Then
       LsId = 2
    ElseIf Target.Value = "ぶどう" Then
       LsId = 3
    End If
    If LsId > 0 Then
       With Worksheets("Sheet2")
          'For i = 1 To 3
          '   If i = LsId Then
          '                  名前ボックスに表示されている名前を使いました。
          '                ↓その辺は、適当に修正してください。
          '      .Shapes("チェック " & i).OLEFormat.Object.Value = xlOn
          '   Else
          '      .Shapes("チェック " & i).OLEFormat.Object.Value = xlOff
          '   End If
          'Next
          .Shapes("チェック " & LsId).OLEFormat.Object.Value = xlOn
       End With
    End If
 End If
 End Sub

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.