ボタンをクリックするとテキストファイルが読み込まれ、テキストファイルの行が列に読み込まれます。私は、行に含まれるものに応じて、特定の行に隣接するセルにチェックボックスを追加する必要があります。Visual Basic Excel作成コードのチェックボックス
チェックボックスのようなコンポーネントをコードに作成することはできますか?
ご回答いただければ幸いです。
ボタンをクリックするとテキストファイルが読み込まれ、テキストファイルの行が列に読み込まれます。私は、行に含まれるものに応じて、特定の行に隣接するセルにチェックボックスを追加する必要があります。Visual Basic Excel作成コードのチェックボックス
チェックボックスのようなコンポーネントをコードに作成することはできますか?
ご回答いただければ幸いです。
@Sivaが提供するリンクは確かに有効ですが、私は外部リンクの代わりにStackOverflowで回答する方が好きです。したがって、ここであなたが探しているかもしれない解決策は以下のとおりです。
Option Explicit
Public Sub tmpSO()
Dim i As Long
Dim chk As CheckBox
With ThisWorkbook.Worksheets(1)
.CheckBoxes.Delete
For i = 1 To .Cells(.Rows.Count, "A").End(xlUp).Row
If .Cells(i, "A").Value2 = "need checkbox" Then
Set chk = .CheckBoxes.Add(Left:=.Cells(i, "B").Left, Top:=.Cells(i, "B").Top, Width:=.Cells(i, "B").Width, Height:=10)
chk.OnAction = "runThisSub"
chk.Name = "CheckBowInRow" & i
chk.Caption = "CheckBowInRow" & i
End If
Next i
End With
End Sub
Sub runThisSub()
MsgBox "You clicked the checkbox " & Application.Caller _
& Chr(10) & "in cell " & ThisWorkbook.Worksheets(1).CheckBoxes(Application.Caller).TopLeftCell.Address
End Sub
コピーの両方潜水艦はModule
に第一副
Worksheet(1)
です)、A
)、さらにA
の値はneed checkbox
でなければなりません)。コードがシートWorksheet(1)
に列A
内のすべてのセルに目を通すと、値がneed checkbox
であるかどうかをチェックします。その場合、コードはそのセルに隣接する列B
に自動的にチェックボックスを追加します。
新しく作成されたチェックボックスのいずれかをクリックすると、2番目のサブが起動し、メッセージボックスにどの行がクリックされたかを示すチェックボックスが表示されます。
これは絶対に素晴らしいです、ありがとうございます! 「Option Explicit」が何をしているのか聞いてもよろしいですか? –
'Option Explicit'はコーディング**ベストプラクティス**とみなされます。詳細については、http://stackoverflow.com/documentation/excel-vba/1107/vba-best-practices/3554/always-use-option-explicit#t=20160823142124572616を参照してください。また、Microsoftのこれについて考える)https://msdn.microsoft.com/en-us/library/y9341s4f.aspx – Ralph
これはあなたが必要としていると思いますhttp://analysistabs.com/vba/add-checkbox-on-worksheet-or-userform-using-vba/ – Siva