[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『チェックボックスを使用した図形の表示と非表示の切り替え』(S2)
「チェックボックス」を使ってグループ化した図形や写真を
表示/非表示をする方法はありますか?
具体例としては「フォームコントロール」の「チェックボックス」
でA1をリンクさせてFALSEとTRUEの表示切替で「グループ化 1」を
表示と非表示をコントロールしたいです。
以上、よろしくお願いします。
< 使用 Excel:Excel2007、使用 OS:WindowsVista >
で、どこかのセルに =IF(A1,"表示","非表示")
あとは、
http://www.officetanaka.net/excel/function/tips/tips14.htm
↑を参考にして、INDIRECT参照を 式を入れたどこかのセルにしておきます。
(このページで解説されている入力規則は不要)
こちらで、試しましたが、いい具合に切り替わります。
(β) 2016/11/29(火) 08:42
Sub チェック1_Click() ActiveSheet.Shapes("グループ化 1").Visible = IIf(ActiveSheet.CheckBoxes(Application.Caller).Value = 1, msoTrue, msoFalse) End Sub
または、ActiveXコントロールのチェックボックスならば、セルにリンクする必要もなくて楽ではないかと思います。この場合は、以下。
Private Sub CheckBox1_Click() Shapes("グループ化 1").Visible = CheckBox1.Value End Sub (???) 2016/11/29(火) 10:47
失礼します。
フォームツールのほうも(リンクセルを参照するなら)
Sub チェック1_Click() ActiveSheet.Shapes("グループ化 1").Visible = Range("A1").Value End Sub
でもいいですね。
(β) 2016/11/29(火) 10:56
Sub チェック1_Click() ActiveSheet.Shapes("グループ化 1").Visible = ActiveSheet.Range(ActiveSheet.CheckBoxes(Application.Caller).LinkedCell).Value End Sub (???) 2016/11/29(火) 11:02
Sub チェック1_Click() With ActiveSheet .Shapes("グループ化 1").Visible = .Range(.CheckBoxes(Application.Caller).LinkedCell).Value End With End Sub (???) 2016/11/29(火) 11:11
なるほどです!
以下のようなことをすれば、コードが1つになるので、さらにいいかもしれませんね。
表示/非表示する図の名前とそれを制御するチェックボックスの名前に関連付けをしておく。
例えば、図_A と チェック_A、図_B と チェック_B とか。
そうすると、すべてのチェックボックスに、???さんの最初のコードを、ちょっと変更して登録しておくことができますね。
Sub 表示非表示() ActiveSheet.Shapes("図_" & Split(Application.Caller, "_")(1)).Visible = IIf(ActiveSheet.CheckBoxes(Application.Caller).Value = 1, msoTrue, msoFalse) End Sub
(β) 2016/11/29(火) 11:30
まず、チェックボックス名は「チェック 1」として、グループ名もこの番号に合わせて「グループ化 1」となるようにしておきます。必ずスペース文字を入れてください。
後は、全てのチェックボックスで以下のマクロを登録してください。
Sub Click() Dim c As CheckBox With ActiveSheet Set c = .CheckBoxes(Application.Caller) .Shapes("グループ化 " & Split(c.Name, " ")(1)).Visible = .Range(c.LinkedCell).Value End With End Sub (???) 2016/11/29(火) 12:00
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.