目安箱 IV

目安箱投稿のルールはこちらをごらんください。
ご意見は電子メールで承っています。
「目安箱」は質問禁止です。技術的な質問はそれぞれの質問箱へどうぞ。

迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。

  新規投稿 ┃ツリー表示 ┃一覧表示 ┃トピック表示 ┃検索 ┃設定 ┃ホーム  
126 / 277 ←次へ | 前へ→

【164】ちょっと気になる現象2 Is 演算子
Excel  ichinose  - 06/12/23(土) 22:25 -

引用なし
パスワード
   Is演算子は、オブジェクトを比較する演算子ですが・・・。

新規ブックの標準モジュールに

'==================================================================
Sub main()
  Dim a As Object
  Dim b As Object
  MsgBox "まず" & vbCrLf & _
      "Application Is Application = " & _
      (Application Is Application)
  
  MsgBox "次に" & vbCrLf & _
      "ThisWorkbook Is ThisWorkbook = " & _
      (ThisWorkbook Is ThisWorkbook)

  MsgBox "さらに" & vbCrLf & _
      "ActiveSheet Is ActiveSheet = " & _
      (ActiveSheet Is ActiveSheet)
  MsgBox "と、ここまではコードと照らし合わせても" & vbCrLf & _
      "なんてことはないのですが・・・"
'
'
'
  MsgBox "ここからが問題現象" & vbCrLf & vbCrLf & _
      "Range(""a1"") Is Range(""a1"") = " & _
      (Range("a1") Is Range("a1")) & vbCrLf & "あれ?"
  Set a = Range("a1")
  Set b = Range("a1")
  MsgBox "これも" & vbCrLf & _
      "Dim a As Object,b As Object" & vbCrLf & _
      "Set a = Range(""a1"")" & vbCrLf & _
      "Set b = Range(""a1"")" & vbCrLf & _
      "a Is b = " & (a Is b) & vbCrLf & _
      "あらら・・"
  With ActiveSheet
    On Error Resume Next
    .Shapes("Rect1").Delete
    On Error GoTo 0
    With .Shapes.AddShape(msoShapeRectangle, [b10].Left, [b10].Top, _
              [b10].Width, [b10].Height)
     .Name = "Rect1"
     .Select
     End With
    DoEvents
    MsgBox "With .Shapes.AddShape(msoShapeRectangle, [b10].Left, [b10].Top, _" & vbCrLf & _
       "           [b10].Width, [b10].Height)" & vbCrLf & _
       "  .Name = ""Rect1""" & vbCrLf & _
       "  .Select" & vbCrLf & _
       "  End With" & vbCrLf & vbCrLf & _
       "で、Rect1という四角形を作成しましたが・・・"
    MsgBox "Shapes(""Rect1"") Is Shapes(""Rect1"") = " & _
       (.Shapes("Rect1") Is .Shapes("Rect1")) & vbCrLf & _
       "これもFalse"
    End With
End Sub

上記のコードを実行してみて下さい。

Application Is Application



ThisWorkbook Is ThisWorkbook

は、予想通りTrueとなるのに、

Range(“A1”) Is Range(“A1”)



Shapes(“Rect1”) Is Shapes(“Rect1”)

は、Falseになってしまいます。

不思議ではないですか?
907 hits

【164】ちょっと気になる現象2 Is 演算子 ichinose 06/12/23(土) 22:25 Excel[未読]
【165】Re:ちょっと気になる現象2 Is 演算子 ichinose 06/12/23(土) 22:30 Excel[未読]

  新規投稿 ┃ツリー表示 ┃一覧表示 ┃トピック表示 ┃検索 ┃設定 ┃ホーム  
126 / 277 ←次へ | 前へ→
ページ:  ┃  記事番号:   
0
(SS)C-BOARD v3.8 is Free