[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『「結合セルに」[デッキィ] について』(デッキィ)
投稿
[[20091210014933]] 『結合セルに』(デッキィ)
について...
久しぶりにお世話になります。
以前こちらで下記コードを教えていただきました。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim idx As Variant Dim myarray As Variant If Intersect(Target, Range("C3:AZ100")) Is Nothing Then Exit Sub If Target.MergeCells Then Set Target = Target.Cells(1, 1) myarray = Array("", "○", "◎") Cancel = True idx = Application.Match(Target.Value, myarray, 0) If IsError(idx) Then idx = 1 Else idx = idx Mod (UBound(myarray) + 1) Target.Value = myarray(idx) Erase myarray End Sub
これはそのままに新たにA3:B100をダブルクリックした場合、
("", "△", "×")が表示される様にしたいのですが、どの様に修正して良いのか
分かりません。
どなたか教えて下さい。
よろしくお願いします。
< 使用 Excel:Excel2013、使用 OS:Windows10 >
Targetをプロシジャ内で変えているのが好みではないのですが、とりあえず少ない修正で済ませる案なぞ。 ★印の行だけ変えてます。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim idx As Variant Dim myarray As Variant If Intersect(Target, Range("A3:AZ100")) Is Nothing Then Exit Sub '★ If Target.MergeCells Then Set Target = Target.Cells(1, 1) myarray = IIf(Target.Column < 3, Array("", "△", "×"), Array("", "○", "◎")) '★ Cancel = True idx = Application.Match(Target.Value, myarray, 0) If IsError(idx) Then idx = 1 Else idx = idx Mod (UBound(myarray) + 1) Target.Value = myarray(idx) Erase myarray End Sub
A,B列は処理対象外にしていた箇所を、A,B列も含めるようにした事と、A,B列とC列以降の場合で文字列を変えた事。 たったこれだけの話ですよ。
(???) 2018/10/11(木) 13:18
たったこれだけの事が理解できず申し訳ありません。
無事にできるようになりました。
今後に参考に教えて頂きたいのですが、セルの範囲を細かく指定したい場合
Column<3で指定されていますが、セル番地で指定する方法は有りますか?
Target, Range("A3:B100")
に書き換えたら、できるのかと思いましたがコンパイルエラーになりました。
おかと違いでしたらすいません。
(デッキィ) 2018/10/11(木) 14:36
そして、セルがColumnプロパティのような単純列で決まらないならば、Addressプロパティで $A$1 とか判りますから、こっちをSelect Case文でも使って区別すれば良いでしょう。 他にも、範囲内かどうかIntersect文で調べているわけで、これを応用しても良いですし、ColumnとRowの2つのプロパティから判定しても良いです。 いろいろ調べて、試してみてください。
(???) 2018/10/11(木) 16:01
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.