目安箱 IV

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

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

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

【247】ちょっと気になる現象5 シートモジュールの変数
Excel  ichinose  - 09/11/4(水) 7:54 -

引用なし
パスワード
   新規ブック(Sheet1というシートがある)にて、

Sheet1のモジュールに

'============================================================
Option Explicit
Public 変数 As String

'とこれだけ


標準モジュール

'==============================================================
Option Explicit
'==============================================================
Sub test1()
  Worksheets("sheet1").変数 = "aaa"
  MsgBox Worksheets("sheet1").変数
End Sub
'==============================================================
Sub test2()
  Dim ws As Worksheet
  Set ws = Worksheets("sheet1")
  'ws.変数 = "bbb"
  'MsgBox ws.変数
End Sub
'==============================================================
Sub test3()
  Dim ws As Object
  Set ws = Worksheets("sheet1")
  ws.変数 = "ccc"
  MsgBox ws.変数
End Sub


test1のように記述すると、正常に作動し、Sheet1のオブジェクトに追加した
変数 と言う名のプロパティの参照が出来ます。

ところが、Worksheets("sheet1") と何回も記述するのが面倒なので、
オブジェクト変数を介して、このプロパティを参照しようとして、

test2のように記述して実行すると(コメント化を外して実行)、

コンパイルエラー
メソッドまたはデータメンバが見つかりません。

というエラーメッセージが

ws.変数 = "bbb"

の箇所で表示されます。

対処方法は、test3のように変数の型をObjectに代えて実行すれば
(尚、test2のコメント化を外した箇所は、再度コメント化してから実行する)

正常に作動しますが・・・。

変数の型は、なるべく詳細に宣言するという記述を目にしますが、
それとは、矛盾する現象です。

不思議ではないですか?

875 hits

【247】ちょっと気になる現象5 シートモジュールの変数 ichinose 09/11/4(水) 7:54 Excel[未読]
【248】Re:ちょっと気になる現象5 シートモジュール... ichinose 09/11/4(水) 8:18 Excel[未読]

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