不必要に複雑な一連のステートメントを簡略化する処理中です。私は以下の例をFor iプロシージャを使って単純化したいが、シート上のより多くのオブジェクトの可視性に影響するようにステートメントのスコープを増やす方法は不明だ(これは簡単に解決できないだろう。今日は有効かもしれない)。VBA For iを変更してコードを簡素化する次の記事
例:
A1Z
A2Z
A3Z
A4Z
A5Z
A6Z
A7Z
A8Z
A9Z
B1Z
B2Z
B3Z
B4Z
B5Z
B6Z
B7Z
B8Z
B9Z
そしてように、シート上の最終的なオブジェクトに至るまで、「O9Z」: シート1は、135個のチャート以下のパターンで標識されているオブジェクトが含まれています。私はやや私のために使用してこの肥大化した手順を簡素化することができる午前
If Sheet2.Range("D12").Value = "A1Z" Then
Sheets("Charts").ChartObjects("A1Z").Visible = True
Sheets("Charts").ChartObjects("A2Z").Visible = False
Sheets("Charts").ChartObjects("A3Z").Visible = False
Sheets("Charts").ChartObjects("A4Z").Visible = False
Sheets("Charts").ChartObjects("A5Z").Visible = False
Sheets("Charts").ChartObjects("A6Z").Visible = False
Sheets("Charts").ChartObjects("A7Z").Visible = False
Sheets("Charts").ChartObjects("A8Z").Visible = False
Sheets("Charts").ChartObjects("A9Z").Visible = False
Sheets("Charts").ChartObjects("B1Z").Visible = False
Sheets("Charts").ChartObjects("B2Z").Visible = False
Sheets("Charts").ChartObjects("B3Z").Visible = False
Sheets("Charts").ChartObjects("B4Z").Visible = False
Sheets("Charts").ChartObjects("B5Z").Visible = False
Sheets("Charts").ChartObjects("B6Z").Visible = False
Sheets("Charts").ChartObjects("B7Z").Visible = False
Sheets("Charts").ChartObjects("B8Z").Visible = False
Sheets("Charts").ChartObjects("B9Z").Visible = False
:現在CommandButton_Clickイベントは次のように書かれているこれらの(醜い)手続きを呼び出し、シート上のボタンに割り当てられ
声明:私の手順で
If Sheet2.Range("D12").Value = "A1Z" Then
Dim i As Integer
For i = 2 To 9
Sheets("Charts").ChartObjects("A" & i & "Z").Visible = False
Sheets("Charts").ChartObjects("A1Z").Visible = True
Next i
一つの問題は、しかし、それだけでB1Z-O9Zオブジェクトに影響を与えずにA9ZによるオブジェクトA2Zの可視性に影響を与えることです。
"A"、 "B"、 "C"、 "D"などの範囲の各文字をループするiに加えて、文字 "O"に2番目の変数を追加すると、 Ifステートメント(この例では "A1Z")内の値が引用符で囲まれていないワークシート上のすべてのオブジェクトが非表示になるように、For iステートメントを調整します。
しかし、私はその範囲の文字を説明するために採用する方法がわかりません。