おそらく、Application.EnableEvents=Falseを設定しています。VBAエディタでイミディエイトウィンドウを開き、入力してapplication.EnableEvents = True
からEnterキーを押してオンに戻します。
また、シートの変更とイベントの再トリガーのサイクルを引き起こしたくない場合は、イベントを無効にする必要があります。ISEMPTY関数はVBAでわずかに異なり、コードを次のように更新できます。これにより、1つ以上のセルの変更も処理されます。
Option Explicit
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim cell As Variant
Application.EnableEvents = False
For Each cell In Target
If Not IsEmpty(cell.Value) Then
cell.Value = UCase(cell.Value)
End If
Next cell
Application.EnableEvents = True
End Sub
または、この実行を1セルの変更のみに制限する場合は、foreachループを次のように置き換えます。If Target.rows.count = 1 AND Target.columns.count = 1....