0

私はVBAが初めてなので、これがばかげた質問である場合は事前に申し訳ありません. ActiveX リスト ボックスを含むワークシートがあります。ワークシートにはトグル スイッチもあります。トグル スイッチは、押されていないときは行と ActiveX ボックスを非表示にし、押されていると行と ActiveX ボックスを表示するように設定されています。ユーザーが必要な行とボックスのみを非表示にできるように、すべてのトグル スイッチが押されていない状態でファイルを保存したいと思います。すべての行を非表示にしてファイルを保存するまで、すべてが正常に機能します。すべてのボックスを保存した後、場所を変更します。環境設定でボックスを「移動してセルに合わせてサイズ変更する」、「移動するがセルに合わせてサイズ変更しない」、「それ以上しないか、セルに合わせてサイズ変更しない」に設定してみました。すべてのオプションで同じことが起こります。以下は私のトグルスイッチコードです。これを引き起こす何かがそこにありますか?

Private Sub ToggleButton1_Click()
 If ToggleButton1.Value = True Then
         'This area contains the things you want to happen
         'when the toggle button is not depressed
        Range("101:183").EntireRow.Hidden = False
        Sheet1.Range("94:144").EntireRow.Hidden = False
          'This hides the listboxes since they can not move and
          'size with cells
        Sheet11.OLEObjects("ListBox1").Visible = True
        Sheet11.OLEObjects("ListBox2").Visible = True
        Sheet11.OLEObjects("ListBox3").Visible = True
        Sheet11.OLEObjects("ListBox4").Visible = True
        Sheet11.OLEObjects("ListBox5").Visible = True
        Sheet11.OLEObjects("ListBox6").Visible = True
        Sheet11.OLEObjects("ListBox7").Visible = True
        Sheet11.OLEObjects("ListBox8").Visible = True
        Sheet11.OLEObjects("ListBox9").Visible = True
        Sheet11.OLEObjects("ListBox10").Visible = True
        Sheet11.OLEObjects("ListBox11").Visible = True
        Sheet11.OLEObjects("ListBox12").Visible = True
        Sheet11.OLEObjects("ListBox13").Visible = True
        Sheet11.OLEObjects("ListBox14").Visible = True
        Sheet11.OLEObjects("ListBox15").Visible = True
        Sheet11.OLEObjects("ListBox16").Visible = True
        Sheet11.OLEObjects("ListBox17").Visible = True
        Sheet11.OLEObjects("ListBox18").Visible = True

    Else
         'This area contains the things you want to happen
         'when the toggle button is depressed
        Range("101:183").EntireRow.Hidden = True
        Sheet1.Range("94:144").EntireRow.Hidden = True
        Sheet11.OLEObjects("ListBox1").Visible = False
        Sheet11.OLEObjects("ListBox2").Visible = False
        Sheet11.OLEObjects("ListBox3").Visible = False
        Sheet11.OLEObjects("ListBox4").Visible = False
        Sheet11.OLEObjects("ListBox5").Visible = False
        Sheet11.OLEObjects("ListBox6").Visible = False
        Sheet11.OLEObjects("ListBox7").Visible = False
        Sheet11.OLEObjects("ListBox8").Visible = False
        Sheet11.OLEObjects("ListBox9").Visible = False
        Sheet11.OLEObjects("ListBox10").Visible = False
        Sheet11.OLEObjects("ListBox11").Visible = False
        Sheet11.OLEObjects("ListBox12").Visible = False
        Sheet11.OLEObjects("ListBox13").Visible = False
        Sheet11.OLEObjects("ListBox14").Visible = False
        Sheet11.OLEObjects("ListBox15").Visible = False
        Sheet11.OLEObjects("ListBox16").Visible = False
        Sheet11.OLEObjects("ListBox17").Visible = False
        Sheet11.OLEObjects("ListBox18").Visible = False
    End If
End Sub
4

1 に答える 1

1

これがあなたの質問に対する答えではないことは知っていますが (私はまだそれを見ていません)、このコードを提供したいと思いました。これはあなたが提供した正確なコードであり、同じように機能します。少し明確です(実際には、ifステートメントも削除されるため、1/1000000ミリ秒の高速で実行されることもあります= D)

Private Sub ToggleButton1_Click()
    Dim boolToggleValue As Boolean
    Dim i As Integer
    boolToggleValue = ToggleButton1.Value
    'This area contains the things you want to happen
    'when the toggle button is not depressed
    Range("101:183").EntireRow.Hidden = Not boolToggleValue
    Sheet1.Range("94:144").EntireRow.Hidden = Not boolToggleValue
    'This hides the listboxes since they can not move and
    'size with cells
    With Sheet11
        For i = 1 To 18
            .OLEObjects("ListBox" & i).Visible = boolToggleValue
        Next i
    End With
End Sub
于 2013-10-25T17:55:40.687 に答える