teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

Active依存チェック用参考コードを追加

2020/05/02 03:31

投稿

imihito
imihito

スコア2166

answer CHANGED
@@ -1,3 +1,74 @@
1
+ 呼び出している処理側の問題のようなので、参考としてActive依存をチェックする方法を載せておきます。
2
+
3
+ [グローバルなRangeプロパティへの参照を機械的に検知するアイディア - Qiita](https://qiita.com/nukie_53/items/4e9226ac8f747e772afd)
4
+ [imihito_Sandbox/DisableExcelGlobal.bas at master · imihito/imihito_Sandbox](https://github.com/imihito/imihito_Sandbox/blob/master/Excel/DisableExcelGlobal.bas)
5
+
6
+ 今回の場合であれば以下のようにすればチェックできるでしょう
7
+
8
+ 1. `Application.Run`で呼び出しているブックに標準モジュールを追加
9
+ 2. 1. で追加した標準モジュールに以下のコードを貼り付ける
10
+ 3. メニューバー「デバッグ」の中の「~のコンパイル」を実行(シュートカットキー Alt→D→L)
11
+ 3. Activeに依存した処理の箇所でコンパイルエラーが発生するため、適切に修正
12
+ 4. 3.、4.をエラーが無くなるまで繰り返す
13
+ 5. 1.で追加した標準モジュールを削除
14
+
15
+ ```vba
16
+ 'Excelのグローバルなメンバーを無効化するモジュール
17
+ 'https://qiita.com/nukie_53/items/4e9226ac8f747e772afd
18
+ 'https://github.com/imihito/imihito_Sandbox/blob/master/Excel/DisableExcelGlobal.bas
19
+
20
+ 'https://teratail.com/questions/257856
21
+
22
+ Option Private Module
23
+
24
+ '親を明示しないと危ないもの、使用頻度が低そうなメンバー(主観)の定義を上書きし無効化する。
25
+ '上位階層のプロパティや関数的なメソッドのみが残る。
26
+
27
+ 'Method override
28
+ Public Sub Calculate(a): End Sub
29
+ Public Sub DDEExecute(): End Sub
30
+ Public Sub DDEInitiate(): End Sub
31
+ Public Sub DDEPoke(): End Sub
32
+ Public Sub DDERequest(): End Sub
33
+ Public Sub DDETerminate(): End Sub
34
+
35
+ 'Property override
36
+ Public Sub ActiveCell(): End Sub
37
+ Public Sub ActiveChart(): End Sub
38
+ Public Sub ActivePrinter(): End Sub
39
+ Public Sub ActiveSheet(): End Sub
40
+ Public Sub ActiveWindow(): End Sub
41
+ Public Sub ActiveWorkbook(): End Sub
42
+ Public Sub AddIns(): End Sub
43
+ Public Sub Cells(): End Sub
44
+ Public Sub Charts(): End Sub
45
+ Public Sub Columns(): End Sub
46
+ Public Sub CommandBars(): End Sub
47
+ Public Sub Creator(): End Sub
48
+ Public Sub DDEAppReturnCode(): End Sub
49
+ Public Sub Excel4IntlMacroSheets(): End Sub
50
+ Public Sub Excel4MacroSheets(): End Sub
51
+ Public Sub Names(): End Sub
52
+ Public Sub Parent(): End Sub
53
+ Public Sub Range(): End Sub
54
+ Public Sub Rows(): End Sub
55
+ Public Sub Selection(): End Sub
56
+ Public Sub Sheets(): End Sub
57
+ Public Sub Worksheets(): End Sub
58
+
59
+ 'Hidden Property
60
+ Public Sub ActiveDialog(): End Sub
61
+ Public Sub ActiveMenuBar(): End Sub
62
+ Public Sub Assistant(): End Sub
63
+ Public Sub DialogSheets(): End Sub
64
+ Public Sub MenuBars(): End Sub
65
+ Public Sub Modules(): End Sub
66
+ Public Sub ShortcutMenus(): End Sub
67
+ Public Sub Toolbars(): End Sub
68
+ ```
69
+
70
+ ---
71
+
1
72
  ymakoto さんの回答と近い話ですが、`fileName`の中身がおかしいのではないでしょうか?
2
73
 
3
74
  また、開いたブックから名前を取得できるため`fileName`自体不要でしょう。