これは以下のように行うことができます。
1)Excelリボンの[開発者]タブに移動します。挿入をクリックし、コマンドボタン(ActiveXコントロール)を選択し、必要な場所に配置します。
2)ボタンをダブルクリックすると、エディタが開きます。あなたは、表示されるはずです。
Private Sub CommandButton1_Click()
End Sub
3)このコードブロックの内側にラインUserForm1.Show
を追加します。これは次のようになります:
Private Sub CommandButton1_Click()
UserForm1.Show
End Sub
4)これでユーザーフォームが作成されます。エディタの左側には、 "Projects - VBA Project"というセクションがあります。このリストには、ワークブックが表示されます。ブックの名前を右クリックし、[挿入] - > [ユーザーフォーム]をクリックします。
5)ツールボックスを使用して、正しいコンポーネントをユーザーフォームにドラッグします。ニーズに応じて機能を追加または削除するのに適したこのフォームを自由にカスタマイズできます。私は私のようにこのように見える:
6)あなたのUserForm1という名前のユーザーフォームが表示されます。このユーザーフォームを右クリックし、[コードの表示]をクリックします。次のコードを貼り付けます。
Private Sub CommandButton1_Click()
Unload UserForm1
End Sub
Private Sub UserForm_Initialize()
Dim lastColumn As Long
lastColumn = Worksheets("Sheet1").Cells(1,Columns.Count).End(xlToLeft).Column
For i = 1 To lastColumn
UserForm1.ComboBox1.AddItem (Worksheets("Sheet1").Cells(1, i))
Next
End Sub
Private Sub CommandButton2_Click()
Dim columnName As String
Dim columnIndex As Integer
Dim min As Double
Dim max As Double
If Not (ComboBox1.SelText = "" And TextBox1.Text = "" And TextBox2.Text = "") Then
columnName = ComboBox1.SelText
min = TextBox1.Text
max = TextBox2.Text
Dim lastColumn As Long
lastColumn = Worksheets("Sheet1").Cells(1, Columns.Count).End(xlToLeft).Column
For i = 1 To lastColumn
If Worksheets("Sheet1").Cells(1, i).Value = columnName Then
columnIndex = i
End If
Next
Dim cellValue As Double
Dim lastRow As Long
lastRow = Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To lastRow
cellValue = Worksheets("Sheet1").Cells(i, columnIndex).Value
' MsgBox CStr(cellValue) + "--" + CStr(cellValue > min) + "--" + CStr(cellValue < max)
If Not (cellValue >= min And cellValue <= max) Then
Worksheets("Sheet1").Cells(i, columnIndex).Value = 0
End If
Next
End If
Unload UserForm1
End Sub
7)CommandButton、ComboBox1などのコンポーネント名を変更して、ユーザーフォームに一致させます。
コードは何をしますか?
初期化:ユーザーフォームが呼び出されるとすぐに、メソッドUserForm_Initialize()
を通過します。このメソッドはワークシートを調べ、すべての列の名前を決定します。次に、これらをComboBoxに追加します。
コマンドボタン1:「キャンセル」、何もせずにユーザーフォームを終了します。
コマンドボタン2: "確認"、このメソッドは、選択した列に移動し、目的の範囲内でチェックします。値がその範囲外になると、0に設定されます。
私はこの助けを願っています!
「ソート済み」とは、「修正済」という意味ですか? –