0
セルの値に応じて、適切な健康障害の絵が表示されるというコードがあります。絵文字の表示/非表示を切り替えるVBAコード
D48の結果が 'AMBER-01'または 'GREEN'であれば動作しますが、それ以外の場合は機能しません。
私はできるだけシンプルにしていますが、なぜ機能していないのか分かりません。
Sub COSHH()
'If statements for visibility of Pictograms
If Sheets("COSHH").Range("D48").Value = "RED-01" Then
Sheets("Formulation").Shapes.Range(Array("GreenCOSHH")).Visible = msoFalse
Sheets("Formulation").Shapes.Range(Array("AmberCOSHH")).Visible = msoFalse
Sheets("Formulation").Shapes.Range(Array("RedCOSHH")).Visible = msoTrue
Sheets("Formulation").Shapes.Range(Array("RedCOSHH2")).Visible = msoFalse
ElseIf Sheets("COSHH").Range("D48").Value = "AMBER-01" Then
Sheets("Formulation").Shapes.Range(Array("GreenCOSHH")).Visible = msoFalse
Sheets("Formulation").Shapes.Range(Array("AmberCOSHH")).Visible = msoTrue
Sheets("Formulation").Shapes.Range(Array("RedCOSHH")).Visible = msoFalse
Sheets("Formulation").Shapes.Range(Array("RedCOSHH2")).Visible = msoFalse
ElseIf Sheets("COSHH").Range("D48").Value = "AMBER-02" Then
Sheets("Formulation").Shapes.Range(Array("GreenCOSHH")).Visible = msoFalse
Sheets("Formulation").Shapes.Range(Array("AmberCOSHH")).Visible = msoTrue
Sheets("Formulation").Shapes.Range(Array("RedCOSHH")).Visible = msoFalse
Sheets("Formulation").Shapes.Range(Array("RedCOSHH2")).Visible = msoFalse
ElseIf Sheets("COSHH").Range("D48").Value = "GREEN" Then
Sheets("Formulation").Shapes.Range(Array("GreenCOSHH")).Visible = msoTrue
Sheets("Formulation").Shapes.Range(Array("AmberCOSHH")).Visible = msoFalse
Sheets("Formulation").Shapes.Range(Array("RedCOSHH")).Visible = msoFalse
Sheets("Formulation").Shapes.Range(Array("RedCOSHH2")).Visible = msoFalse
End If
End Sub
誰にでもアイデアはありますか?私は最後のものを別のものに変更しようとしました。私はそれ自身のIF文に各部分を分割しようとしました。
No Joy !!
ありがとうございます。
D48の値は、CONCATENATEの式に由来しています.RED01の前にスペースがあります。私はそれに応じて調整しました! – vividillusion
素晴らしい!あなたのコードがうまく動いてうれしいよ:) –