- ベストアンサー
エクセル VBA
エクセル VBA セルA1に ”□はい □いいえ”とあり それをダブルクリックすると ?フォームが表示されチェックしますか?と聞きOKなら ■ はい となり 次に続けて ?フォームが表示されチェックしますか?と聞きOKなら ■いいえ となるような マクロの記述は出来るのでしょうか? すいません! 教えてください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>これを応用にして 例えば >□尿検査 □血液検査としたいのです! >これだと >2つとも■尿検査 ■血液検査 >にしたいときに出来ないので教えてください メッセージボックスは出ないです。 A1セルをダブルクリックする毎に 「□尿検査 □血液検査」⇒「■尿検査 □血液検査」⇒ 「□尿検査 ■血液検査」⇒「■尿検査 ■血液検査」⇒「□尿検査 □血液検査」 と切り替わります。参考に >これを応用にして・・・教えてください 応用するのは貴方です。がんばって応用してください。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim v As Variant, myR As Variant With Target If .Address <> "$A$1" Then Exit Sub v = Array("□尿検査 □血液検査", "■尿検査 □血液検査", _ "□尿検査 ■血液検査", "■尿検査 ■血液検査") myR = Application.Match(.Value, v, 0) If IsError(myR) Then myR = 0 .Value = v(myR Mod 4) End With Cancel = True End Sub
その他の回答 (4)
- watabe007
- ベストアンサー率62% (476/760)
>次に続けて >?フォームが表示されチェックしますか?と聞きOKなら >■いいえ となるような ん?! 私の回答は "次に続けて" 続けて表示されるようにはなっていないです。 間違った回答をしましたので捨ててください。
お礼
ありがとうございます 上手くいきました。 ただ □はい⇒■はい 次に □いいえ⇒■いいえ にするには どうすれば いいですか? これを応用にして 例えば □尿検査 □血液検査 としたいのです! これだと 2つとも■尿検査 ■血液検査 にしたいときに 出来ないので 教えてください
補足
早速のお返事ありがとうございました 私も質問内容が 間違っていました Fromではなく メッセージ表示でした!! モジュールを作成して 貼り付ければ良いのですか?
- watabe007
- ベストアンサー率62% (476/760)
シートモジュールに貼り付けてお試しを Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) With Target If .Address <> "$A$1" Then Exit Sub If MsgBox("チェックしますか?", vbYesNo + vbQuestion, "問合せ") = vbYes Then .Value = "■はい □いいえ" Else .Value = "□はい ■いいえ" End If End With Cancel = True End Sub
- nattocurry
- ベストアンサー率31% (587/1853)
「フォーム」という文字の前が文字化けしているようですね。 やりたいことも、この文章ではよく解りません。 もっと解りやすい質問をお願いします。
補足
すいませんでした。! A1セルに □はい □いいえ があり そこを ダブルクリックすると メッセージボックスが表示され ”はいをチェックしますか?”とOKとクリックしたら 次のメッセージボックスが表示され ”いいえをチェックしますか?”とNOをクリックしたら A1セルには ■はい □いいえ というように表示させたいです。 としたいです。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'セルをダブルクリックすると、・→○→△→×→・と変更する。 Dim S1 As String Dim S2 As String Dim S01 As String Dim S02 As String Dim S03 As String Dim S04 As String S1 = "□" S2 = "■" S01 = "・" S02 = "○" S03 = "△" S04 = "×" On Error GoTo ERR_12 sCheckXY S1, S2 sCheckX1234 S01, S02, S03, S04 sChangeXY S1, S2 Exit Sub ERR_12: End End Sub
- KURUMITO
- ベストアンサー率42% (1835/4283)
どのようなことを行うためにマクロが必要なのでしょう。具体的にその結果がどう使われるのか教えてくれませんか?。マクロである必要性がよくわかりません。
補足
すいませんでした。! 1回1回 □のマークを■にするのには マクロしかないかと思い質問しました。 A1セルに □はい □いいえ があり そこを ダブルクリックすると メッセージボックスが表示され ”はいをチェックしますか?”とOKとクリックしたら 次のメッセージボックスが表示され ”いいえをチェックしますか?”とNOをクリックしたら A1セルには ■はい □いいえ というように表示させたいです。 としたいです。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'セルをダブルクリックすると、・→○→△→×→・と変更する。 Dim S1 As String Dim S2 As String Dim S01 As String Dim S02 As String Dim S03 As String Dim S04 As String S1 = "□" S2 = "■" S01 = "・" S02 = "○" S03 = "△" S04 = "×" On Error GoTo ERR_12 sCheckXY S1, S2 sCheckX1234 S01, S02, S03, S04 sChangeXY S1, S2 Exit Sub ERR_12: End End Sub
お礼
すいません 何度も回答いただき 感謝しています。 頑張って勉強していきます。