Excel VBA 質問スレッド №2054 (解決済)

#REF!や、#VALUE!を含むエクセルシートの、マクロ処理停止を防止したく

投稿者 : ハム     投稿日時 : 2024/11/28(Thu) 16:27:06     OS : Windows 10     EXCEL : 未指定
ハムと申します。
すみません。お助け下さい。

マクロ実行時の停止を防ぎたく。 対象は、#REF!や、#VALUE!など、エラー含むエクセルシート(100ファイル、計1GBほど)になります。
※エクセルは他部署の持ち物故、#REF!や、#VALUE!を含まない状態にすることは困難です。

【エラーの根本原因】他部署のエクセル情報を配列に取り込みする際、#REF!や、#VALUE!も含め取り込むするため、マクロが実行停止してしまいます。
          (Excelの情報を、まとめシートに転記・統合するマクロを実行)


知見豊富な皆様方に、是非とも対処法をお教え頂きたく。
何卒、宜しくお願い申し上げます。




【現在マクロに書いている対策コード】
' 現在のAutomationSecurityの設定を保存
Dim prevAutomationSecurity As MsoAutomationSecurity
prevAutomationSecurity = Application.AutomationSecurity
' マクロを無効化してワークブックを開くよう設定
Application.AutomationSecurity = msoAutomationSecurityForceDisable

' データ取得時にエラーで無いか判別
If Not IsError(dataArray(i, j)) Then
' データ取得・転記時にエラーが起きた場合は処理を飛ばす  
  On Error Resume Next

※#REF!などエラーを空白に書き換えるコードは、実行時間が長すぎて断念しました。

スポンサーリンク
[返信 1] Re : #REF!や、#VALUE!を含むエクセルシートの、マクロ処理停止を防止したく
投稿者 : とおりすがり     投稿日時 : 2024/11/29(Fri) 07:31:53
コードが部分的すぎてよくわかりません
このコードで何が問題になっているのか想像できません
肝心の部分を見せないで助言を求めるは無理筋でしょう

転記だけならエラーがあってもそのまま転記して、統合後にまとめてエラーを削除すればいいだけです

可能であれば、PowerQuery(データの取得と変換)を使うことをお勧めします。
エラー値の置換という機能があります

[返信 2] Re : #REF!や、#VALUE!を含むエクセルシートの、マクロ処理停止を防止したく
投稿者 : ハム     投稿日時 : 2024/12/03(Tue) 11:06:28
とおりすがり様


ご助言頂きまして、誠にありがとうございます。
本件、原因を特定し、解決しました。

※原因は#REFなどのエラーでなく、リンクされた図を含むシートの、配列処理でマクロの挙動が不安定化した。


失礼致します。

当掲示板について
  • Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
  • 記事内ではHTMLのタグは使用できません。
  • 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
  • Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
  • Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
お 名 前  :
内  容   :

ステータス  :

認証コード  : キャプチャ画像 




( 処理日時 : 2024-12-07 22:45:55 )
タイトルとURLをコピーしました