回答編集履歴

2

加筆修正

2015/12/28 12:56

投稿

退会済みユーザー
test CHANGED
@@ -1 +1,37 @@
1
+ 【訂正】
2
+
3
+ Excel 2003でこんなコードを試したところ、通りました。
4
+
5
+ ```vba
6
+
7
+ Private Sub CommandButton1_Click()
8
+
9
+ Dim r As Range
10
+
11
+
12
+
1
- Range型の指定は合っているのですが、MyAdvancedFilterの宣言にて`ByRef DataRange As Range`って書かないと通らないんだと思います。
13
+ Set r = ActiveSheet.Range("A1")
14
+
15
+ Call s(r)
16
+
17
+ End Sub
18
+
19
+
20
+
21
+ Public Sub s(r As Range)
22
+
23
+ r.Interior.Pattern = 2
24
+
25
+ End Sub
26
+
27
+ ```
28
+
29
+ ![A1が塗られた](ceeccae29781eb8d36e86f2ecfcca52c.png)
30
+
31
+
32
+
33
+ Range型じゃない別のオブジェクトを渡していたりしていませんか?
34
+
35
+ 最も単純化させたコードを起こし直して、比較してみてはいかがでしょうか。
36
+
37
+

1

加筆修正

2015/12/28 12:56

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- Range型の指定は合っているのですが、`ByRef DataRange As Range`って書かないと通らないんだと思います。
1
+ Range型の指定は合っているのですが、MyAdvancedFilterの宣言にて`ByRef DataRange As Range`って書かないと通らないんだと思います。