DOBON.NETプログラミング道掲示板
(現在 過去ログ2 を表示中)

[ 最新記事及び返信フォームをトピックトップへ ]

■33736 / inTopicNo.1)  Excel オートメーションエラーとなってしまう
  
□投稿者/ cb400s2000 一般人(2回)-(2017/12/03(Sun) 20:21:59)
  • アイコン環境/言語:[VB2010] 
    分類:[.NET] 

    VB2010+SQLServerExpressを使用しています。

    System.Runtime.InteropServices.COMException(0x8001010A)
    メッセージフィルターはアプリケーションがビジーであることを示して
    います。

    というエラーの原因がわからず困っています。

    処理の内容としては、
    ・backgroundworkerを利用してExcelで作成した勤務表データを読み込み
    ・いくつかの変換処理をしたうえで、SQLServerに取り込む
    ・処理の終わった行の特定のセルに「○」をつける
    ということをしております。

    1ヶ月ぐらい前までは、特にエラーも出ず実行できていたのですが、
    数日前に再度テストを施行したところ、上記のエラーが出るように
    なりました。

    デバッグ実行でエラー箇所を探そうと思ったのですが、エラーのタイミングが
    毎回異なり、原因が絞りきれません。

    https://msdn.microsoft.com/ja-jp/library/8sesy69e.aspx

    上記のアドレスの内容をプログラムのどこかに組み込めばよさそうという
    ところまでは調べたのですが、どこに組み込むべきかがわかりません。

    以下、処理の流れを提示します。
    (プログラム全体だと未熟な記述なのでかなりの長さになってしまいますので)

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
    Handles btnImportByoutou.Click

    '取込予定のファイルが開いているかどうかをチェック
    Dim FileCheck As New MyLibrary.clsStatic

    FileName = Me.txtFilePath.Text

    If FileCheck.IsOpenedFileByName(FileName) = True Then
    MessageBox.Show("指定したファイルを閉じてから" & vbCr _
    & "再度実行してください", "確認" _
    , MessageBoxButtons.OK)

    Exit Sub
    End If

    xl = New Excel.Application

    xlBooks = xl.Workbooks

    xlBook = xlBooks.Open(FileName, [ReadOnly]:=False)
    xlSheets = xlBook.Worksheets
    xlSheet = CType(xlSheets("取り込みシート"), Excel.Worksheet)

    Dim RowCount As Integer = _
    xlSheet.Cells(xlSheet.Rows.Count, 1).end(Excel.XlDirection.xlUp).row
    Dim StartRow As Integer = 4

    'ImportKinmuhyou()
    '処理行数は開始行を含むため、「+1」する
    Dim pgb As New MyLibrary.frmProgressbar2("勤務表の取り込み", _
    New DoWorkEventHandler(AddressOf DoWork_ImportKinmuhyou), RowCount - StartRow + 1)

    'エラーログを初期化
    ErrorLog = ""

    Dim result As DialogResult = pgb.ShowDialog(Me)

    pgb.DispProgressBarResult(result, pgb)

    'エラーログ書き込み
    Dim FileControl As New MyLibrary.clsFileControl

    FileControl.Write(ErrorLog, My.MySettings.Default.KinmuhyouErrorLog, False)

    pgb.Dispose()

    'エラーログを開く
    System.Diagnostics.Process.Start(My.MySettings.Default.KinmuhyouErrorLog)

    End Sub


    Private Sub DoWork_ImportKinmuhyou(ByVal sender As Object, _
    ByVal e As DoWorkEventArgs)

    Dim bgw As BackgroundWorker = DirectCast(sender, BackgroundWorker)

    ’以下にSQLServerへの取り込み処理


    End Sub

    何をどこまで書けばよいかわからないので他に必要が情報がありましたら
    ご教授いただけますでしょうか

    どうか、よろしく御願い申し上げます。
引用返信 削除キー/
■33751 / inTopicNo.2)  Re[1]: Excel オートメーションエラーとなってしまう
□投稿者/ cb400s2000 一般人(3回)-(2017/12/07(Thu) 07:05:33)
  • アイコン自己レスです。

    質問の内容がわかりにくいので、いったん閉じさせて頂きます。
    (削除キーの設定を忘れたため)

    また、内容を整理して質問をさせてください。


引用返信 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/


- Child Tree -