|
▼ひげくま さん:
みなさん、こんばんは。
>
>複数行をグループ化した状態で、折りたたんだり展開したときに、マクロを実行したいと思っているのですが、何か良い方法はないでしょうか。
こんな方法を見つけました。
まず、新規ブックで試してみてください。
新規ブックのSheet1というシートにグループの設定を行いましょう。
・シートの10行から、20行を選択した状態で
「データ」---「データとアウトラインの設定」--「グループ化」と
クリックしてください。これで10行目から、20行目がグループ化できました。
・試しに左側上の「1」をクリックで「10行から20行」が非表示になり、
「2」を」クリックで表示されますね?
・ここから、準備です。
・名前の定義を行います。
セルA1を選択して、「挿入」--「名前」---「定義」と
クリックして「名前の定義」ダイアログを表示させます。
・参照範囲として「=GET.CELL(17,Sheet1!$A$10)」と指定してください
(両端の「」は除く)
・名前は「hh」とします(両端の「」は除く)。
・上記の入力を行って「OK」をクリックしてください。
これで名前の登録ができました。
・次に「コントロールツールボックス」のテキストボックスを配置します。
どこでもよいですが、セルC1におさまる程度に作ってください。
・名前はTextbox1とします。
プロパティボックスでVisibleプロパティをFalseに設定してください
デザイン終了(三角定規のアイコンクリック)でテキストボックスが消えることを
確認してください。
・Sheet1のモジュールには
'===============================================================
Private Sub TextBox1_Change()
With TextBox1
If CBool(.Text) Then
MsgBox "hide"
Else
MsgBox "visible"
End If
End With
End Sub
というイベントプロシジャーを記述します。
・標準モジュールに
'==============================================================
Function grpopn(hh As Double) As Boolean
grpopn = Not CBool(hh)
ActiveSheet.OLEObjects("textbox1").Object.Text = CStr(grpopn)
End Function
というFunctionを記述します。
・最後です。セルA1を選択して、条件付書式を設定します。
「書式」---「条件付書式」とクリックして「条件付書式の設定」ダイアログを
表示させてください。
・条件として「数式が」を選択します。
・数式として、「=grpopn(hh)」を指定してください(両端の「」は除く)。
・書式は何も指定せずにOKをクリックしてください。
これで完了です。
これで、左上の「1」のクリックで「hide」
「2」のクリックで「visible」と表示されます。
うまくいかないときは、名前の定義や条件付書式の数式が
正しく定義されているか確認してみてください。
上記の操作でExcel2002で確認しましたが、動作確認が出来ています。
試してみてください。
|
|