[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『図形がくっついてしまう』(ss)
Excel2013
Windows7
図形で四角と直線を書いて、
直線の端点を編集で、四角の近くに持っていくと、
四角の4辺に小さな点が表示されて、直線がその点にくっついてしまいます。
(丸やその他の図形でも同じ)
細かい図面を書こうとすると、この機能が逆にジャマになってしまうのですが、
このお節介を止める方法が分かりません。
オプション当たりにあるかと思いましたが、見あたらないようです。
どなたか、おわかりの方はいらっしゃいますでしょうか?
設定は描画ツールの「配置」→「図形に位置を合わせる」がONになっているのではないでしょうか? そうなら、OFFにしてください。 [Alt]キーを押しながら操作すれば解除された動作になります。 (Hatch)
「図形を位置に合わせる」がONでもOFFでも、くっつきます。
「Alt」キーを押しながら操作すると、今度はグリッドにくっついてしまうので、これも困ります。
(あすなろ)
標準モジュールに
Private shrng As ShapeRange
Sub シェイプの移動() 'アクチィブセル付近にボタンが作られる。
Dim rtop As Long
Dim rlft As Long
rtop = ActiveCell.Top
rlft = ActiveCell.Left
Call ボタンの削除
With ActiveSheet
With .Buttons.Add(10 + rlft, 10 + rtop, 110, 35) 'Left:=10, Top:=10, Width:=110, Height:=35
.Name = "仮ボタン1"
.Caption = "図を選択後" & vbNewLine & "押して下さい!"
.OnAction = "アクション"
End With
With .Buttons.Add(125 + rlft, 10 + rtop, 70, 20)
.Name = "仮ボタン2"
.Caption = "終了!"
.OnAction = "ボタンの削除"
End With
With .Buttons.Add(10 + rlft, 50 + rtop, 110, 35)
.Name = "仮ボタン3" '.Caption = "移動レベルを↑↓で" & vbNewLine & "選択後押して下さい!"
.OnAction = "アクション"
.Visible = False
End With
With .Buttons.Add(150 + rlft, 35 + rtop, 20, 20)
.Name = "仮ボタン4"
.Caption = "↑"
.OnAction = "アクション"
.Visible = False
End With
With .Buttons.Add(150 + rlft, 65 + rtop, 20, 20)
.Name = "仮ボタン5"
.Caption = "↓"
.OnAction = "アクション"
.Visible = False
End With
With .Buttons.Add(125 + rlft, 50 + rtop, 20, 20)
.Name = "仮ボタン6" '.Caption = "→"
.OnAction = "アクション"
.Visible = False
End With
With .Buttons.Add(175 + rlft, 50 + rtop, 20, 20)
.Name = "仮ボタン7"
.Caption = "→"
.OnAction = "アクション"
.Visible = False
End With
End With
End Sub
Sub ボタンの削除()
Dim i As Long
With ActiveSheet
On Error Resume Next
For i = 1 To 7
.Buttons("仮ボタン" & i).Delete
Next i
On Error GoTo 0
End With
Set shrng = Nothing
End Sub
Sub アクション()
Dim i As Long
Dim sv
With ActiveSheet
sv = Split(.Buttons("仮ボタン3").Caption, vbNewLine)
Select Case Right(.Buttons(Application.Caller).Name, 1)
Case 1
If Not VarType(Selection) = vbObject Then
.Buttons("仮ボタン1").Caption = "図を選択後" & vbNewLine & "押して下さい!"
Set shrng = Nothing
For i = 3 To 7
.Buttons("仮ボタン" & i).Visible = False
Next i
MsgBox "図を選択して下さい": Exit Sub
End If
Set shrng = Selection.ShapeRange
For i = 3 To 6
.Buttons("仮ボタン" & i).Visible = True
Next i
.Buttons("仮ボタン1").Caption = Selection.ShapeRange.Count & " 個を選択中"
.Buttons("仮ボタン3").Caption = "移動レベルを↑↓で" & vbNewLine & "選択後押して下さい!"
.Buttons("仮ボタン6").Caption = "1"
ActiveCell.Activate
Case 2
.Buttons("仮ボタン3").Caption = "移動レベルは" & vbNewLine & 1
Case 3
If .Buttons("仮ボタン3").Caption = "移動レベルを↑↓で" & vbNewLine & "選択後押して下さい!" Then
.Buttons("仮ボタン3").Caption = "移動レベルは" & vbNewLine & .Buttons("仮ボタン6").Caption
.Buttons("仮ボタン6").Caption = "←"
.Buttons("仮ボタン7").Visible = True
Else
.Buttons("仮ボタン7").Visible = False
.Buttons("仮ボタン6").Caption = 1
.Buttons("仮ボタン3").Caption = "移動レベルを↑↓で" & vbNewLine & "選択後押して下さい!"
End If
Case 4
If Right(sv(1), 1) = "!" Then
.Buttons("仮ボタン6").Caption = .Buttons("仮ボタン6").Caption + 1
Else
shrng.IncrementTop sv(1) * -0.75
End If
Case 5
If Right(sv(1), 1) = "!" Then
.Buttons("仮ボタン6").Caption = IIf(.Buttons("仮ボタン6").Caption - 1 < 1, 1, .Buttons("仮ボタン6").Caption - 1)
Else
shrng.IncrementTop sv(1) * 0.75
End If
Case 6
If Right(sv(1), 1) <> "!" Then
shrng.IncrementLeft sv(1) * -0.75
End If
Case 7
If Right(sv(1), 1) <> "!" Then
shrng.IncrementLeft sv(1) * 0.75
End If
End Select
End With
End Sub
(初)
1.「枠線に合わせる」をONにします。
2.「図形を位置に合わせる」をOFFにします。
3.図形描画(たとえば直線)を選び、Altを押しながら描画開始位置にマウスを合わせ、左クリックを押します。
4.そのままAltキーを押しながら次に、合わせたい位置にマウスを合わせ、左クリックで描画完了です。
5.Altキーを押しながら、同時にシフトキーも押しながらマウスを動かせば、終点側の位置決めを水平・垂直・45度合わせで吸着されずにできます。
これで、Altを押しながらで自由に位置決めでき、グリッドに合わせたければAltを離す、という使い方ができるかと思います。
このやり方の唯一の欠点は、グリッドとテキストボックスなどが近い位置で、グリッドに合わせるという使い方をする場合は、ズームを400%にしないとテキストボックス側に吸着してしまうくらいかと思います。
(こっすぃ〜♪) 2014/05/23(金) 22:17
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.