- ベストアンサー
Excel VBA msoAutomationSecurityForceDisableについて
マクロを無効にしてファイルを読み込むコードを過去レスを見て作成しましたが、msoAutomationSecurityForceDisableを定数でなく、変数としか認識しないため、うまく機能しません。 下記コードのどこを修正すべきか、ご教示願います。 Sub read() Dim DirN As String Dim Fname As String With ThisWorkbook.Worksheets("手当") .Activate .Range(.Cells(7, 1), .Cells(10000, 40)).ClearContents End With Set NxL = CreateObject("Excel.application") NxL.Visible = True NxL.AutomationSecurity = msoAutomationSecurityForceDisable NxL.DisplayAlerts = False DirN = Worksheets("手当").Range("C2").Value & "\" Fname = Dir(DirN & "*.xls") Set Mybook = NxL.Workbooks.Open(DirN & Fname) Call read1(Mybook) Do While Fname <> "" Set NxL = CreateObject("Excel.application") NxL.Visible = True NxL.AutomationSecurity = msoAutomationSecurityForceDisable NxL.DisplayAlerts = False '追加してファイル名を検索する場合はDir関数の引数はなくす。 Fname = Dir() Set Mybook = NxL.Workbooks.Open(DirN & Fname) Call read1(Mybook) Loop End Sub
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (3)
- KenKen_SP
- ベストアンサー率62% (785/1258)
- kobouzu_su
- ベストアンサー率45% (24/53)
- zap35
- ベストアンサー率44% (1383/3079)
お礼
ご教示ありがとうございました。 機能するようになりました。 下記の部分のご指摘も、ご指摘のとおり修正したところエラーにならなくなりました。 なお、read1プロシージャーに下記のとおりブックを閉じる処理をしておりました。 Mybook.Close NxL.Quit Set NxL = Nothing <ご指摘内容> また、Fname = Dir() の位置は、このままだと Dir の戻り値が空と なったときにエラーが発生しますので.... 下記のコードをご参考ください。 DirN = Worksheets("手当").Range("C2").Value & "\" Fname = Dir(DirN & "*.xls") ' Fname が空なら Do ~ Loop の間にあるコードは実行されません Do While Fname <> "" Set Mybook = NxL.Workbooks.Open(DirN & Fname) Call read1(Mybook) ' read1 プロシージャ側にブックを閉じる処理が ’あるのかな? Fname = Dir() Loop