- ベストアンサー
EXCEL 見えないオブジェクト
EXCELのスクロールが極端に遅くなったので、ここでヒントを探しました。すると、オブジェクトが何らかの原因ではないかということで、オブジェクトを全部選択して消去することで、解決しました。2メガ以上あった容量も50キロ程度になりました。 ところで、どんなオブジェクトが原因だったのかと思って、空のワークシートにそのオブジェクトを貼り付けてみました。 目に見えるオブジェクトを消して保存すると、まだ2メガ以上の容量があり、何か見えないオブジェクトが残っているのかもしれないと思うのです。それを発見する方法はないものでしょうか。また、見えないオブジェクトの正体は?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>リサイズの方法がわかりません。 全オブジェクトを選択した状態で、 [右クリック]-[オートシェイプの書式設定]-[サイズ]から指定します。 >実行方法がわかりませんでした 1. [Alt]+[F11]でVisual Basic Editor起動(以下VBE) 2. VBE画面で[挿入]-[標準モジュール]クリック 3. 2.で開いたウインドウに#2のVBAコードをコピー&ペースト 4. VBEを閉じる 5. [ツール]-[マクロ]-[マクロ]で実行 です。次のような感じで新規シートにオブジェクト一覧を作成します。 ex) Rectangle Rectangle 1 $F$16:$H$21 Picture Picture 2 $G$11:$I$18 全部英数字で出力されますが、種類と名前を見れば、大抵検討はつきます。 例えば、ワードアートなら、名前が「WordArt 1」とでますので。
その他の回答 (4)
- KenKen_SP
- ベストアンサー率62% (785/1258)
>すべてのオブジェクトが選択されていると思われる状態で、色をつけてみましたが... とありますので、オブジェクトのプロパティ操作はできたのですよね?オブジェクトを全選択して、縦と横のサイズを1cmとかにリサイズしてみれば? >でも見えないのです。不思議です。 プロパティで「セルに合わせて移動やサイズの変更をする」になっていると、行や列の削除でオブジェクトが極端に細くなったりしますが、セルに罫線が引かれていたりすると、それに埋もれて見えにくくなりますね。というか、見えない。 >...まだ2メガ以上の容量があり、何か見えないオブジェクトが残っているのかもしれないと思うのです。それを発見する方法... リスト化すれば一発で、残っているオブジェクトの「種類・名前・位置」がわかるのですが。 >アクティブなワークシート全体が選択されてしまいます。すべてのセルにオブジェクトが存在していた。と解釈するべきなのでしょうか マクロの自動記録をとればわかりますが、 [Ctrl]+[Shift]+[Space] --> Cells.Select つまり、セルの全選択です。オブジェクトだけ選択することはできません。
お礼
KenKen_SPさんありがとうございます。 マクロの紹介をしてくださった方ですよね、ご丁寧にありがとうございます。ただ、私はマクロを使ったことがなく、実行方法がわかりませんでした。残念! >オブジェクトを全選択して、縦と横のサイズを1cmとかにリサイズしてみれば? とのことですが、リサイズの方法がわかりません。 つまり、わからないだらけなのです。ただ、何かの拍子に何かを間違ってペーストしてしまったことは明らかのようです。その正体を突き止めたいと思っております。
- takibo
- ベストアンサー率57% (116/200)
No.1 の者です。 気休めでしかないかもしれませんが、まずはオブジェクトを見えるようにしてみてはどうでしょうか。 (1)の方法で個別に、または(2)の方法で一括に、オブジェクトに色や線をつけて画面上で見える状態にする。 オブジェクトの数がそれほで多くなければ(1)の方法で何種類かに色分けした方がいいかもしれませんね。 No.2 の方の方法でリスト化されるのも、違う意味で見えるようにすることになるので良いかと思います。
補足
すべてのオブジェクトが選択されていると思われる状態で、色をつけてみましたが、正体を現しません。 TABキーでオブジェクトを次々に選択すると、左上に「図×××」というような表示が出ます。この数字の部分が最大4桁になってしまいました。でも見えないのです。不思議です。
- KenKen_SP
- ベストアンサー率62% (785/1258)
シート内のオブジェクトを全て選択する方法 1. 任意の単位セルを選択(複数セルを選択しない) 2. [Ctrl]+[G]で[ジャンプ]ウインドウが開きます 3. [セル選択]ボタンクリック 4. [オブジェクト]を選択し、[OK]クリック これで、シート内の全オブジェクトが選択されます。ただし、コントロールは事前にデザインモードにしておかないと選択されません。 また、参考までにですが、下記マクロはシート内の全オブジェクトをリスト化するものです。 Sub 配置オブジェクトの一覧作成() Dim myObject As Object Dim aryResult() As String, Buf() As String Dim strShName As String, LT As String, BR As String Dim i As Long, j As Long Dim Sh As Worksheet strShName = ActiveSheet.Name i = 0 For Each myObject In ActiveSheet.DrawingObjects ReDim Preserve aryResult(2, i) aryResult(0, i) = TypeName(myObject) aryResult(1, i) = myObject.Name LT = myObject.TopLeftCell.Address BR = myObject.BottomRightCell.Address If LT <> BR Then LT = LT & ":" & BR aryResult(2, i) = LT i = i + 1 Next myObject If i = 0 Then MsgBox "オブジェクトはありません", vbInformation Exit Sub End If '要素入替え ReDim Buf(UBound(aryResult, 2), UBound(aryResult)) For i = 0 To UBound(aryResult) For j = 0 To UBound(aryResult, 2) Buf(j, i) = aryResult(i, j) Next j Next i '結果 Set Sh = Sheets.Add With Sh .Range("A3") = "種類" .Range("B3") = "名前" .Range("C3") = "位置" .Range("A4").Resize(j, i).Value = Buf .Columns("A:C").AutoFit .Range("A1") = "シート[ " & strShName & " ]に配置されたオブジェクト" End With MsgBox j & "個のオブジェクトが配置されています", vbInformation End Sub
- takibo
- ベストアンサー率57% (116/200)
見えないオブジェクトを探す方を2通りご紹介します。 まず適当なオブジェクトを1つ作成します。 それを選択した状態で (1)Tabキーを押す シート上のオブジェクトを次々に選択していきます (2)日本語入力をOFFにした状態で[Ctrl]+[Shift]+[スペース]を押す シート上のオブジェクトを一括で選択します
補足
TABキーにより、ワークシートの左上に次々にオブジェクトの名前が表示されるのがよくわかりました。 ところがそれぞれのオブジェクトがいったい何であうのか?どこにあるのか?表示されないので、全くわかりません。 (2)日本語入力をOFFにした状態で[Ctrl]+[Shift]+[スペース]を押す シート上のオブジェクトを一括で選択します をためしてみましたが、アクティブなワークシート全体が選択されてしまいます。すべてのセルにオブジェクトが存在していた。と解釈するべきなのでしょうか
お礼
どうもありがとうございました。うまくいきました。マクロを実行してみると、「図形」のオブジェクトが16000個以上発見されました。その実行にも10分以上かかりました。これではスクロールが遅くなるのも仕方ないですね。 問題のオブジェクトは長さ1cmにも満たない線でした。どうしてこのようなオブジェクトが紛れ込んでしまったのかわかりませんが、今回のことでいろいろなことがわかりよかったと思っています。 また機会がありましたらよろしくお願いします