- 01: 名前:かど投稿日:2002/05/21(火) 11:34
- かどと申します。
Win98系とVisio2000の組み合わせで困った問題が起きています。
現象が発生する手順は、
1. Win98上で Visio2000 を起動し、空白の図面を開く
2. ページ上に四角形を一つ置く
3. VBA に以下のコードを記述する。
----------------
Public Sub Test()
Dim pShape as Shape
dim i as Integer
set pShape = ActivePage.Shapes(1)
Call prv_Copy(pShape)
for i = 1 to 30
ThisDocument.Pages.Add
Call prv_Copy(pShape)
Next i
End Sub
Private Sub prv_Copy(vShape as Shape)
Dim i as Integer
dim pShape as Shape
For i = 1 to 10
vShape.Copy
ActivePage.Paste
Set pShape = ActiveWindow.Selection.Item(1)
pShape.Text = "a" ' Text セット
Next i
End Sub
----------------
4. TestメソッドをVisio上で実行
そうしますと、メモリリソースとGDIリソースを徐々に食いつぶしてしまい、
そのうちにリソース不足となりハングします。
上記プログラムは、ページを追加する毎に四角形シェイプを複写し、
"a" という文字をセットするプログラムです。
これが、
・Visio2002では発生しない
・WinNT,Win2000とVisio2000の組み合わせでは発生しない
・Text をセットしないと発生しない
・Win98とMe+Visio2000 の組合わせのみ発生(Win95は未確認)
となります。
大変に困っていましてMSのサポート情報にも見当たりませんでした。
どなたかご教授お願いします。
- 02: 名前:名無しさん投稿日:2002/05/21(火) 20:22
- DoEventsを入れてみる。
最終的な処理が終わるまで描画と再計算をSTOPする。
クリップボードは毎回クリアする。
といったところでしょうか・・・
でも、根本的にはNTカーネルにしなきゃダメなんじゃ(^_^;
- 03: 名前:かど投稿日:2002/05/23(木) 09:36
- こんにちは。かどです。
お返事有難うございます。
>DoEventsを入れてみる。
ガンガン減りつづけました。
>最終的な処理が終わるまで描画と再計算をSTOPする。
ガンガン減りつづけました。
>クリップボードは毎回クリアする。
ガンガン減りつづけました。
結局、別方法で対処しました。
お騒がせしました。
■トップに戻る リロード 単独スレ表示
|