- ベストアンサー
EXCELマクロのループでマクロが固まる
- EXCELマクロのループを実行すると、マクロが固まってしまう現象が発生しています。
- ループ無しの場合は正常に動作しており、ファイルを一つずつ開いてマクロを起動することで対応しています。
- マクロの内容は、フォントの変更、記号の変換、テキストボックスのグループ化解除などです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> Set myRange = mySheet.UsedRange > For Each cell In myRange > > Cells.Select これはUsedRange分の回数分シートの全てのセルを選択してFontの指定やReplaceを行っていることになると思いますから、UsedRangeが10個あれば10回全てのセルにたいしてその操作行われています。 シートの全てのセルにたいして操作するのではなくcellにしたいのでしたら cell.Select とするか、間違わないように変数にcellを使わないようにした方がいいです。 また、 〇〇.Selectのあとに Selection.△△としなくても 直接 〇〇.△△ にしたほうがいいと思います。 > Set myRange = mySheet.UsedRange > For Each cell In myRange の中に > ActiveSheet.UsedRange.Select > > For Each セル In Selection があると思いますが、同じところを2回ループしているのではないでしょうか。 テキストボックス関連も > Set myRange = mySheet.UsedRange > For Each cell In myRange の外に出さないとUsedRange分同じことを繰り返していると思います。 > myFile = Dir() > Next > Loop は Next myFile = Dir() Loop じゃないでしょうか。
お礼
ありがとうございました。ご指摘箇所を反映してみます!