C7:K35
Cell の値に基づいてセル範囲の書式を変更したいと思いますA1
。
= 1の場合、A1
数値の形式は次のようになります。"_-* #,##0_-;-* #,##0_-;_-* ""-""??_-;_-@_-"
<> 1の場合、A1
数値の形式は次のようになります。"_-$* #,##0_-;-$* #,##0_-;_-$* ""-""??_-;_-@_-"
以前別のフォーラムで質問したときにこれを行ったことがあるため、これを実行するには VBA を使用して実行する必要があることはわかっていますcase
が、その質問がもう見つかりません。
おそらく次のような感じになると思います:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
case when Range("A1").value = 1 then
Range("C7:K32").Select
Selection.NumberFormat = "_-* #,##0_-;-* #,##0_-;_-* ""-""??_-;_-@_-"
Else
Range("C7:K32").Select
Selection.NumberFormat = "_-$* #,##0_-;-$* #,##0_-;_-$* ""-""??_-;_-@_-"
End If
End Sub
答え1
Select
声明以外は何も必要ありませんSelect Case
。
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
select case Range("A1").value
case 1
Range("C7:K32").NumberFormat = "_-* #,##0_-;-* #,##0_-;_-* ""-""??_-;_-@_-"
case Else
Range("C7:K32").NumberFormat = "_-$* #,##0_-;-$* #,##0_-;_-$* ""-""??_-;_-@_-"
end select
End If
End Sub