2012-04-04 21 views
2

[OK]を、私はタイトルが混乱する可能性がありますが、ここに行くことを知っている。チェックボックスを作成して対処し、新しいチェックボックスレポートを新しい場所に作成する

私はのリストを持っているが、Excelのスプレッドシートに100人を言うことができます、すべての名前が列Aにあり、チェックボックスは、列Bにあり、TrueまたはFalse列Cに

を隠されているI手動で列Bのチェックボックスを作成します。列Cで真または偽を報告します。

チェックボックスをリストの最後から最後まで作成し、ボックスは、他のチェックボックスのデータによって上下のチェックボックスが壊されないように、C列の自分自身のカウンターにレポートします。

答えて

3

シナリオに2種類のコントロールを挿入できます。一つは、フォームが制御やその他ののActiveXコントロールである

フォームコントロール

フォームコントロールを挿入するには、このコードの構文がある

Sheets("Sheet1").CheckBoxes.Add 52.5, 3, 42, 17.25 

に使用する必要があります

CheckBoxes.Add Cell.Left, Cell.Top, Cell.Width, Cell.Height 

ActiveXコントロール

ActiveXコントロールを挿入するには、あなたはこのコード

Sheets("Sheet1").OLEObjects.Add ClassType:="Forms.CheckBox.1", Link:=False, _ 
DisplayAsIcon:=False, Left:=54, Top:=1.5, Width:=39.75, Height:=11.25 

を使用する必要がありますので、上記の制御のいずれかを追加するには、の座標を見つけるためにループを使用する必要があります該当する場所にチェックボックスを追加します。あなたのシナリオでは、上記のチェックボックスのいずれかがクリックされたときに実行されるコードを1つ持つことができるように、フォームコントロールを使用することをお勧めします。

今、我々は、すべてのチェックボックスが同じマクロを呼び出すことを確認する方法:)

ヒント:このコードは、チェックボックスを作成し、チェックボックスにマクロを割り当てます。

Sub Sample() 
    Dim Shp As Shape 

    '~~> Create a Checkbox 
    Set Shp = Sheets("Sheet1").CheckBoxes.Add(52.5, 3, 42, 17.25) 

    '~~> Assing a macro to it 
    Shp.OnAction = "'" & ActiveWorkbook.Name & "'!macro_name" 
End Sub 

[OK]をクリックします。マクロは、どのCheckBoxがそれを呼び出すのかをどのように知っていますか?

ヒント:チェック内容Application.Caller;)チェックボックスにリンクされているマクロにコードを挿入します。

Sub macro_name() 
    MsgBox "This macro was called by " & Application.Caller 
End Sub 

HTHと正しい軌道に乗ってあなたを取得:)

シド

+0

+1、ニース説明 –

関連する問題