![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
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パターンが想定されます。
以前、教えていただいた内容を参考にさせていただきながら、あれこれ考えてみたのですが、変数の使い方などが良くわからずお手上げ状態です。
また、誤ってダブルクリックしてしまった場合の解決策などありましたら、合わせて教えていただけると助かります。
No.1ベストアンサー
- 回答日時:
>B列( B8 以降 )のセルを一度ダブルクリックしたとき「○」を表示。
>再度、ダブルクリックすると「×」を表示。
ダブルクリックすると
「○」または「×」を表示
するということなのですよね。
例えばB8を、ダブルクリック(1回目)すると、「○」が表示されます。
次にダブルクリック(2回目)すると、「×」が表示されます。
「○○」「×○」なんてのは、表示されないのじゃないですか?
ご回答ありがとうございます。
>「○○」「×○」なんてのは、表示されないのじゃないですか?
:
おっしゃるとおりです。
非常にややこしい内容でして、当方の説明にも不備が生じているようです。
その点、まずお詫び申し上げます。
今回、一から教えを請うつもりで敢えて記さなかったのですが、以前、こちらで教えていただいた内容によると、
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つのセルが並んでいる状態。
【 [ × ] [ ○× ]というパターンで一区切り】というのは、こうした意味でした。
[ × ] でも[ ○× ]でも、ひとつの不成功と捉えるわけですが、やはり説明に不備があったと評価せざるを得ないようです。
おかげさまで気づくことができました。
面倒からずに補足質問していただき感謝いたします。
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_08.png?e8efa67)
No.2
- 回答日時:
No.1様への返信で、やりたい事はだいたいわかりましたが。
サンプルコードでは、×にするには一旦○になっていないとなりません。
つまり×にするには、さかのぼってダブルクリックしなくてはいけないという事です。
入力順のパターンでB1の値を変更していく処理で、この仕様自体が無理なのではと思います。
>誤ってダブルクリックしてしまった場合の解決策などありましたら
誤って以前に問題があると思います。
この事を実現する為にダブルクリックでの○×でない方法を考えた方がいいと思います。
成功不成功とB1の数値の関係(業務?の意味)がよくわからないので、代替え案までは浮かびませんが、コードを書いていてふと疑問というか出来ないのでは、と思いました。
回答にはなっていませんが、ちょっと考えてみて下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 『◯と●の帰納法』 2 2023/04/19 20:57
- Excel(エクセル) エクセルの関数式を教えてください。 2 2022/11/29 21:09
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- その他(Microsoft Office) IF関数について教えてください 2 2022/05/10 13:31
- Excel(エクセル) エクセルVBAでセルに表示されているとおりの数値を取得したい(時間の計算結果) 1 2022/03/30 17:52
- Excel(エクセル) エクセル関数教えてください 3 2022/06/21 10:22
- Excel(エクセル) Excelについて A1からA12まで、1月〜12月と入力し、 B1からB12の範囲に、C1とD1に 4 2022/05/26 22:48
- Excel(エクセル) エクセルで月末、月初の判定をしたい。 4 2022/05/18 23:22
- Excel(エクセル) エクセルで納品書を作成中ですが、関数を教えて下さい。 2 2022/09/05 10:32
- Excel(エクセル) Excel 関数 数式 について 2 2022/09/02 21:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ユーザーフォームのラベルに日...
-
DataGridViewでyyyy/MM/dd
-
【VBA】土日をスキップして日付...
-
大文字Oと0の違い
-
エクセルのVBAで日付を検索し転...
-
MonthView 日付取得方法
-
エクセルVBAで機械の稼働時間を...
-
DataGridViewの和暦表示について
-
VB 日付範囲チェック
-
1本あたり○円と表示する時どの...
-
Eclipseの対応する括弧の強調表...
-
VBでDate型の大小比較がうまく...
-
VBA 日付、未来の日付はエラー...
-
3人のじゃんけんのプログラム
-
テキストボックスに今日の日付...
-
VBAで当月の1日を表示するには...
-
DateTimePickerを西暦表示にす...
-
テキストボックスにカレンダー...
-
最近、iPhoneがおかしいです 私...
-
iPhoneアプリのLINEの音が鳴ら...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ユーザーフォームのラベルに日...
-
エクセルのVBAで日付を検索し転...
-
DataGridViewでyyyy/MM/dd
-
Eclipseの対応する括弧の強調表...
-
JSPからYYYYMMDDで日付入力する
-
「eclipseで作るカレンダー(ス...
-
VisualBasic6.0のFormat関数で...
-
今日より前の書き方 マクロ
-
【VBA】土日をスキップして日付...
-
1本あたり○円と表示する時どの...
-
3人のじゃんけんのプログラム
-
システム日付とは?
-
VBAで当月の1日を表示するには...
-
【Excel VBA】条件に合った行の...
-
VB6.0 のformat関数について
-
テキストボックスにカレンダー...
-
VBA 日付、未来の日付はエラー...
-
コンボボックスに日付を表示する
-
VB 日付範囲チェック
-
指定した日付が、その月の第何...
おすすめ情報