前提・実現したいこと
VBAでExcelファイルを開き、ファイルの指定箇所を抜き出し、CSVで保存するツールを作成しています。
VBEを開いた状態で実行ボタンを押すと、保存まで問題なく処理が終わりますが。
VBEを閉じた状態(通常)で実行ボタンを押すと、ファイル読み込み後に失敗してしまいます。
原因が分かりません、ご教授願います。
該当のソースコード
'========================= ' 発注書ファイルを読み込む '========================= Public Sub Load_File() Dim ret As Variant Dim objFSO As FileSystemObject Set objFSO = New FileSystemObject ret = Application.GetOpenFilename("エクセルファイル(*.xls*),*.xls*", , "発注書ファイルを選択", , False) 'ダイアログ起動 If ret = False Then Exit Sub End If sh_Main.Unprotect ' 現在のシートの保護を解除する sh_Main.Range("A6").Value = ret ' 取込みファイル名 sh_Main.Range("A8").Value = objFSO.GetParentFolderName(ret) ' 出力フォルダ設定 sh_Main.Protect ' 現在のシートを保護する '# オブジェクト名で発注書のシートを取得する。 Dim readBook As Workbook ' 読み込みブック Dim readSheet As Worksheet ' 読込シート Dim tmp_readSheet As Worksheet Application.DisplayAlerts = False Set readBook = Workbooks.Open(ret) ' 発注書ファイルを開く Application.DisplayAlerts = True 'If InStr(settingSheet.CodeName, CST_SETTING_SHEET_NAME) > 0 Then For Each readSheet In readBook.Worksheets 'MsgBox "OK" If InStr(readSheet.CodeName, "Sheet1") > 0 Then 'ここでfalseになっている。。 'MsgBox "OK" Set tmp_readSheet = readSheet Call Run(tmp_readSheet) End If Next readSheet ' 入力ファイルをCLOSE readBook.Close False ' 発注書ファイルを閉じる Set readSheet = Nothing Set readBook = Nothing Set objFSO = Nothing MsgBox "処理が完了しました。" End Sub
試したこと
読み込みファイルが開けたのは確認済みです。
ファイルのシートのオブジェクト名は、Sheet1になっていることは確認済みです。
If InStr(readSheet.CodeName, "Sheet1") > 0 Then で何故かFalseになります。。
補足情報(FW/ツールのバージョンなど)
Excel バージョン 2101
Microsoft Visual Basic for Applications 7.1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/25 01:53
2021/03/25 02:00
2021/03/25 02:08