対角線に沿って要素を変更する

対角線に沿って要素を変更する

以下のようなマトリックスがあったとします。

1 0 1 0 0
0 0 1 0 0
1 1 1 1 1
1 1 1 0 1
0 0 0 0 1

1 を含む対角要素をすべて 0 に置き換える方法はありますか?

これは簡略化された行列です。私が扱っている行列は実際には 2965x2965 なので、そのサイズの行列に数式を適用し、対角線のみを変更し、その他はすべて同じままにしたいと考えています。

答え1

何かが足りないかもしれませんが、これで必要なことはできそうです:

Sub OneToZero()
    Dim N As Long, i As Long
    N = Columns.Count
    For i = 1 To N
        If Cells(i, i).Value = 1 Then Cells(i, i) = 0
    Next i
End Sub

関連情報