このサイトを利用するのは初めてなので、説明不足で申し訳ありません。行の内容に基づいて行を非表示/非表示にするマクロを使用していますが、より高速にしたいだけです。チェックボックスを使用して、ボックスがチェックされると、列 D に「x」があるすべての行が再表示され、「x」がない行は非表示になります。D ではなく列 C を参照することを除いて、チェックを外しても同じことが起こります。
現在、このコードは機能しています。これをたくさんの人と共有しているので、思ったよりも少し遅いです。それをスピードアップする方法についてのアイデアはありますか?私は VB にまったく慣れていません (インターネットは驚くほど賢く、優れた教師です) が、それは問題ではありません。私はすでにコードを改善しました-各行を選択してから列を参照する前に、それはひどかったです。(できれば画面を動かさずに)スピードアップするアイデアは素晴らしいでしょう。
どうもありがとう、DS
Sub NewLuxCheck()
Dim x As Integer
NumRows = Range("A42", "A398").Rows.Count
Range("A42").Select
If ActiveSheet.Shapes("checkbox2").OLEFormat.Object.Value = 1 Then
For x = 42 To NumRows + 41 Step 1
If Worksheets("Base").Range("D" & x).Value = "x" Then
Worksheets("Base").Range(x & ":" & x).EntireRow.Hidden = False
Else
Worksheets("Base").Range(x & ":" & x).EntireRow.Hidden = True
End If
Next
Else
For x = 42 To NumRows + 41 Step 1
If Worksheets("Base").Range("C" & x).Value = "x" Then
Worksheets("Base").Range(x & ":" & x).EntireRow.Hidden = False
Else
Worksheets("Base").Range(x & ":" & x).EntireRow.Hidden = True
End If
Next
End If
MsgBox ("Done")
End Sub