- ベストアンサー
エクセルのオブジェクトで罫線上にない物の見つけ方
エクセルで長方形のテキストボックスをオブジェクトとして200個くらい配置しています。 原則、書式ー>配置ー>罫線に合わせる オプションをON(あるいはAltを押しながらオブジェクト端をドラッグ)で、罫線上に乗せているつもりなのですが 時々、失敗して、罫線上に乗ってないものがあるようです。 この状況で、罫線上に乗っていないエッジなり、オブジェクトなりを見つける 簡単な方法はありますか? お詳しい方、よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
オブジェクトが配置されている行全体を選択して、右クリック「行の高さ」で「1」と入力して「OK」し、列の境界から外れているオブジェクトを見つけてください。 同様に列を選択して「列の幅」を「0.1」などに設定してみてください。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
質問者は、VBAの使用者とも思わないが、参考までに上げます。 >配置しています、の様子が質問に書いてないが、 配置にルールがある場合は、テキストボックスの作成段階で VBAで作成することもできる。 下記はA1:J10の100個のセルに合わせる例で、10x10のように 配置にルール(連続セルや1行おきセルになど)があり、シートの行高列幅が等しいならば、簡単にできる。 標準モジュールに張り付けて実行する。 Sub test02() Worksheets("Sheet1").DrawingObjects.Delete For j = 1 To 10 For i = 1 To 10 Set ct = Worksheets("Sheet1").Shapes.AddTextbox(msoTextOrientationHorizontal, _ Cells(i, j).Left, Cells(i, j).Top + Cells(i, j).Height * 0.2, Cells(i, j).Width * 0.7, Cells(i, j).Height * 0.8) Next i Next j End Sub ボックスの幅はセル幅の0.7、ボックスの高さセルの高さの0.8、下付きの例です。 ーーー そもそもテキストボックスは表示用より、入力受付のコントロール(=部品)で、ワークシートの セルというものがあるのに、テキストボックスを張り付けるのは、間違った凝り性ではないですか。 ーー 質問のように、位置(セルの底辺とテキストボックス底辺の距離差)が乱れたものを見つけ出すVBAも可能と思うが、図形の「最寄りのセル」を割り出す仕組みが(私の勉強経験では)無いようなので、複雑になりそう。 テキストボックスの底辺の位置はテキストボックスのTop+Heightで計算できそうだが(セルも最寄りがわりだせれば、セルのTop+Heightで計算できる)、見た目一致しているようで、微小に違うものの扱いなどむつかしいように思う。
お礼
回答ありがとうございます。参考になりました。個人的にはVBAやりますが、ファイルを編集権も含めて共有している環境でして、VBAやマクロすら使いたくない状況でした。 また、セルによる方法は、結合などもあると思いますが、後々、編集が難しくなりますので、これも避けたい状況です。とりあえず、問題が解決しましたので、ありがとうございました。
- aokii
- ベストアンサー率23% (5210/22062)
初めに以下の設定をしてから作らないと難しいです。 「書式」タブをクリックし、リボンから「配置」グループの「配置」をクリックして、表示された一覧から「枠線に合わせる」をクリックします。
お礼
回答ありがとうございました。ただ、ご指摘いただいた方法は質問内に書いているように大前提としているのですが、それでもこれを忘れる人がいるという状況でした。
お礼
回答ありがとうございます。確かに行や列の高さや幅を意図的に大きなものに変えると、罫線から外れている部分を極端に大きくできますね!とても有益な方法だと思います。ありがとうございました。
補足
ご指摘いただいた方法で、簡単に、共有者の方も問題なく罫線上にオブジェクトが乗っているかどうか、確認する事ができるようになりました。ありがとうございました。