- 締切済み
Excelのワークシートに行を挿入(高速化)
はじめまして。 さっそくですが質問させていただきます。 VB(記述はVBA)からExcel(非表示)のシートに、 行を挿入する処理についてです。 以下のような単純な処理ですが、 「Debug.Print」では通常18秒程度と表示されます。 しかし(1)の所をFalse→Trueにすると、1秒もかかりません。 質問: 1.非表示で行の挿入を高速にする方法はありますか? 2.なぜ表示時の方が速いんですか? どちらかわかる方だけでも良いのでお願いします。 OS :windows2000 Language :VB6.0(SP6) Excel.Ver :2000
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- deserter2nd
- ベストアンサー率0% (0/0)
800字制限で全部入りきらなかったんです。 すみません。 Private Declare Function timeGetTime Lib "winmm.dll" () As Long Private m_lngTimeStart As Long '開始時間 Private Sub InsertCol() Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet Dim i As Integer 'カウンタ Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Open("ファイル名") Set xlSheet = xlBook.Worksheets("シート名") With xlApp '計算停止 .ScreenUpdating = False 'メッセージ停止 .DisplayAlerts = False 'イベント停止 .EnableEvents = False '非表示 .Visible = False ・・・・(1) End With m_lngTimeStart = timeGetTime With xlSheet For i = 15 To 50 .Range("A" & i & ":BZ" & i).Insert Shift:=xlDown Next End With Debug.Print (CDbl(timeGetTime) - CDbl(m_lngTimeStart)) / 1000 xlBook.SaveAs "ファイル名" xlApp.Quit Set xlSheet = Nothing Set xlBook = Nothing Set xlApp = Nothing End Sub
- quoth
- ベストアンサー率31% (158/506)
>以下のような単純な処理 が、見当たりません。 回答がないと補足が追加できませんので、これの補足に書いてみてください。 この回答にポイントは不要です。
補足
誰か来るの待つのも悪いので、IDを作ってしまいました・・。恥