[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『「結合セルに」[デッキィ] について』(デッキィ)
投稿
[[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.