先日、私のところに電話が。
「Excelが開くのも動きも遅くて調子悪いんやけど、どないしたらいい?」
と。動いてないことはないが、電話での感じはとてもストレスを感じてそう。。
どないしたらいい?ってなんやねんおもたけど。
忙しい部署やし困ってんねやろな。
[ファイルはどこにありますか。]
(サーバーです。)
[そのファイルはローカルに保存しても良いものですか]
(大丈夫です。)
[コピーしてみてください]
(できました)
[コピーは遅かったですか]
(普通ですね)
[そうですか。そのファイルは私も触っていいですか?]
(大丈夫ですよ)
[少し時間ください。]
ってな感じで進みまして。
これは話聞くより触ったほうがはやそうなので直接見てみる。
まぁサーバーにあるファイルを見てみますか。
え!?15MB?でかすぎやん??
唯単にでかすぎで重たいんじゃない??
考えても仕方ないので開きます。確かに遅い。
んー。なんでしょう。
シートは1つ、セルは多く見ても8000個ぐらいしか入力していない。
頭にピコーン!!ときて
Ctrl+Endを押してみる。入力されていない行列まで指定されるので
ごみデータでも残っているんでしょう。
エイ!ヤーで削除。
1.9MBまで落ちました!!
それでもでかいし、まだ重たい。。。
アドインも特にないし。リンクも貼ってないし。
なにした?見えへん障害物置いたな。
見えないデータか?セルは消したぞ。ってことは
図形か?テキストボックスか??正解きたやろこれ。ってことで
F5→セル選択→オブジェクト→OK
で
オブジェクトを探します。
。
。。
。。。
。。。。
。。。。。。。。。。。。。
ん?何もない??
いやオブジェクト選択が終わってない。
数分待つと。
デデーーーーーーーーン!!
「未入力のテキストボックス108853個」
どんな数やねん。なんでこんなんなるん?
そして自分で操作して削除するのに、重たすぎて動かせない。
消せない。
あかん時間の無駄。ほかの作業もしたい。
マクロだ。
コチョコチョっと。
これ↓実行して放置
Sub テキストボックス削除()
Application.ScreenUpdating = False
Dim i As Long
With ActiveSheet.Shapes
For i = .Count To 1 Step -1
If .Item(i).Type = msoTextBox Then
.Item(i).Delete
End If
Next i
End With
Application.ScreenUpdating = True
MsgBox ("終了しました。")
End Sub
マクロ実行完了まで約30分。
軽くなりましたよー。どうぞ使ってくださいな。
ってことで一件落着。
「ありがとうございます。どうやったんですか?」
と聞かれましたが。
説明めんどくさいし、同じ事象が起きることはたぶん当分ないので
「ごみデータが大量にありました。時々エクセルでなるんすよ。ははは。」
で終わり。
原因がわからんけど。ま、解決したから良いでしょう。
値だけコピーして、新しいファイル作った方が早かったかな??
また暇なときやってみよ。
オブジェクト10万個も貼る作業が無理かな?