[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『結合セルに』(デッキィ)
またまたお世話になります。
この掲示板を参照し、セルC3:AZ100にダブルクリックで○の入力をさせていただいています。 しかし、困った事にセルが結合していると実行エラー13『型が一致しません』 となりうまく入力する事が出来ません。 どうしても結合したセルに○を入れたいのですがうまく出来る方法は無いでしょうか? 又、空白⇒○⇒◎⇒空白の順番に入力する事は可能でしょうか?
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("C3:AZ100")) Is Nothing Then Exit Sub
Cancel = True
If Target.Value = "" Then
Target.Value = "○"
ElseIf Target.Value = "○" Then
Target.Value = ""
End If
End Sub
よろしくお願いします。
[エクセルのバージョン] Excel2003 [OSのバージョンの例] WindowsXP
'==================================================================================
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
本来なら、このmyarrayに相当する配列データは、どこかのセルに置いといて、 変更(循環する文字列が更に追加されても)してもコードの変更をしなくても済むように すると思いますけど・・・。
とりあえずこれで試してみてください
ichinose
ichinose様有難うございます。
早速試してみました。
ばっちりです!!
循環する文字列は変わることが無い為問題ありません。
1点追加質問させてください。
ダブルクリックで入力しなくてよいセルを省こうと思い該当セルを書き出し、下記コードを
>If Intersect(Target, Range("C3:AZ100")) Is Nothing Then Exit Sub
↓↓
>If Intersect(Target, Range("AD10:AE11", "AN10:AO11")) Is Nothing Then Exit Sub
に変えましたが3箇所以上になると
>If Intersect(Target, Range("AD10:AE11", "AN10:AO11", "AD12:AE13")) Is Nothing Then Exit Sub
コンパイルエラーとなってしまいます。
コードの変更方法に問題が有るのでしょうか?
それともまったく別のコードが必要になるのでしょうか?
お手数ですがよろしくお願いします。
(デッキィ)
If Intersect(Target, Range("AD10:AE11,AN10:AO11,AD12:AE13")) Is Nothing Then Exit Sub
こうでは?
(みやほりん)(-_∂)b
(みやほりん)様 出来ました。有難うございました!! (デッキィ)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.