[[20180809153419]] 『Excelでお絵かきするときの図形選択について』(にゅるん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『Excelでお絵かきするときの図形選択について』(にゅるん)

お世話になっております。

お絵かきと言っても、人物画や風景画を描くわけではありません。

業務上、写真を貼ってその上に寸法や吹き出しやらのシェイプをたくさん書き込んでいくことがよくあるのですが、たくさんシェイプが重なり合っていると意図しないシェイプを選択してしまうことが良くあります。

Excelは描画用のソフトではないので、機能不足なのはしょうがないのですが、作図に膨大な時間をかけているので、なんとかならないものかと考えています。

目的のシェイプを正確に選択出来るようにするために、何か良い方法は無いでしょうか。

グループ化、オブジェクトの選択と表示ウィンドウ、オブジェクトの選択コマンド、Alt、Shift、Ctrl、スクロールを組み合わせた操作くらいは出来ます。

一応、納品要件がExcelなので不満ならCAD使えよって話は無しでお願いします。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


オブジェクトに分かりやすい名前を付けておいて、
オブジェクトの選択と表示でリストから選択すれば正確に選択できると思いますが、そういうことではないですか?
(TAKA) 2018/08/09(木) 16:05

提案ありがとうございます。

残念ながら一つ一つのオブジェクト名を暗記するのは不可能だと思います。
カーソル下にあるオブジェクト名が全てツールチップ等で出てくれば話は別ですが・・・

Ctrl+Dragでドンドン矢印などは複写するので、みんな名前は同じになりますしそのたびに名前を考えて付けていては本末転倒になってしまいます。
(にゅるん) 2018/08/09(木) 16:27


 ・オブジェクトの選択と表示で関係ないもの完成したところを非表示にしてから作業する
 ・固定しておきたい背後の絵等はActiveX コントロールのイメージコントロールを使用し、選択できないようにする。
 参考:http://www4.synapse.ne.jp/yone/excel2013/excel2013_zu_kotei.html#image
 ・別シート等で部品ごとに作成し、最後に合体する
 ・部品も拡大して(部品サイズを2〜5倍にして)作成し、Excelに貼って縮小合体する
 ・場合によってはイラストレーターやパワーポイント等別ソフトも利用

 どの程度細かく部品数が多いかわからないけど、細かいなら部品ごとに拡大して作る、のが基本かと。
(1111) 2018/08/09(木) 16:34

暗記はする必要ありません。
リストを選ぶと同時に図形が選択状態になって枠が表示されます。
デフォルトでも 正方形/長方形 1 や 円/楕円 2 などある程度推測しやすい名前がつきます。

図形を直接選択したいのでしたら、
なるべく工夫して重ならない部分を広くするか、
前面背面の順番を調整して頻繁に選択したい図形を前面にしておくくらいしか思いつきません、、

(TAKA) 2018/08/09(木) 16:42


オブジェクトの選択で適当なエリアのオブジェクトを複数選択状態にして、
Tabキーで目的のオブジェクトへ移動する。

(きまぐれ) 2018/08/09(木) 16:51


1111様
シートの保護と併用してロックするのはアリかもしれません!
そのままでは手数が多くなるので、ロックを一括で書き換えるマクロを組めば実用的なものができそうです。

>拡大して作る。
おっしゃるとおりですね。面倒くさがらずに400%とかにウィンドウを拡大すれば良いのかもしれません。

TAKA様
自動で後ろに番号がつくのは、単純に作図した場合で名前をつけたものや古いExcelデータからコピーしてきた図形?はコピーした時に名前が固されたままになると思います。
それに眼の前にある矢印が 1〜10のどれに当てはまるか、なんて毎回探していては大変です。(現状)

きまぐれ様
複数選択しておいてもTABキーはそんなのお構いなしに全オブジェクトを順番に選択していくんですよね。
でも選択したオブジェクトのみを巡回するマクロを作れば・・・!できそうな気がしてきました。
(にゅるん) 2018/08/09(木) 17:14


 > カーソル下にあるオブジェクト名が全てツールチップ等で出てくれば話は別ですが・・・ 
これなら可能かな。 以下のコードを実行してみてください。

 Sub test()
    Dim i As Long

    With ActiveSheet
        For i = 1 To .Shapes.Count
            .Hyperlinks.Add Anchor:=.Shapes(i), Address:="", ScreenTip:=.Shapes(i).Name
        Next i
    End With
 End Sub

欠点は、日本語環境でも英語名が表示されてしまう事と、グループ化している場合は個々の部品にはツールチップが付かない事でしょうか。
(???) 2018/08/09(木) 17:24


???様
ハイパーリンクを使ってツールチップを出すとは・・・目から鱗です。
しかしながらカーソル下のオブジェクト名が”全て”ではないので、選択したいオブジェクト名を知るためには使えないのが惜しいです。
(にゅるん) 2018/08/09(木) 17:48

CTRLを押しながら等、複数図形を選択した状態で以下のコードを実行すると、図形名を表示しますが、こんなことができれば良いです?
 Sub test2()
    Dim S As Object
    Dim cw As String

    For Each S In Selection
        cw = cw & S.Name & vbLf
    Next S
    MsgBox cw
 End Sub
(???) 2018/08/09(木) 17:57

???様
前述の通り同一名が多い場合には名前を知っても意味がないので、あまり乗り気ではなかったのですが、これを見て気が付きました。
リストボックスを表示してそこから選ぶようにすれば同一名が少ない場面では十分に使えそうです!
ありがとうございました。
(にゅるん) 2018/08/09(木) 18:07

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.