IF Not ~ or Not ~.

例えばですが、
シートの名前が"Sheet1"でない、もしくは"Sheet2"ではない場合、Worksheets(1)をDeleteするという文があります。

(A)

If Not Worksheets(1).Name = "Sheet1" Then
If Not Worksheets(1).Name = "Sheet2" Then
Worksheets(1).Delete

とあったとして、
この2つの構文を1つにしたとき、

(B)

If Not Worksheets(1).Name = "Sheet1" Or Not Worksheets(1).Name = "Sheet2"
Worksheets(1).Delete

とすると、
Worksheets(1)が"Sheet1"であっても"Sheet2"であってもDeleteが実行されます。

また、Or を And にしたら、“Sheet1”,"Sheet2"の場合Deleteされなくなりました。

(B)はプログラム上どういった解釈になっているのでしょうか?

Option VBASupport 1の環境での質問ですね。

  Option VBASupport 1
  Sub Main()
      Dim x As String
      x = "a"

      REM If ((Not (x = "a")) Or (Not (x = "b"))) Then
  
      If Not x = "a" Or Not x = "b" Then
          Msgbox(x)
      End If
  End Sub

とあったとき、x = “a” は trueで、x = "b"はfalseです。

Not true = falseであり、またNot false = trueでもあるので

(false Or true) は trueです。言語非依存の数学の問題です。

ちなみにOption VBASupport 0のとき、Not x = "a"は ((Not x) = “a”)なので、文字列を論理値に変換できずエラーになります。(tdf#52601)

…やべぇ、当初とコードが変わったからか、StarBasicの挙動を今のコードで説明できない…そのうち勉強しないとなあ

わかりやすい回答ありがとうございます!
言語的に考えてしまっていました。