• ベストアンサー

エクセル VBA

エクセル VBA セルA1に ”□はい □いいえ”とあり それをダブルクリックすると ?フォームが表示されチェックしますか?と聞きOKなら ■ はい となり   次に続けて ?フォームが表示されチェックしますか?と聞きOKなら ■いいえ となるような マクロの記述は出来るのでしょうか? すいません! 教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.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

pop2003
質問者

お礼

すいません 何度も回答いただき 感謝しています。 頑張って勉強していきます。

その他の回答 (4)

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.4

>次に続けて >?フォームが表示されチェックしますか?と聞きOKなら >■いいえ となるような ん?! 私の回答は "次に続けて" 続けて表示されるようにはなっていないです。 間違った回答をしましたので捨ててください。

pop2003
質問者

お礼

ありがとうございます 上手くいきました。 ただ □はい⇒■はい 次に □いいえ⇒■いいえ にするには どうすれば いいですか? これを応用にして 例えば □尿検査 □血液検査 としたいのです! これだと 2つとも■尿検査 ■血液検査 にしたいときに 出来ないので 教えてください

pop2003
質問者

補足

早速のお返事ありがとうございました 私も質問内容が 間違っていました Fromではなく メッセージ表示でした!! モジュールを作成して 貼り付ければ良いのですか?

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.3

シートモジュールに貼り付けてお試しを 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)
回答No.2

「フォーム」という文字の前が文字化けしているようですね。 やりたいことも、この文章ではよく解りません。 もっと解りやすい質問をお願いします。

pop2003
質問者

補足

すいませんでした。! 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)
回答No.1

どのようなことを行うためにマクロが必要なのでしょう。具体的にその結果がどう使われるのか教えてくれませんか?。マクロである必要性がよくわかりません。

pop2003
質問者

補足

すいませんでした。! 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

関連するQ&A

  • エクセルのフォームのチェックボックスについて

    エクセルのフォームのチェックボックスについて あるセルにフォームのチェックボックスを付け、 そのセルに、true・falseの条件設定をしました。 その設定を利用して、条件式書式の設定で、 trueの時にとなりのセルを赤にするようにしました。 以上のような行が1500行あります。 1つ1つ設定するのが困難のため、 マクロが使えるフォームのチェックボックスを使用しようと試みております。 しかし、マクロ内のVBAの記述方法が解りません。(1行だけなら解ります) ご存知の方がおられましたら教えてください。 よろしくお願いいたします。

  • エクセルVBAで出来ますか??

    はじめまして。 私の質問を読んで下さりありがとうございます。 上司にエクセルで少々複雑な?仕組みを作るように指示されたのですが、私自身はエクセルに詳しくはなく、社内にも詳しい人がいなくて困っています。 「Excel VBA パーフェクトマスター」という本を購入して勉強を始めたのですが、あまりに情報が多すぎてどこを参考にすればよいのかすら分かりません・・・。 来週末までに作らないといけないため休日返上でお仕事しながら勉強していますが、さっぱり分からなくて泣きそうです・・。 エクセルVBAに詳しくて親切な方がいらっしゃいましたら、無理のない範囲で構いませんので、どうか教えて頂けないでしょうか。宜しくお願い致します。 前置きが長くなってしまいましたが、具体的には以下のような処理はどうすれば良いのかが分かりません。 (1) 「Sheet1」のセル[A2]をダブルクリックすると「Sheet3」が表示される。 (2) 「Sheet3」のセル[D5]をダブルクリックすると「Sheet2」のセル[C2]の値(文字か数字)が「Sheet1」のセル[A2]と「Sheet4」のセル[B5]に表示され、更に「Sheet5」のセル[F10]の数値が「Sheet1」のセル[N5]に表示される。 (3) 上記の一連の処理が完了すると「Sheet1」が表示される。(「Sheet1の画面に戻る) 以上のような処理を複数組み合わせればできそうなのですが、このような事はエクセルVBAで出来るでしょうか? (私には出来るのか出来ないのかすら分かりません。命令した上司も分かってないと思います。) 出来るか出来ないかだけでも結構なので、どうか教えてください。 もし可能なら、具体的なアドバイスを頂けると、とても助かります。 どうか宜しくお願い致します。

  • EXCEL VBAでこんなことがしたい。(2)

    EXCELの特定のセルを選択して、ダブルクリックすると フォームが現れて、別の情報を入力する、ということはできますか。 たとえばある人名が書いてあるセルを選択してダブルクリックすると フォームが現れて、性別、年齢、血液型を入力できる、とか。

  • Excelで簡単入力

    仕事で使っているExcelのアンケートフォームに簡単に入力できるようにする為、 特定のセルをクリックするごとに「○→△→無し」と 順番に繰り返し切り替えられるマクロを作りたいと思っています。 ですが、記述をどのようにしたらいいのかよくわかりません。 どなたかExcelやVBAに詳しい方教えて頂けませんでしょうか? 参考になるサンプルやそのままに近い記述が載っているサイト等があれば、 よりわかりやすいのですが。 よろしくお願いします。

  • エクセル VBA セルをクリックすると色が変わる

    いつも皆様には大変お世話になっております。 早速ですが、VBAでセルをクリック(もしくはダブルクリック)するとそのセルの色が変わるといったようなマクロが組めるでしょうか。 色を変えたいのは、A1~A4までの4個のうち1個だけなのでA1がクリックされればA2~A4までは『色なし』にしたいのです。 そんなことは出来るでしょうか? よろしくお願いいたします。

  • EXCEL VBAを使ってマクロを組んだのですが、消えてしまいます。

    VBAを使ってマクロをEXCELに組んだのですが、貼り付け先のデータをダブルクリックするとデータが消えてしまいます。 組んでいるマクロは (前提) ファイルA・・コピー元データ ファイルB・・貼り付け先データ (内容) Aファイルでマクロを実行すると、Aファイルの内容がBファイルにコピーされるというものです。 Aファイルの元データは数式のため、Aファイル内でいったん値として貼り付けてから再度コピーして、Bファイルに貼りつけています。 Aファイルは自分で作成したものですが、Bファイルは他社作成のため、もろもろ変更ができません。 Aファイルにもロックが必要のため、保護をかけています。(ロック、表示ともに) マクロ実行後、Bファイルの貼りつけされたデータをダブルクリックすると、ダブルクリックしたセル内容が消えてしまいます。 まったく原因がわからず困っています。すみませんがどなたかわかるかたお願いいたします。

  • Excel VBA

    Excel VBAのテキストを片手に色々(仕事で必要で・・・)試しています。そこで、セルをダブルクリックしたときに実行するマクロを作成してみました。(テキストにしたがって)コピー元シートのA2番地に入力されている文字と同じ文字を、Shieet1の任意のセルをダブルクリックすると自動的に入力されるマクロです。ですが、コピー元の文字だけではなく書式も一緒に反映されるので、任意のセルに書式が設定されている場合、書式が崩れてしまいます。なので、どなたか 文字だけ もしくは 書式だけ を自動実行する方法を教えてください。 なかなか伝わりにくい文章で申し訳ありませんが・・・。宜しくお願いいたします。ちなみに↓↓VBの記述を貼り付けます。 Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) Cancel = True Worksheets("コピー元").Range("A2").Copy Destination:=Target End Sub

  • エクセルVBAの記述について教えて下さい。

    エクセルVBAの記述について教えて下さい。 セルA1,B1,C1,D1,E1すべてにデータが入力されているかどうかを調べる記述を教えて下さい。 ちなみに・・・ 入力が不足しているときはmsgで『入力が不足しています』のダイアログ。 すべて入力されているときはmsgで『入力OK』のあとにCallで別のマクロを呼び込む ような記述が知りたいです。 どなたかご教授お願い致します。 【環境】 OS:Windows7 Excel:2003

  • エクセルVBA ダブルクリックで数字を加算

    お世話になります。 エクセルのVBAに関してご質問させてください。 該当セルをダブルクリックするごとに、数字を加算させてゆくようなマクロを組みたいと考えています。 ご存じのかたがおられましたら、なにとぞよろしくお願いいたします。

  • エクセルVBAの質問です

    エクセルユーザーフォームをモードレスで起動した状態で、セルを手動で操作しユーザーフォームをクリックしたらマクロを実行する。 ということをしたいです。 順を追って書くと (1)ユーザーフォームを起動(モードレスで) (2)A1セルに文字を直接打ち込む(ユーザーフォームが選択されていない状態) (3)ユーザーフォームをクリック(ユーザーフォームを選択)したら指定したマクロを実行 この(3)のところができません。(というか考え方が分からず・・・) 分かりにくい質問で申し訳ございませんが、アドバイスの程よろしくお願いします。 (ちなみにエクセル2003を使用しています。)

専門家に質問してみよう