質問編集履歴
1
タイトル、記事を内容に沿って修正。追記項目を追加。
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
VBAでUserform起動時に落ちる
|
1
|
+
VBAでUserform起動時に落ちる、IF判定が正しくできない時がある
|
test
CHANGED
@@ -28,10 +28,10 @@
|
|
28
28
|
・Userformを起動する際にNewして起動するように変更 ←変わらず落ちる
|
29
29
|
https://teratail.com/questions/70370
|
30
30
|
|
31
|
-
・新たなBookにUserformをインポートして作り直した。 ←
|
31
|
+
・新たなBookにUserformをインポートして作り直した。 ←変わらず落ちる
|
32
32
|
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14228025529
|
33
33
|
|
34
|
-
現在新しい、Bookを作ってエクスポートとインポートを繰り返し、作り直してテストしております。少し軽くなったような気がしていますが、これでもダメだった時はどうしていいのか?作り直すしかないのか不安です。
|
34
|
+
現在新しい、Bookを作ってエクスポートとインポートを繰り返し、作り直してテストしております。少し軽くなったような気がしていますが、これでもダメだった時はどうしていいのか?.Net等で作り直すしかないのか不安です。
|
35
35
|
|
36
36
|
このような状態になった時は何が起きているのでしょうか?
|
37
37
|
このような事にならないためにもVBAはメモリを意識して書かないといけないのか?
|
@@ -43,4 +43,23 @@
|
|
43
43
|
Excel2016
|
44
44
|
メモリ4Gと8Gの両方のPCが存在するが、どちらかで落ちる現象を確認したら、どちらのPCでも同じ操作をすると同じ落ち方をします。
|
45
45
|
|
46
|
+
### 追記
|
47
|
+
落ちる原因と対策
|
48
|
+
1、シートの保護
|
49
|
+
シートに保護をかけているのですが
|
50
|
+
```
|
51
|
+
'シートの保護を有効にする(VBAのみシート内操作が可能)
|
52
|
+
ThisWorkbook.Worksheets("Sheet1").Protect UserInterfaceOnly:=True
|
53
|
+
ThisWorkbook.Worksheets("Sheet1").Cells(2, 1).Value = "AAA"
|
54
|
+
```
|
55
|
+
値を入れようとすると落ちる時がある。(ステップ実行で確認)
|
56
|
+
値を入れる前に保護を全て一度外し、最後にまたかけるという処理に変更
|
46
57
|
|
58
|
+
2、モジュール内に関数の書き方を間違えていて使えないコードがある(使っていない関数)
|
59
|
+
朝一PC起動後に開いたら
|
60
|
+
「DLLが正しく読み込めませんでした。」
|
61
|
+
とみたことのないエラーメッセージが出現。(関数を読み込む行)
|
62
|
+
しかしデバッグで進めるので、ステップ実行するとこの位置で確実に落ちる。
|
63
|
+
このモジュールを読み込む際に何かあるのか?と思い、普段やらないデバッグのVBAProjectのコンパイルを実行すると、使っていない関数があり、IsDateの書き方を間違えていて「引数が不正です」と表示される箇所がありました。これを一時的に読み込んでしまっているのか?と思いコメントアウトすると、落ちる行が落ちなくなりました。
|
64
|
+
|
65
|
+
|