5

単純なマクロボタンの実行方法に関しては、些細な問題があります。このボタンの目的は、行を展開することと行を折りたたむことの2つです。

1ボタンを押すと、このVBAコマンドが開始されます。

Sub Macro7()

Rows(7).ShowDetail = True

End Sub

このコマンドは行7を展開します。

2ボタンをもう一度押すと(行が展開されている間)、このVBAが開始されます。

Sub Macro7()

Rows(7).ShowDetail = False

End Sub

これにより、行が折りたたまれます。

ボタンを2つのマクロにリンクする方法はありますか?

前もって感謝します!!!

M

4

5 に答える 5

10
Sub Macro7()  
    With Rows(7)
        .ShowDetail = Not .ShowDetail
    End With
End Sub 
于 2012-10-12T17:30:30.580 に答える
5

する必要がない。マクロを調整して、行の現在の状態 (折りたたまれているか展開されているか) を確認し、それに応じて行動するだけです。

Sub ExpandOrCollapse()

Rows(7).ShowDetail=IIF(Rows(7).ShowDetail,False,true)

End Sub
于 2012-10-12T17:03:23.770 に答える
2

上記の回答を試しましたが、うまくいきませんでした。以下は動作するコードです:

Sub rowExpanded()

Rows("7:7").Select
Selection.EntireRow.Hidden = IIf(Selection.EntireRow.Hidden, False, True)

End Sub
于 2013-09-23T18:00:32.547 に答える
0

コマンド ボタン (ActiveX コントロール) を使用してみてください。ボタンのキャプションを使用して、トグル状態を識別します。

Private Sub CommandButton1_Click()

    If CommandButton1.Caption = "-" Then
        ActiveSheet.Outline.ShowLevels Rowlevels:=1, ColumnLevels:=1
        JobDescriptionToggleButton.Caption = "+"
    Else
        ActiveSheet.Outline.ShowLevels Rowlevels:=8, ColumnLevels:=8
        JobDescriptionToggleButton.Caption = "-"
    End If

End Sub
于 2016-06-20T01:39:55.057 に答える
0

これを試して

Dim rowExpanded As Boolean
rowExpanded = Rows(7).ShowDetail

If rowExpanded = True Then
    Rows(7).ShowDetail = False
Else
    Rows(7).ShowDetail = True
End If
于 2012-10-12T17:04:30.020 に答える