1

Excel 内で、図形のグループを作成しました。これらは、いくつかのチェック ボックスと白い四角形で構成されています。これらを「grouponeone」と名付けました。「oneonebutton」という長方形も作成しました

私がしたいのは、長方形「oneonebutton」が非アクティブのときに、テキストフレームが名前付きセルを参照することです(「namedcell」と呼びます)。クリックすると「オプションの選択」に変わり、ボタンの下にグループが表示されます。チェックボックスをクリックすると、散布値がグラフにプロットされます。もう一度クリックすると、初期状態に戻ります。

これはこれまでのところ私のコードですが、私は立ち往生していて、VBA に慣れていないので、うまくハッキングできませんでした。大変助かりました。

Sub checkboxmacro()

If SelShp.TextFrame2.TextRange.Characters.Text = Range("namedcell") Then
    group11.Visible= False
    SelShp.TextFrame2.TextRange.Characters.Text = "Select Options"
Else
    group11.Visible = True
    SelShp.TextFrame2.TextRange.Characters.Text = Range("experimentoneonename")
End If

End Sub

事前に乾杯

4

1 に答える 1

1

これまでのところ、問題ないように見えます (いくつかの変更を以下に提案します)。

Sub Tester()
    Const STR_SELECT As String = "Select Options (click here when done)"
    Dim shp As Shape, tr As TextRange2, grp As Shape

    Set shp = ActiveSheet.Shapes(Application.Caller)
    Set tr = shp.TextFrame2.TextRange
    Set grp = ActiveSheet.Shapes("grpOne")

    If tr.Characters.Text <> STR_SELECT Then
        tr.Characters.Text = STR_SELECT
        grp.Visible = True
    Else
        tr.Characters.Text = ActiveSheet.Range("namedcell")
        grp.Visible = False
    End If

End Sub

続行する方法は、チェックボックスの種類によって部分的に異なる場合があります。

例: フォームのチェックボックスを使用する場合、以下のサブのようなものにそれらをすべてリンクできます (チェックボックスの名前に基づいて実行するアクションを切り替えます)。

Sub Checker()
    Dim ac As String

    ac = Application.Caller
    Debug.Print ac, ActiveSheet.CheckBoxes(ac).Value
    'do something based on checkbox name and value...

End Sub
于 2013-10-03T00:32:32.457 に答える