[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBEの修正方法を教えてください。』(素人)
いつもお世話になっております。
Excelの勉強中ですが、まだまだ不明点多いため教えて頂きたく。
文字に合わせてWクリックをすることで〇を付けたり、消したりする方法をネットで探し、コードに張り付けたのですが、「有」「無」「可」「否」の個所を名前の管理で指定して、そこまでは順調だったのですが、2文字以上(セルの結合あり)『例:権利や更新履歴』、かつ文字に被らないように〇(オーバル)(※□でも構いません)で印をつけたいです。
コードの意味もまだまだ理解ができず、お恥ずかしいのですがどうしたら印をつけれるようになるのか教えてほしいです。よろしくお願いいたします。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Mark の複数の範囲のセル/結合セルに Wクリックで 黒○ つける/消す Dim Ad As String Dim Lp As Single, Tp As Single, Hp As Single Dim Ov As Oval, Mark As Range
Set Mark = Range("有無可否") '範囲の複数指定 If Intersect(Target, Mark) Is Nothing Then Exit Sub '範囲外は無視
With Target
Ad = .Address: Hp = .Height: Tp = .Top If .Height > .Width Then Hp = .Width '縦長結合の場合に備える Lp = .Left + ((.Width / 2) - (Hp / 2))
End With Cancel = True 7 With ActiveSheet .Unprotect '★ For Each Ov In .Ovals If Not (Intersect(Target, Ov.TopLeftCell) Is Nothing) Then '既存○検出 Ov.Delete: Ad = "": ' Exit For '◎重複があるなら外し、削除優先する End If Next If Ad <> "" Then With .Ovals.Add(Lp, Tp, Hp, Hp) .Interior.ColorIndex = xlColorIndexNone .Border.Color = vbBlack ' 黒○にする End With End If Protect , True, False, False '★ End With
End Sub
< 使用 Excel:Excel2016、使用 OS:Windows10 >
(γ) 2020/08/06(木) 09:09
セル内に〇や□おさまらなくてもかまいせません。きれいな〇ではなく、オーバル(?)の楕円形でも構わないのです。
欲を言えば図形の挿入ではなく、今回のマクロのような形でWクリックで表示されたり削除したりがしたいです。(※ネットで図形のコードがあったのですが、やってみたら少しWクリックで表示・削除がやりにくかったので、こちらのコードのほうが扱いやすかったため)
そのような方法がなければ諦めます。
分かる方がいらっしゃいましたらご教示願います。
(素人) 2020/08/07(金) 08:12
文字が入っているセルに対してoval(楕円図形)を書き込めば、
当然、どこか文字に掛かってきますよ。
何か、話が通じていないですね。
(そもそも、対象セルにはどの程度の文字数が入っているんですか?
同一セルに図形なり何なりを挿入しないといけないのですか?)
文字に掛からないことを最優先するなら、Rectangleと言うことかも知れないが、
それなら、太罫線を使うべきです。
これなら、図形と違って、特定の図形の指定をしなくて済む分、
書き込みや消去の操作が簡単にできます。
(γ) 2020/08/07(金) 09:42
With ActiveSheet.Shapes(Application.Caller).Line If .Visible Then .Visible = msoFalse Else .Visible = msoTrue End If End With
(ゼットライザー) 2020/08/07(金) 14:44
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.