[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『結合セルに』(デッキィ)
またまたお世話になります。
この掲示板を参照し、セル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.