セルの Excel 数式

セルの Excel 数式

セル A1 から B1 に値をコピーして表示するには、Excel の数式が必要です。セル A1 の値が正の値からゼロに変更された場合、セル B1 の値は変更されず、以前の値 (常にゼロより大きい値) が保持される必要があります。値は数値です。

答え1

これは数式だけでは実現できません。しかし、次のVBAコードでは、選択変更イベント、 それは動作します:

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
    Const SourceCell = "$A$1"
    Const TargetCell = "$A$2"

    If Target.Address = SourceCell Then
        If Range(SourceCell).Value > 0 Then
            Range(TargetCell).Value = Range(SourceCell).Value
        End If
    End If
End Sub

または、ソース セルとターゲット セルをさらに追加したい場合 (後で要求されます):

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
    Dim SourceCells(), TargetCells() As Variant
    Dim i As Integer

    ' Make sure the cells are declared with $'s
    ' Make sure that the arrays contain the same number of elements
    SourceCells = Array("$B$1", "$B$2", "$F$5")
    TargetCells = Array("$A$1", "$A$2", "$H$12")

    For i = 0 To UBound(SourceCells)
        If Target.Address = SourceCells(i) Then
            If Range(SourceCells(i)).Value > 0 Then
                Range(TargetCells(i)).Value = Range(SourceCells(i)).Value
            End If
        End If
    Next i

End Sub

このコードをVBAコード内に挿入します。ワークシートこれを実行したい場所を指定します。これを行うには、次の手順に従ってください。

  • Excel でワークブックを開き、ALT+ をクリックしますF11。これにより、VBA エディターが開きます。
  • 左側の「プロジェクト」ツリーを確認し、Excel ワークブックとワークシートを見つけます。そのワークシートを右クリックし (マウスで)、選択しますView Code
  • 上記のコードをコピーしてエディターに貼り付けます。
  • VBA エディターを閉じると、すべてが期待どおりに動作するはずです。

関連情報