アプリ版:「スタンプのみでお礼する」機能のリリースについて

はじめまして。

さっそくですが質問させていただきます。
VB(記述はVBA)からExcel(非表示)のシートに、
行を挿入する処理についてです。

以下のような単純な処理ですが、
「Debug.Print」では通常18秒程度と表示されます。
しかし(1)の所をFalse→Trueにすると、1秒もかかりません。

質問:
1.非表示で行の挿入を高速にする方法はありますか?
2.なぜ表示時の方が速いんですか?

どちらかわかる方だけでも良いのでお願いします。

OS    :windows2000
Language :VB6.0(SP6)
Excel.Ver :2000

A 回答 (2件)

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
    • good
    • 0

>以下のような単純な処理


が、見当たりません。

回答がないと補足が追加できませんので、これの補足に書いてみてください。
この回答にポイントは不要です。

この回答への補足

誰か来るの待つのも悪いので、IDを作ってしまいました・・。恥

補足日時:2005/05/27 15:05
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています