電子書籍の厳選無料作品が豊富!

1.
B列( B8 以降 )のセルを一度ダブルクリックしたとき「○」を表示。
再度、ダブルクリックすると「×」を表示。
B8⇒B9⇒B10・・・と続きます。

2.
この時、次のような条件で B1 の値を変化させたい。
基本的なものとして成功パターンと不成功パターンがあり、
成功⇒[ ○○ ]
不成功⇒ [ × ] [ ○× ]
この3つです。
[ × ] が出現した段階でひとつのパターンが終了するので、 [ × ○]というパターンは考慮しません。
a.
まず、○が最初に一個出現した段階で B1=B1×2にしたい。
「○ が最初に出現」の意味は、
 最初が ○ の場合のほか、 
 ×○ の場合も「最初の○」ですし、
 ○○○ のように並んだ場合も、右端の○は「最初の○」となります。
 ○が2個連続したら成功パターン[ ○○ ]成立となり B1=C1(初期値)に戻したい。
 そして、○の出現個数を0に戻し最初から数え直す。
b.
  不成功パターンの場合、 [ × ] [ ○× ]というパターンで一区切りとします。
  【B1=C1 のとき】⇒このパターンが 3回 連続したら、 B1=C1 ×2にしたい。
 (ア) [ × ] [ × ] [ × ]
 (イ) [ × ] [ × ] [ ○× ]
 (ウ) [ × ] [ ○× ][ ○× ]
 (エ) [ ○× ][ ○× ][ ○× ]
 (オ) [ ○× ][ ○× ][× ]
 (カ) [ ○× ][ × ][ × ]
 の6パターンが想定されます。
  【B1=C1 ×2のとき】⇒このパターンが 2回 連続したら、 B1=C1 ×2にしたい。
 (ア) [ × ] [ × ]
 (イ) [ × ] [ ○× ]
 (ウ) [ ○× ][ × ]
 (エ) [ ○× ][ ○× ]
 の4パターンが想定されます。

以前、教えていただいた内容を参考にさせていただきながら、あれこれ考えてみたのですが、変数の使い方などが良くわからずお手上げ状態です。
また、誤ってダブルクリックしてしまった場合の解決策などありましたら、合わせて教えていただけると助かります。

A 回答 (2件)

>B列( B8 以降 )のセルを一度ダブルクリックしたとき「○」を表示。


>再度、ダブルクリックすると「×」を表示。
ダブルクリックすると
「○」または「×」を表示
するということなのですよね。
例えばB8を、ダブルクリック(1回目)すると、「○」が表示されます。
次にダブルクリック(2回目)すると、「×」が表示されます。
「○○」「×○」なんてのは、表示されないのじゃないですか?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

>「○○」「×○」なんてのは、表示されないのじゃないですか?

おっしゃるとおりです。
非常にややこしい内容でして、当方の説明にも不備が生じているようです。
その点、まずお詫び申し上げます。
今回、一から教えを請うつもりで敢えて記さなかったのですが、以前、こちらで教えていただいた内容によると、
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
のプロシージャ内の以下のような記述で、ひとつのセルに○を表示したり、それを変更したりできるようです。
If Intersect(Target, Range("B:B")) Is Nothing Then Exit Sub
Cancel = True
With Target
If .Value = "" Or .Value = "×" Then
.Value = "○"
Else
.Value = "×"
End If
End With
End If

その結果として、たとえば
B8=○
B9=×
B10=○
のような表示になったとします。
質問文の書き方が悪かったのですが、「○○」「×○」ではなく、
縦に



×

のような並びになります。
そして、【B1=C1 のとき(ア)~(カ)のようなパターンが出現したら、B1=C1 ×2にしたい。
このようなことです。
しかし、読み返してみると非常にわかりづらい文章ですね。
(ア) [ × ] [ × ] [ × ]などは、まだご理解いただけると思います。
×
×
×
という並びです。
(イ) [ × ] [ × ] [ ○× ]は、ややこしいですが、
×
×

×
と4つのセルが並んだ場合を示しています。
(エ) [ ○× ][ ○× ][ ○× ]なら、

×

×

×
と6つのセルが並んでいる状態。
【 [ × ] [ ○× ]というパターンで一区切り】というのは、こうした意味でした。
[ × ] でも[ ○× ]でも、ひとつの不成功と捉えるわけですが、やはり説明に不備があったと評価せざるを得ないようです。
おかげさまで気づくことができました。
面倒からずに補足質問していただき感謝いたします。

お礼日時:2016/08/30 00:34

No.1様への返信で、やりたい事はだいたいわかりましたが。


サンプルコードでは、×にするには一旦○になっていないとなりません。
つまり×にするには、さかのぼってダブルクリックしなくてはいけないという事です。
入力順のパターンでB1の値を変更していく処理で、この仕様自体が無理なのではと思います。

>誤ってダブルクリックしてしまった場合の解決策などありましたら
誤って以前に問題があると思います。

この事を実現する為にダブルクリックでの○×でない方法を考えた方がいいと思います。
成功不成功とB1の数値の関係(業務?の意味)がよくわからないので、代替え案までは浮かびませんが、コードを書いていてふと疑問というか出来ないのでは、と思いました。

回答にはなっていませんが、ちょっと考えてみて下さい。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

お礼日時:2016/09/27 16:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!