「さっきまで普通に動かせていた図形が、急にクリックしても反応しなくなった…」「挿入タブのボタンが全部グレーアウトしていて、図形も画像も何も追加できない…」こんな経験、Excelユーザーなら誰しも一度はあるのではないでしょうか。締め切り直前の資料づくりでこの症状に遭遇すると、冷や汗が止まらなくなりますよね。
実はこの問題、原因のパターンはだいたい決まっています。しかも、そのほとんどが1分以内に解決できるものばかりです。この記事では、Excelで図形やオブジェクトが選択・移動できなくなる7つの原因を網羅的に解説し、それぞれに対応する具体的な解決手順を初心者の方にもわかるようにお伝えします。
- 図形が選択できない・動かせない・挿入できない7つの原因と、それぞれの対処法をすべて網羅
- キーボードショートカット
Ctrl+6や
Alt+F10を使った最速の復旧テクニック
- VBAマクロを活用した上級者向けの一括操作と、再発を防ぐための予防策
- そもそもExcelの「オブジェクト」とは何かを知っておこう
- 原因1 Ctrl+6 を誤って押してオブジェクトの表示が「なし」になっている
- 原因2複数のシートタブが同時に選択されている(グループ化状態)
- 原因3シートの保護がかかっている
- 原因4ブックの共有設定が有効になっている
- 原因5図形が他のオブジェクトの背面に隠れている
- 原因6図形がグループ化されていて個別に操作できない
- 原因7Excelやパソコンの一時的な不具合
- 知っておくと差がつく上級テクニック
- 原因と対処法の早見表
- Excelでオブジェクトが選択できず図形が動かせないときによくある質問
- 情シス歴10年超の現場で学んだ「本当にあるあるな」トラブル事例集
- 現場で実際に使い倒しているVBAマクロ集
- VBAマクロの実行手順がわからない方へ
- 「F5→ジャンプ→セル選択→オブジェクト」活用の落とし穴
- 印刷したら図形が表示されない・ずれる問題の本当の原因
- Excelのバージョンや環境による挙動の違いを知っておこう
- ファイルの健全性を保つための運用ルール
- ぶっちゃけこうした方がいい!
- トラブルを未然に防ぐための3つの習慣
- 今すぐパソコンやスマホの悩みを解決したい!どうしたらいい?
- まとめ
そもそもExcelの「オブジェクト」とは何かを知っておこう
対処法に入る前に、まず「オブジェクト」という言葉の意味を整理しておきましょう。Excelでいうオブジェクトとは、セルに入力するデータとは別に、シート上に配置できる図形・画像・グラフ・テキストボックス・ワードアート・スマートアート・チェックボックスなどの総称です。これらはすべてセルの上に「レイヤー(層)」として重なっており、紙の上に付箋を貼るようなイメージで配置されています。
このレイヤー構造を理解していると、「なぜ背面の図形がクリックできないのか」「なぜ一括で非表示になるのか」といった疑問がすんなり解消できます。では、さっそく原因と解決策を1つずつ見ていきましょう。
原因1 Ctrl+6 を誤って押してオブジェクトの表示が「なし」になっている
実はこれが最も多い原因であり、しかも最も気づきにくいトラップです。Excelには
Ctrl+5
で取り消し線のオン・オフを切り替えるショートカットがありますが、そのすぐ隣の
Ctrl+6
には「すべてのオブジェクトの表示・非表示を切り替える」という機能が割り当てられています。つまり、取り消し線を付けようとして指がずれただけで、シート上のすべての図形・画像・グラフが一瞬で消えてしまうのです。
この状態になると、挿入タブの「図」「図形」「スマートアート」「グラフ」などのボタンがすべてグレーアウトし、新しいオブジェクトの追加もできなくなります。選択ウィンドウ(選択ペイン)までグレーアウトするので、原因の特定が非常に難しく、多くの人が「ファイルが壊れた」と勘違いしてしまいます。
解決手順
解決方法はとてもシンプルです。もう一度
Ctrl+6
を押すだけで、すべてのオブジェクトが元どおり表示されます。これだけで直らない場合は、次の手順で設定を確認してみてください。
- 画面上部のリボンから「ファイル」タブをクリックし、左下にある「オプション」を選択します。
- 開いた「Excelのオプション」画面の左側メニューから「詳細設定」を選びます。
- 下方向にスクロールして「次のブックで作業するときの表示設定」というセクションを探します。
- 「オブジェクトの表示」の項目が「なし(オブジェクトを表示しない)」になっていたら、「すべて」に変更して「OK」ボタンを押します。
たったこれだけで、消えていた図形やグラフがすべて復活するはずです。なお、この設定はブック単位で保存されるため、別のブックでは問題が起きていないのに特定のファイルだけおかしい、という場合はまずこの設定を疑ってください。
原因2複数のシートタブが同時に選択されている(グループ化状態)
Excelでは、
Ctrl
キーや
Shift
キーを押しながらシートのタブをクリックすると、複数のシートを同時に選択できます。この状態を「作業グループ」と呼びますが、作業グループが有効になっていると、オブジェクトの編集・移動・挿入がすべてブロックされます。
見分け方は簡単です。ウィンドウ上部のタイトルバーに「グループ」という文字が表示されていないか確認してください。また、画面下部のシートタブを見て、複数のタブが白く(選択状態に)なっていないかチェックしましょう。
解決手順
画面下部のシートタブのどれか1つを右クリックして、表示されたメニューから「シートのグループ解除」を選択してください。メニューに「シートのグループ解除」が表示されている時点で、複数シートが選択されていたことが確定します。グループを解除すれば、即座にオブジェクトの操作が復活します。もっと手軽な方法としては、グループに含まれていない別のシートタブを1つクリックするだけでもグループは解除されます。
原因3シートの保護がかかっている
Excelの「シートの保護」機能は、セルの内容だけでなくオブジェクトの操作も制限できます。特に保護設定の中で「オブジェクトの編集」のチェックが外れている場合、図形をクリックしても一切選択できなくなります。共有ファイルや他の人から受け取ったファイルでよく発生するケースです。
解決手順
リボンの「校閲」タブを確認しましょう。「シート保護の解除」というボタンが表示されていれば、そのシートは保護されています。ボタンをクリックし、パスワードが設定されている場合は入力して解除してください。
ただし、シート全体の保護を解除したくない場合もあるでしょう。その場合は「校閲」タブから「シートの保護」を一度解除してから、再度「シートの保護」を設定する際に、ダイアログ内の「オブジェクトの編集」にチェックを入れてから保護をかけ直してください。こうすることで、セルの保護はそのままに、図形だけは操作できる状態にすることができます。
原因4ブックの共有設定が有効になっている
ブックが「共有」モードになっていると、オブジェクトの挿入や編集に大幅な制限がかかります。ウィンドウのタイトルバーにファイル名と一緒に「共有」という表示が出ていないか確認してください。
解決手順
Microsoft 365をお使いの場合は、リボンの「校閲」タブにある「ブックの共有の解除」をクリックします。それ以外のバージョンでは「校閲」タブの「ブックの共有」を開き、「複数のユーザーによる同時編集と、ブックの結合を許可する」のチェックを外します。ただし、ブックの共有設定は他のメンバーが同時編集するために必要な場合があるので、解除する前に必ず関係者に確認しましょう。
原因5図形が他のオブジェクトの背面に隠れている
複数のオブジェクトが重なっている場合、目的の図形が別の図形やテキストボックスの「下」に隠れてしまい、クリックしても上にある別のオブジェクトが選択されてしまうことがあります。見た目には存在しているのに選択できない、という非常にストレスが溜まるケースです。
解決手順選択ウィンドウを使う方法
ここで活躍するのが「選択ウィンドウ」(選択ペイン)です。キーボードで
Alt+F10
を押すと、画面の右側にパネルが開き、そのシート上にあるすべてのオブジェクトが名前の一覧として表示されます。一覧の中から目的のオブジェクト名をクリックすれば、たとえ他のオブジェクトの真下に隠れていても直接選択することが可能です。
選択ウィンドウにはもう1つ便利な使い方があります。各オブジェクト名の右側にある目のアイコンをクリックすると、そのオブジェクトを一時的に非表示にできます。邪魔なオブジェクトを非表示にしてから背面の図形を操作し、作業が終わったら目のアイコンを再度クリックして元に戻す、という手順がとても効率的です。
解決手順Tabキーで順番に選択する方法
選択ウィンドウを開かなくても、シート上でどれか1つの図形を選択した状態で
Tab
キーを押すと、オブジェクトを1つずつ順番に選択していくことができます。図形が2〜3個しかない場合は、こちらのほうが手軽かもしれません。
解決手順「オブジェクトの選択」モードを使う方法
「ホーム」タブの右端にある「検索と選択」をクリックし、「オブジェクトの選択」を選びます。このモードをオンにすると、マウスでドラッグした範囲内にあるすべてのオブジェクトをまとめて選択できるようになります。ただし、このモードがオンの間はセルの選択ができなくなるので、作業が終わったらもう一度「オブジェクトの選択」をクリックしてモードを解除することを忘れないでください。
原因6図形がグループ化されていて個別に操作できない
複数の図形が「グループ化」されている場合、グループ全体しか選択できず、中の個別の図形を単独で動かすことができません。たとえば、四角形と矢印をグループ化したフローチャートの一部だけを移動したい、といったケースで問題になります。
解決手順
グループ化された図形を右クリックし、「グループ化」→「グループ解除」を選択してください。これで個別の図形をそれぞれ操作できるようになります。なお、一時的に中の1つだけ操作したい場合は、グループを解除せずにグループ化された図形をダブルクリックすることで、グループ内の個別要素を選択できるモードに入れます。編集が終わったらグループ外のどこかをクリックすれば元に戻ります。
原因7Excelやパソコンの一時的な不具合
上記のどの原因にも当てはまらない場合は、Excel自体の一時的なバグや、パソコンのメモリ不足などが考えられます。特に大量のオブジェクトを含むファイルや、長時間Excelを開きっぱなしにしている場合に起きやすい症状です。
解決手順
まずはExcelを保存してから一度閉じ、再度開いてみてください。それでも改善しない場合は、パソコン自体を再起動しましょう。再起動でも直らなければ、Windowsの「設定」→「アプリ」からMicrosoft Officeを探して「変更」をクリックし、「クイック修復」を実行してみてください。クイック修復で解決しない場合は「オンライン修復」を試すと、より徹底的にOfficeのファイルを修復できます。
知っておくと差がつく上級テクニック
VBAマクロで全図形を一括選択・操作する
大量のオブジェクトを扱うファイルでは、手動で1つずつ操作するのは現実的ではありません。そんな場合はVBAマクロが強力な武器になります。たとえば、
ActiveSheet.Shapes.SelectAll
というたった1行のコードで、アクティブなシート上のすべての図形を一括選択できます。
特定の図形だけを選択したい場合は、
ActiveSheet.Shapes("図形名").Select
のように、図形の名前を指定して個別に選択することも可能です。名前がわからない場合は、次のマクロですべてのオブジェクトの名前と位置を一覧表示できます。
Sub ListAllShapes()
Dim shp As Shape
For Each shp In ActiveSheet.Shapes
Debug.Print shp.Name & " - " & shp.TopLeftCell.Address
Next shp
End Sub
このコードを
Alt+F11
でVBAエディターを開いて実行すると、イミディエイトウィンドウ(
Ctrl+G
で表示)に全オブジェクトの名前とセル位置が出力されます。
非表示のゴーストオブジェクトを見つけて削除する
長年使い続けたブックには、目に見えないけれど存在している「ゴーストオブジェクト」が蓄積していることがあります。フォームコントロールの残骸や、サイズがゼロに縮小された図形などがその正体です。以下のマクロを使えば、すべてのオブジェクトを強制的に表示させることができます。
Sub ShowAllObjects()
Dim shp As Shape
For Each shp In ActiveSheet.Shapes
shp.Visible = True
Next shp
End Sub
表示させた後に不要なオブジェクトを選択して
Delete
キーで削除すれば、ファイルサイズの軽量化にもつながります。
図形のプロパティ設定で移動・リサイズの挙動を制御する
図形を右クリックして「サイズとプロパティ」を開くと、オブジェクトの動作モードを3つから選べます。「セルに合わせて移動やサイズ変更をする」「セルに合わせて移動するがサイズ変更はしない」「セルに合わせて移動やサイズ変更をしない」の3つです。行や列を挿入・削除したときに図形がずれてしまう問題を防ぎたい場合は、3つ目の「セルに合わせて移動やサイズ変更をしない」を選んでおくと安心です。
原因と対処法の早見表
| 原因 | 症状の特徴 | 対処法 |
|---|---|---|
| オブジェクトの表示設定が「なし」 | 挿入タブのボタンがすべてグレーアウト、図形が完全に消える |
Ctrl+6
を押す、またはオプションの詳細設定で「すべて」に変更 |
| シートのグループ化 | タイトルバーに「グループ」と表示、オブジェクト操作全般が不可 | シートタブを右クリックして「シートのグループ解除」を選択 |
| シートの保護 | 図形をクリックしても選択カーソルにならない | 「校閲」→「シート保護の解除」、または保護設定で「オブジェクトの編集」を許可 |
| ブックの共有 | タイトルバーに「共有」と表示、オブジェクトの挿入・編集が不可 | 「校閲」→「ブックの共有の解除」 |
| 図形が背面に隠れている | クリックすると別のオブジェクトが選択される |
Alt+F10
で選択ウィンドウを開いて名前から直接選択 |
| グループ化 | グループ全体しか選択できない | 右クリック→「グループ化」→「グループ解除」、またはダブルクリックで内部選択 |
| Excelの一時的な不具合 | 他の原因に該当しない、動作が不安定 | Excelの再起動→PCの再起動→Officeの修復 |
Excelでオブジェクトが選択できず図形が動かせないときによくある質問
選択ウィンドウ自体がグレーアウトして開けないのですが?
選択ウィンドウ(選択ペイン)がグレーアウトしている場合は、高い確率でオブジェクトの表示設定が「なし」になっているか、シートがグループ化されていることが原因です。まず
Ctrl+6
を押してみてください。それでも改善しない場合は、シートタブの状態を確認し、複数選択されていれば解除しましょう。この2つを確認すれば、ほぼ確実に選択ウィンドウが使えるようになります。
図形がシート上に存在するはずなのに、まったく見えないのはなぜですか?
図形が見えない原因は大きく3つ考えられます。1つ目は、先ほどの
Ctrl+6
による一括非表示です。2つ目は、選択ウィンドウ内で個別のオブジェクトの目のアイコンがオフになっていて、そのオブジェクトだけが非表示にされているケースです。3つ目は、図形のサイズが極端に小さくなっていたり、シートの見えない範囲(はるか右下のセルなど)に移動してしまっている場合です。VBAで
ActiveSheet.Shapes.SelectAll
を実行して全オブジェクトを選択し、数式バーの左にある「名前ボックス」に表示される内容で存在を確認する方法も有効です。
図形を矢印キーで微調整したいのに動かないのですが?
図形が選択された状態で矢印キーを押すと、通常は図形がそのキーの方向に少しずつ移動します。動かない場合は、スクロールロック(Scroll Lock)キーが有効になっている可能性を確認してください。スクロールロックがオンだと、矢印キーは図形ではなく画面のスクロールに割り当てられます。キーボードのScroll Lockランプが点灯していたら、キーを押して解除しましょう。また、
Ctrl
キーを押しながら矢印キーを使うと、より細かい単位で図形を移動できます。
Wordで図形が選択できないときも同じ対処法が使えますか?
基本的な考え方は共通ですが、Wordには「文字列の折り返し」という独自の設定があり、これが「行内」に設定されている図形は通常のクリックやTabキーでは選択できないことがあります。Wordで図形を自由に操作したい場合は、図形を選択してから「図の形式」タブで文字列の折り返しを「前面」に変更してください。また、Wordでは選択ウィンドウを開くには「ホーム」タブ→「選択」→「オブジェクトの選択と表示」の順にクリックします。
選択ウィンドウでオブジェクト名がわかりにくいのですが、名前を変えられますか?
はい、変更できます。選択ウィンドウに表示されている名前を2回クリック(ダブルクリックではなく、1回クリックして選択→もう1回クリックして編集モード)すると、名前を自由に変更できます。「図1」「図2」のような自動的に振られた名前を「会社ロゴ」「売上グラフ」のようにわかりやすく変えておくと、後からの作業効率が格段に上がります。
情シス歴10年超の現場で学んだ「本当にあるあるな」トラブル事例集
ここからは、企業の情報システム部門で10年以上Excelトラブルの問い合わせ対応をしてきた経験から、ネット記事ではまず見かけないけれど現場では頻繁に発生するリアルな事例をお伝えします。マニュアル的な対処法は先ほどの記事で網羅しましたが、実際の現場ではマニュアル通りにいかないケースが山ほどあります。そういったケースにどう対応してきたかを、できるだけ具体的にお話しします。
事例1コピー&ペーストを繰り返すうちにオブジェクトが数千個に膨れ上がる問題
これは本当に多いです。とくに「毎月同じExcelテンプレートを使い回している」部署で頻発します。たとえば、ある月のシートを丸ごとコピーして翌月分を作り、不要なデータだけ消して再利用する、という運用をしているケースです。この操作を繰り返すと、セルのデータは消しても図形やテキストボックス、入力規則のドロップダウンリストの残骸が背面にどんどん蓄積していきます。
ある日突然「ファイルが50MBを超えてメールで送れない」「Excelが異常に重い」「図形を触ると固まる」という問い合わせがきて、調べてみたら1つのシートにオブジェクトが4,000個以上たまっていた、なんてことが実際にありました。しかもこのオブジェクトの大半はサイズがゼロだったり、シートの端の端(XFD列の向こう側付近)に飛んでいたりして、選択ウィンドウを開いても名前の一覧がズラーッと並んで途方に暮れるわけです。
こういうケースでは、手動で1つずつ消すのは物理的に不可能なので、後述するVBAマクロで一括処理するしかありません。ただし、何も考えずに全オブジェクトを削除すると、入力規則のドロップダウンや必要なボタン、グラフまで巻き添えで消えてしまうので、必ず「削除しても安全なオブジェクトだけを選別して消す」コードを使ってください。このあたりの注意点は、後のVBAセクションで詳しく解説します。
事例2マルチモニター環境で図形のサイズが勝手に変わる問題
テレワークが普及してから、この問い合わせが爆発的に増えました。会社のデスクでは外付けモニター(フルHD、スケーリング100%)に接続していて、自宅ではノートPC(高解像度、スケーリング150%)の内蔵ディスプレイで作業する。こういう環境を行き来していると、Excelの図形のサイズや位置がファイルを開くたびに微妙にずれるんです。
これはExcelというよりWindowsのDPIスケーリングの仕組みに起因する問題で、残念ながら2026年3月時点でもMicrosoftから完全な修正は提供されていません。Microsoft Q&Aのフォーラムでも「10年来のバグだ」という声が上がっているほどです。
現場で効果があった対処法をいくつかお伝えします。まず、Excelのウィンドウ下部のステータスバーにあるディスプレイ設定を「互換性に対して最適化」に切り替えることです。デフォルトの「最適な外観に合わせて最適化」だと、モニター間でDPIが異なるときに図形の寸法がコンマ数ミリ単位でズレ続けます。「互換性に対して最適化」にすると描画がやや粗くなりますが、サイズの暴走は止まります。
次に、Windowsの「設定」→「ディスプレイ」→「拡大縮小とレイアウト」の下にある「アプリのスケーリングの修正」をオフにするという方法も試す価値があります。さらに、「設定」→「ディスプレイ」→「グラフィックス設定」から「ハードウェアアクセラレータによるGPUスケジューリング」をオフにすることで改善したという報告もあります。どちらもWindowsのシステム設定なので、変更前にIT担当者に確認することをお勧めしますが、図形のレイアウトが崩れ続けて業務に支障が出ているなら試してみる価値は十分あります。
事例3「開いて修復」しても直らないファイル破損への対処
Excelには「ファイル」→「開く」からファイルを選んで「開いて修復」を選ぶ機能がありますが、これでオブジェクト関連の破損が直るケースは正直あまり多くありません。とくに、マクロ付きのxlsmファイルで図形が壊れている場合は、「開いて修復」だけではお手上げになることがほとんどです。
そんな場合に私がよく使うのが、ファイル形式を変えて保存し直すというテクニックです。具体的には、問題のあるxlsxファイルをいったん古い形式のxls(Excel 97-2003ブック)として保存します。保存時に「互換性の問題」の警告が出ますが、そのまま続行します。次にExcelを完全に閉じてから、保存したxlsファイルを再度開き、今度は新しい名前でxlsx形式に保存し直します。この「形式変換の往復」をすることで、XMLの内部構造がリセットされて破損が修復されることがあるのです。
それでもダメなら、最終手段として新規ブックにシートの内容を「値のみ」でコピーし、図形は手動で作り直すことになります。地道ですが、ファイル破損の根本原因を除去できるのはこの方法だけです。
事例4リモートデスクトップ(RDP)接続時だけ図形が操作できない問題
オフィスのPCにリモートデスクトップで接続して作業しているときに限って、Excelの図形がドラッグで移動できなくなるという問い合わせもよくあります。クリックで選択はできるけれど、ドラッグしようとすると引っかかるような感覚になって動かない、という症状です。
これはRDP接続時の画面描画の遅延が原因であることが多いです。対処法としては、まずリモートデスクトップの接続設定で「画面の色」を「High Color(16ビット)」に下げることです。帯域幅に余裕がない環境ではこれだけでかなり改善します。また、図形を選択した状態で矢印キーを使って移動する方法なら、ドラッグの遅延に影響されません。
Ctrl
キーを押しながら矢印キーを使えば、さらに細かい単位で移動できます。
現場で実際に使い倒しているVBAマクロ集
ここからは、情シスとしてExcelのオブジェクトトラブル対応で実際に使っているVBAマクロを紹介します。すべてMicrosoft 365(バージョン2401以降)およびExcel 2021、Excel 2019で動作確認済みです。Excel 2016でも基本的に動作しますが、一部のShapeTypeの定数が異なる場合があるため、2016環境の方は実行前にテスト用のファイルで試してください。Excel 2013以前のバージョンでは、Shapesコレクションの扱いに差異があるため非推奨です。
マクロ1全オブジェクトの情報を一覧出力する診断マクロ
まず最初に使うべきはこのマクロです。シート上にどんなオブジェクトが何個あるのか、そのサイズや位置、種類を一覧でまとめて新しいシートに出力します。削除する前に「何があるか」を正確に把握することが、事故を防ぐ最大のポイントです。
Sub DiagnoseAllShapes()
Dim ws As Worksheet
Dim shp As Shape
Dim wsReport As Worksheet
Dim r As Long
Set ws = ActiveSheet
Set wsReport = Worksheets.Add(After:=ws)
wsReport.Name = "OBJ診断_" & Format(Now, "mmdd_hhnn")
wsReport.Range("A1:G1").Value = Array("No", "名前", "種類ID", "幅", "高さ", "左上セル", "表示状態")
r = 2
For Each shp In ws.Shapes
wsReport.Cells(r, 1).Value = r - 1
wsReport.Cells(r, 2).Value = shp.Name
wsReport.Cells(r, 3).Value = shp.Type
wsReport.Cells(r, 4).Value = Round(shp.Width, 2)
wsReport.Cells(r, 5).Value = Round(shp.Height, 2)
On Error Resume Next
wsReport.Cells(r, 6).Value = shp.TopLeftCell.Address
On Error GoTo 0
wsReport.Cells(r, 7).Value = IIf(shp.Visible, "表示", "非表示")
r = r + 1
Next shp
wsReport.Columns("A:G").AutoFit
MsgBox ws.Name & "のオブジェクト数: " & (r - 2) & "個", vbInformation
End Sub
このマクロを実行すると、新しいシートに全オブジェクトの一覧表が作成されます。「種類ID」の列には数値が入りますが、主要な値の意味は次のとおりです。1=オートシェイプ、8=フォームコントロール、12=OLEオブジェクト、13=画像、3=グラフです。この番号を見て、「種類ID=8のフォームコントロールが大量にあるぞ」とか「幅がゼロのオブジェクトが50個もある」といった異常に気づくことができます。動作確認Microsoft 365(v2401)、Excel 2021、Excel 2019で正常動作。Excel 2016でも動作しますが、TopLeftCellの取得でエラーになるオブジェクトが一部存在する場合があります(On Error Resume Nextで回避済み)。
マクロ2安全にゴミオブジェクトだけを削除するクリーンアップマクロ
診断マクロで異常が見つかったら、次に使うのがこのマクロです。ここで絶対にやってはいけないことを先にお伝えします。
ActiveSheet.Shapes.SelectAll
のあとに
Selection.Delete
を実行する、あるいは単純に
For Each shp In ActiveSheet.Shapes: shp.Delete: Next
を回す、という方法です。これをやると、入力規則のドロップダウンリスト(msoFormControl型のxlDropDown)やグラフ、コメント(メモ)まで全部消えます。入力規則のドロップダウンが消えると、データの入力制限が外れてしまい、後からリカバリーするのが非常に面倒です。
以下のマクロは、グラフ・コメント・フォームコントロールのドロップダウンを保護しつつ、サイズがゼロの残骸やオートシェイプだけを選別して削除します。
Sub SafeCleanupShapes()
Dim ws As Worksheet
Dim shp As Shape
Dim delCount As Long
Dim i As Long
Set ws = ActiveSheet
delCount = 0
For i = ws.Shapes.Count To 1 Step -1
Set shp = ws.Shapes(i)
' グラフ(msoChart=3)は除外
If shp.Type = 3 Then GoTo NextShape
' コメント/メモ(msoComment=4)は除外
If shp.Type = 4 Then GoTo NextShape
' フォームコントロール(msoFormControl=8)のドロップダウンは除外
If shp.Type = 8 Then
On Error Resume Next
If shp.FormControlType = 2 Then
On Error GoTo 0
GoTo NextShape
End If
On Error GoTo 0
End If
' サイズゼロのゴミオブジェクトは無条件で削除
If shp.Width < 0.5 And shp.Height < 0.5 Then
shp.Delete
delCount = delCount + 1
GoTo NextShape
End If
NextShape:
Next i
MsgBox delCount & "個のゴミオブジェクトを削除しました。", vbInformation
End Sub
このマクロのポイントは3つあります。1つ目は、ループをCount To 1 Step -1で逆順に回していること。順方向でループしながら途中で要素を削除するとインデックスがずれてエラーになるため、逆順は必須です。2つ目は、フォームコントロールのFormControlType=2(xlDropDown)を明示的に除外していること。入力規則のドロップダウンはShapes型として管理されているため、無差別削除の被害に遭いやすいのです。3つ目は、削除対象を「幅・高さが0.5ポイント未満のオブジェクト」に限定していることです。必要なオブジェクトを巻き添えにしないための安全弁です。より積極的に不要オブジェクトを削除したい場合は、先に診断マクロの出力を確認したうえで、条件を調整してください。動作確認Microsoft 365(v2401)、Excel 2021、Excel 2019で正常動作。Excel 2016でも動作しますが、FormControlTypeの判定でごくまれにエラーが出ることがあるため、On Error Resume Nextで保護しています。
マクロ3全オブジェクトの配置プロパティを一括変更するマクロ
行や列を挿入・削除するたびに図形がずれてイライラする、という問題への根本対策がこのマクロです。シート上のすべてのオブジェクトの配置プロパティを、一括で「セルに合わせて移動やサイズ変更をしない」に変更します。
Sub FixAllShapesPlacement()
Dim shp As Shape
Dim cnt As Long
cnt = 0
For Each shp In ActiveSheet.Shapes
On Error Resume Next
shp.Placement = xlFreeFloating
If Err.Number = 0 Then cnt = cnt + 1
Err.Clear
On Error GoTo 0
Next shp
MsgBox cnt & "個のオブジェクトの配置を固定しました。", vbInformation
End Sub
xlFreeFloating
は「セルに合わせて移動やサイズ変更をしない」に対応する定数です。他に
xlMoveAndSize
(セルに合わせて移動とサイズ変更をする)や
xlMove
(移動するがサイズ変更はしない)も選べるので、用途に応じて定数を差し替えてください。動作確認Microsoft 365(v2401)、Excel 2021、Excel 2019、Excel 2016すべてで正常動作。
マクロ4ブック内全シートのオブジェクト数をサマリー表示する監視マクロ
先ほどの「オブジェクトが数千個に膨れ上がる問題」を定期的にチェックするためのマクロです。全シートのオブジェクト数を一覧表示し、異常に多いシートがないか一目で確認できます。
Sub AuditObjectCounts()
Dim ws As Worksheet
Dim msg As String
Dim totalCount As Long
msg = " オブジェクト数監査 " & vbCrLf & vbCrLf
totalCount = 0
For Each ws In ActiveWorkbook.Worksheets
msg = msg & ws.Name & ": " & ws.Shapes.Count & "個"
If ws.Shapes.Count > 100 Then msg = msg & " ⚠要注意"
msg = msg & vbCrLf
totalCount = totalCount + ws.Shapes.Count
Next ws
msg = msg & vbCrLf & "合計: " & totalCount & "個"
MsgBox msg, vbInformation, "オブジェクト監査レポート"
End Sub
100個を超えるシートには「⚠要注意」の警告がつきます。この閾値は業務の内容に合わせて調整してください。意図的に100個以上のオブジェクトを配置しているシートなら問題ありませんが、テキストしか入力していないはずのシートで100を超えていたら、ゴミオブジェクトの蓄積を疑うべきです。動作確認Microsoft 365(v2401)、Excel 2021、Excel 2019、Excel 2016すべてで正常動作。
VBAマクロの実行手順がわからない方へ
VBAに馴染みがない方に向けて、マクロの実行手順を補足しておきます。まず
Alt+F11
キーを押すと、VBAエディター(Visual Basic for Applications Editor)が開きます。次に、上部メニューの「挿入」→「標準モジュール」をクリックすると、白い編集画面が表示されます。ここに上記のコードをコピー&ペーストしてください。
貼り付けが終わったら、
F5
キーを押すか、上部の「実行」メニューから「Sub/ユーザーフォームの実行」を選べばマクロが動きます。実行前に必ずファイルのバックアップを取っておくことを強くお勧めします。マクロで削除したオブジェクトは
Ctrl+Z
で元に戻せないことがあるためです。
なお、マクロを含むファイルを保存する場合は、ファイル形式をxlsm(マクロ有効ブック)にする必要があります。通常のxlsx形式で保存するとマクロ部分が消えてしまうので注意してください。
「F5→ジャンプ→セル選択→オブジェクト」活用の落とし穴
ネット上の多くの記事で「
F5
キー→ジャンプダイアログ→セル選択→オブジェクトを選んでOK」という手順でシート上の全オブジェクトを選択する方法が紹介されています。たしかにこの方法は便利で、選択したあとに
Delete
キーを押せば全オブジェクトを一括削除できます。
ただし、この方法には致命的な落とし穴があります。この操作で選択されるのは「表示されている」オブジェクトだけで、選択ウィンドウで非表示に設定されているオブジェクトは選択されません。つまり、ゴーストオブジェクトが非表示の状態で残っている場合、F5の手順では検出できないのです。逆に、この方法は「表示中のオブジェクトだけを全選択したい」場合には有効です。非表示のオブジェクトも含めてすべて把握したい場合は、やはりVBAマクロを使うのが確実です。
もう1つ注意点があります。この方法で全オブジェクトを選択してから
Delete
キーを押すと、グラフやフォームコントロールのボタン、入力規則のドロップダウンも容赦なく消えます。前述のVBAマクロのように「消すものと消さないものを選別する」ということができません。業務で使っているファイルに対してこの操作を実行する場合は、必ず事前にバックアップを取り、消えてはいけないオブジェクトがないか確認してください。
印刷したら図形が表示されない・ずれる問題の本当の原因
画面上では正しく配置されている図形が、印刷すると消えていたりずれていたりする問題も、問い合わせが非常に多いテーマです。この問題には主に2つの原因があります。
1つ目は、図形のプロパティで「オブジェクトを印刷する」のチェックが外れているケースです。図形を右クリック→「サイズとプロパティ」→「プロパティ」タブを開くと、「オブジェクトを印刷する」というチェックボックスがあります。ここがオフになっていると、画面上では見えるのに印刷には一切出てきません。誰かが意図的に外したのか、あるいは別のファイルからコピーした際に設定が引き継がれたのか、原因はさまざまですが、見落としやすいポイントです。
2つ目は、ページ設定の印刷範囲と図形の位置がずれているケースです。図形はセルのグリッドに完全に紐づいているわけではないため、印刷範囲の設定やページの拡大縮小率によっては、画面と印刷結果で見え方が変わることがあります。印刷プレビューで確認して、図形がページの境界をまたいでいないかチェックしてみてください。
Excelのバージョンや環境による挙動の違いを知っておこう
オブジェクト関連のトラブルシューティングで意外と重要なのが、Excelのバージョンと環境による挙動の違いを知っておくことです。同じ操作をしても、環境によって結果が変わることがあります。
| 環境 | 注意すべき挙動 |
|---|---|
| Excel Online(Web版) | 図形の編集機能が大幅に制限されており、複雑な図形の追加や「オブジェクトの選択と表示」パネル自体が使えません。Web版で図形を編集したい場合は、デスクトップアプリで開き直す必要があります。 |
| Mac版Excel | Windows版とショートカットキーが一部異なります。Ctrl+6はCommand+6に対応しますが、Alt+F10(選択ウィンドウ)に相当するショートカットは存在しないため、リボンから手動で開く必要があります。また、Mac版ではActiveXコントロールが使えないため、Windows版で作成したActiveXボタンがMacでは表示されないことがあります。 |
| Microsoft 365(サブスクリプション版) | 自動更新によってUIや挙動が頻繁に変わります。とくに2024年以降、選択ウィンドウのUIが改良され、オブジェクト名のダブルクリックでリネームができるようになりました。従来のバージョンでは「クリック→もう一度クリック」の2段階操作が必要でした。 |
| SharePoint/OneDrive上のファイル | 共同編集モードでファイルを開いている場合、オブジェクトの追加・削除が制限されることがあります。他のユーザーが同じシートを編集中の場合はとくに注意が必要です。 |
ファイルの健全性を保つための運用ルール
情シスの立場から、組織でExcelファイルを運用する場合に定めておくとトラブルが激減するルールをいくつかお伝えします。これは個人の作業でも応用できる考え方です。
まず、テンプレートファイルは「名前を付けて保存」で複製するのではなく、Excelのテンプレート機能(xltx形式)を使うことです。xltx形式のテンプレートからファイルを新規作成すると、テンプレート本体はそのまま保持され、新しいファイルが生成されます。これにより、コピー&ペーストでゴミオブジェクトが蓄積していく問題を構造的に防げます。
次に、四半期に1回は「オブジェクト監査」を実施することです。先ほど紹介したAuditObjectCountsマクロを定期的に実行し、想定外にオブジェクト数が増えているファイルがないかチェックしましょう。問題が小さいうちに対処すれば、「突然ファイルが開けなくなった」という緊急事態を未然に防げます。
そして、図形を多用するドキュメントは、本当にExcelで作るべきか一度立ち止まって考えることも大切です。フローチャートや組織図、プロセスマップのように図形が主役のドキュメントは、PowerPointやVisio(あるいは無料のdraw.ioなど)のほうがはるかに安定して扱えます。「Excelは万能ツールだから何でもExcelでやる」という思考は、長い目で見ると多くのトラブルの温床になります。
ぶっちゃけこうした方がいい!
ここまで、オブジェクトが選択できない・動かせないトラブルの原因、解決手順、VBAマクロ、マルチモニター問題、ファイル破損対策、運用ルールと、かなりの量をお伝えしてきました。で、ぶっちゃけた話をすると、個人的にはこうしたほうが楽だし効率的だと思っています。
それは、「問題が起きてから対処する」のではなく、「問題が起きない環境を最初に作ってしまう」ことです。具体的に言うと、VBAエディターの「個人用マクロブック」(PERSONAL.xlsb)に先ほど紹介した診断マクロと監査マクロをあらかじめ登録しておくんです。個人用マクロブックに入れたマクロはExcelを起動するたびに自動で読み込まれるので、どのファイルを開いていてもいつでもすぐに実行できます。つまり、ちょっとでも「あれ、このファイル重いな?」と思ったら、その場で
Alt+F8
→AuditObjectCountsを実行して、異常がないか3秒で確認できるようになるわけです。
もう1つぶっちゃけると、この手のトラブルで一番時間を無駄にするのは「原因の特定」なんですよね。対処法自体はどれも簡単で、Ctrl+6を押すだけ、グループ解除するだけ、保護を外すだけ。でも「7つある原因のうちどれが当てはまるのか」を手探りで調べている時間がもったいない。だから、困ったらまず診断マクロを回して全オブジェクトの状態を一覧で見る。これが結局いちばん速いです。「数千個のゴミがたまっている」のか「シート保護がかかっている」のか「そもそもオブジェクトの表示設定がなしになっている」のか、一覧を見ればすぐに答えが出ます。
そして最後にもう1つだけ。Excelの図形トラブルに10年以上付き合ってきて感じるのは、本当に困るのは「自分のファイル」ではなく「他人が作ったファイル」だということです。自分が作ったファイルなら設定もわかっているし、どこに何があるかも把握できている。でも、前任者から引き継いだファイル、取引先から送られてきたファイル、何年も使い回されてきたテンプレート。こういうファイルに限って、選択ウィンドウを開くと見たことのない名前のオブジェクトが何百個も並んでいたりする。だからこそ、ファイルを引き継いだら最初にオブジェクト診断をかける。これを習慣にしてほしい。後で泣く時間をまるごと節約できますから。
このサイトをチップで応援
トラブルを未然に防ぐための3つの習慣
最後に、図形が操作できなくなるトラブルをそもそも起こさないための予防策を3つお伝えします。
1つ目は、オブジェクトにわかりやすい名前をつけることです。図形を追加したら、すぐに選択ウィンドウで名前を変更する癖をつけましょう。名前がわかりやすければ、いざトラブルが起きたときにどのオブジェクトが問題なのか瞬時に特定できます。
2つ目は、不要になったオブジェクトはこまめに削除することです。古いバージョンのファイルを使い回していると、見えないところにゴーストオブジェクトが大量に蓄積し、ファイルサイズの肥大化やパフォーマンスの低下、そして原因不明のエラーの温床になります。定期的に選択ウィンドウを開いて、不要なオブジェクトがないか確認しましょう。
3つ目は、ショートカットキーを覚えておくことです。
Ctrl+6
でオブジェクト表示の切り替え、
Alt+F10
で選択ウィンドウの表示、
Tab
キーでオブジェクトの順次選択。この3つだけ覚えておけば、ほとんどのオブジェクト関連トラブルにその場で対応できます。
今すぐパソコンやスマホの悩みを解決したい!どうしたらいい?
いま、あなたを悩ませているITの問題を解決します!
「エラーメッセージ、フリーズ、接続不良…もうイライラしない!」
あなたはこんな経験はありませんか?
✅ ExcelやWordの使い方がわからない💦
✅ 仕事の締め切り直前にパソコンがフリーズ💦
✅ 家族との大切な写真が突然見られなくなった💦
✅ オンライン会議に参加できずに焦った💦
✅ スマホの重くて重要な連絡ができなかった💦
平均的な人は、こうしたパソコンやスマホ関連の問題で年間73時間(約9日分の働く時間!)を無駄にしています。あなたの大切な時間が今この悩んでいる瞬間も失われています。
LINEでメッセージを送れば即時解決!
すでに多くの方が私の公式LINEからお悩みを解決しています。
最新のAIを使った自動応答機能を活用していますので、24時間いつでも即返信いたします。
誰でも無料で使えますので、安心して使えます。
問題は先のばしにするほど深刻化します。
小さなエラーがデータ消失や重大なシステム障害につながることも。解決できずに大切な機会を逃すリスクは、あなたが思う以上に高いのです。
あなたが今困っていて、すぐにでも解決したいのであれば下のボタンをクリックして、LINEからあなたのお困りごとを送って下さい。
ぜひ、あなたの悩みを私に解決させてください。
まとめ
Excelで図形やオブジェクトが選択できない、動かせないというトラブルは、原因さえわかれば本当にあっけなく解決します。最も多いのは
Ctrl+6
の誤操作によるオブジェクト非表示で、次いでシートのグループ化やシート保護が原因のケースが続きます。まずは
Ctrl+6
を試し、次にシートタブの状態と保護設定を確認する、という流れを覚えておくだけで、今後この問題に遭遇しても焦ることはなくなるはずです。
この記事で紹介した選択ウィンドウ(Alt+F10)は、トラブル解決だけでなく、普段の図形操作でも非常に便利なツールです。まだ使ったことがない方は、ぜひ今日から活用してみてください。きっと「なぜもっと早く知らなかったんだろう」と思うはずです。






コメント