ここから本文です

ある指定のセルをダブルクリックするごとに文字が変わるようにしたいです。 ただ...

tak********さん

2019/1/2916:50:35

ある指定のセルをダブルクリックするごとに文字が変わるようにしたいです。
ただ、指定のセルが結合されたもののため、
下記のコードでは「型が一致しません」とエラーが出てしまいます。

なにかいい方法はありますか?

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If ActiveCell.Column = 9 Then
If Target.Value = "" Then
Target.Value = "済"
Cancel = True
Else
If Target.Value = "未" Then
Target.Value = "済"
Cancel = True
Else
If Target.Value = "済" Then
Target.Value = "未"
Cancel = True
End If
End If
End If

Else

この質問は、活躍中のチエリアン・専門家に回答をリクエストしました。

閲覧数:
61
回答数:
3
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

tra********さん

リクエストマッチ

2019/1/2917:28:11

結合セルの値は、結合された範囲の左上角のセルに格納されます。
ので、↓のようなコードにするのが一般的。


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Set rng = Intersect(Target, Columns(9))
If rng Is Nothing Then Exit Sub
Cancel = True
With Target.Cells(1)
Select Case .Value
Case Is = ""
.Value = "済"
Case Is = "未"
.Value = "済"
Case Is = "済"
.Value = "未"
Case Else
Cancel = False
End Select
End With
End Sub

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

プロフィール画像

カテゴリマスター

tai********さん

2019/1/2923:53:52

こんな感じでは?



Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target(1).Column = 9 Then
Cancel = True
Target(1) = IIf(Target(1) = "", "済", IIf(Target(1) = "済", "未", "済"))
End If
End Sub

chi********さん

2019/1/2917:12:51

同じ対象に対して条件を指定するんだから Select Caseの
方がいいのでは?

あと全部「Cancel = True」なら最後に入れればいいと思
います。

With Target
If .Column <> 9 Then Exit Sub
Select Case .Value
Case "": .Value = "済"
Case "済": .Value = "未"
Case "未": .Value = "済"
End Select
End With
Cancel = True

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる