vb.netでgetobjectでExcelファイルを読込み保存するとExcelファイルが破損します。

末長邦明 0 評価のポイント
2024-12-11T04:04:01.0666667+00:00

お世話になっております。 vb.netでgetobjectでExcelファイルを読込み保存するとExcelファイルが破損します。 下記ソースになります。何か問題がありますでしょうか?

Imports System.Text 
Imports Microsoft.Office.Interop.Excel 
Imports Spire.Xls 
Imports Microsoft.Office.Interop 
Imports Microsoft.Office.Core

Private Sub LIST_Clear()  
Dim wb As Excel.Workbook  
Dim sh As Excel.Worksheet  
Dim LastRow As Integer  
Try
	wb = GetObject(ListFile)  
Catch ex As Exception  
	MessageBox.Show(ex.Message)  
End Try  
sh = wb.Sheets(“Sheet1”) 
LastRow = sh.Cells(sh.Rows.Count, 1).end(Excel.XlDirection.xlUp).row  
Dim tl = sh.Cells(2, 1)  
Dim br = sh.Cells(LastRow + 1, 7)  
Dim wrange = sh.Range(tl, br)  
wrange.ClearContents()  
wb.Save() ←ここでExcelブックが壊れる(シートが参照できなくなります)  
wb.Close()  
End Sub

VB
VB
.NET Framework 上に実装される、Microsoft によって開発されたオブジェクト指向プログラミング言語。 旧称 Visual Basic .NET。
11 件の質問
{count} 件の投票

1 件の回答

並べ替え方法: 最も役に立つ
  1. 末長邦明 0 評価のポイント
    2024-12-11T23:42:32.74+00:00

    Excelファイルが開かれているときのみ、getobjectにして

    開かれていないときは、workbooks.openに変更したところ、正常に動作しております。

    ありがとうございました。

    If IO.File.Exists(ListFile) = True Then
    	Try
    		System.IO.File.Move(ListFile, ListFile)
    	Catch ex As Exception
    		'移動できなかったら起動していると判定
    		GoTo ExcelOpen
    	End Try
    End If
    ''ファイルオープン
    wb = Appxl.Workbooks.Open(ListFile)
    GoTo ExcelOpenExit
    ExcelOpen:
    Try
    	wb = GetObject(NyukoCSVListFile)
    Catch ex As Exception
    
    	MessageBox.Show(ex.Message)
    End Try
    ExcelOpenExit:
    
    
    0 件のコメント コメントはありません

お客様の回答

回答は、質問作成者が [承諾された回答] としてマークできます。これは、ユーザーが回答が作成者の問題を解決したことを知るのに役立ちます。