[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『項目の表示・非表示をしたい』(XENO)
いくつかの行で下記のように複数の項目を作成し、各項目をクリックしたら該当項目の詳細を表示(他項目の詳細は非表示)されるようにしたいと考えています。
グループ化で似たような状態にはなると思うのですが、文字列(またはセル)をクリック
して実行する方法はあるでしょうか。
なお、詳細項目にはそれぞれ異なるハイパーリンクを設定したいと考えています。
1)
+項目A
+項目B
ー項目C
項目C1
項目C2
+項目D
2)
+項目A
ー項目B
項目B1
+項目C
+項目D
< 使用 Excel:Excel2010、使用 OS:Windows7 >
[標準モジュール]
Public Const IMAX = 9
Sub Auto_Open() Dim i As Long
With Sheets(1) .Range("A1") = "+項目A" .Range("A2") = " 項目A1" .Range("A3") = "+項目B" .Range("A4") = " 項目B1" .Range("A5") = "+項目C" .Range("A6") = " 項目C1" .Range("A7") = " 項目C2" .Range("A8") = "+項目D" .Range("A9") = " 項目D1"
For i = 1 To IMAX If Left(.Cells(i, "A").Value, 1) <> "+" Then .Rows(i).EntireRow.Hidden = True Else .Rows(i).EntireRow.Hidden = False End If Next i End With End Sub
[シートモジュール]
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) Dim i As Long
If Target.Value = "" Then Exit Sub
If Left(Target.Value, 1) = "+" Then Target.Value = "−" & Mid(Target.Value, 2) For i = Target.Row + 1 To IMAX If Left(Cells(i, "A").Value, 1) <> " " Then Exit For End If Rows(i).EntireRow.Hidden = False Next i ElseIf Left(Target.Value, 1) = "−" Then Target.Value = "+" & Mid(Target.Value, 2) For i = Target.Row + 1 To IMAX If Left(Cells(i, "A").Value, 1) <> " " Then Exit For End If Rows(i).EntireRow.Hidden = True Next i End If
Cancel = True End Sub (???) 2014/07/28(月) 15:44
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.