回答編集履歴

1

追記

2017/08/16 08:17

投稿

退会済みユーザー
test CHANGED
@@ -27,3 +27,115 @@
27
27
  「ByVal RHS As String」→「ByVal RHS As Worksheet」
28
28
 
29
29
  ではないでしょうか?
30
+
31
+
32
+
33
+ ■追記
34
+
35
+ StringをWorksheetに変更
36
+
37
+ LetをSetに変更
38
+
39
+
40
+
41
+ absClass
42
+
43
+ ```
44
+
45
+ Option Explicit
46
+
47
+
48
+
49
+ 'プロパティ
50
+
51
+ Public WS As Worksheet
52
+
53
+
54
+
55
+ Public Sub msgName(vdata As Worksheet)
56
+
57
+ End Sub
58
+
59
+ ```
60
+
61
+ centerToMonth
62
+
63
+ ```
64
+
65
+ Option Explicit
66
+
67
+ '---コンパイルエラー:
68
+
69
+ '---オブジェクトモジュールにはインターフェース'WS'用の'absClass'が必要です。
70
+
71
+ Implements absClass
72
+
73
+
74
+
75
+ 'プロパティ
76
+
77
+ Private WS As Worksheet
78
+
79
+
80
+
81
+ Private Property Get absClass_WS() As Worksheet
82
+
83
+ absClass_WS = WS
84
+
85
+ End Property
86
+
87
+ Private Property Set absClass_WS(ByVal RHS As Worksheet)
88
+
89
+ WS = RHS
90
+
91
+ End Property
92
+
93
+
94
+
95
+ Private Sub absClass_msgName(vdata As Worksheet)
96
+
97
+ Debug.Print vdata.Name
98
+
99
+ End Sub
100
+
101
+ ```
102
+
103
+ Modules1
104
+
105
+ ```
106
+
107
+ Sub test()
108
+
109
+ Dim objabs As absClass
110
+
111
+ Dim objcon As centerToMonth
112
+
113
+
114
+
115
+ Set objcon = New centerToMonth
116
+
117
+ Set objabs = objcon
118
+
119
+
120
+
121
+ ''' このあたりはエラーになるのでコメントアウト
122
+
123
+ With objabs
124
+
125
+ 'MsgBox .WS
126
+
127
+
128
+
129
+ 'MsgBox ActiveWorkbook.Worksheets("営業所別売上修正一覧表(月間)").name
130
+
131
+ '.WS = ActiveWorkbook.Worksheets("営業所別売上修正一覧表(月間)")
132
+
133
+ '.msgName .WS
134
+
135
+ End With
136
+
137
+ End Sub
138
+
139
+ ```
140
+
141
+