スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Windows XP Excel 2007で正常に動作していたマクロがWindows 7では途中で止まる

Windows XP環境のExcel 2007で正常に動作していたマクロがWindows 7環境では途中で停止する






社内ツールで同一フォルダ内にある50件程度のExcelブックを読み込み集計するマクロを作成した。
Windows XP環境のExcel 2007では正常に動作するマクロが

Windows 7環境のExcel 2007で実行するとこのマクロの途中で止まってしまう。

これが、発生したのが、社内向けデモの最中で、
ちょっとハズカシイ思いをした。

マイクロソフトのサイトに解決策(実際は回避策)があり、マクロを修正しWindows 7環境でも正常に動作するようになった。

詳細は
http://support.microsoft.com/kb/2484082/ja

ここには回避方法が4つ書かれており、

方法 1 : Microsoft Office IME 2010 の代わりに、Windows OS 標準の Microsoft IME を使用する

方法 2 : DoEvents 関数をマクロ内に挿入する

方法 3 : マクロの連続処理を実行中はウィンドウを非表示する

方法 4 : マクロ開始後に [メモ帳] や [Windows エクスプローラー] など別ウィンドウにフォーカスを移動する

社内ツールなのでツール利用者の環境を制限する回避策(上記方法 1、3、4)は現実的でない。
そこで方法 2 を選択。

10個程度Excelブックを処理したら
DoEvents
を実行するよう修正した。

これで、回避できた。

vbaの記述例はこんな感じで

Dim 処理回数 As Long
・・・
処理回数 = 0
・・・
For Each パス名 In パス名リスト '数十件のファイルを読み込む処理
○○処理
・・・
'DoEvents呼び出し判定
処理回数 = 処理回数 + 1
If (処理回数 Mod 10) = 0 Then '10回毎にDoEventsを呼び出す
DoEvents
End If

Next


この問題、Windows 7環境のExcel 2007で発生したが
上記マイクロソフトサポートの情報は
「Excel 2010 または Word 2010」となっており
google先生に
「Windows 7 excel 2007 マクロ 停止」
と聞いても上記のサイトは出てこない。
困ったものである。


OSもExcelも Microsoft Office IME 2010も全部Microsoftの製品だろうに。

いや、Microsoft以外の製品が係わっていたら、その会社に責任を押し付けて
回避策も出さなかったかも知れない。



スポンサーサイト

コメントの投稿

非公開コメント

アクセスカウンタ
オンラインカウンター
現在の閲覧者数:
プロフィール

たっきー

Author:たっきー
たっきーのブログへようこそ!
パソコン・スマホを
より使いやすくするため奮闘中!
改造したり、root取ったり
色々やってます。

カテゴリ
最新記事
最新コメント
月別アーカイブ
最新トラックバック
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。