• ベストアンサー

Excelでセルをクリックするたびに表示を切り替えるには?

Excelで、セルをクリックするたびに”○”を表示・非表示と切り替えたいのですが、できるのでしょうか? チェックボックスでもよいのですが、”レ”か”・”しかでないのでそれを”○”で表示したいのです。 うまく説明できませんが、よろしくお願いします!!

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

  • ベストアンサー
  • happypoint
  • ベストアンサー率36% (521/1422)
回答No.6

>実行時エラー'13': 型が一致しません。 これはわたしのミスです。すいません。 じつは、前回紹介したコードは、 「選択(クリック)するセルは1つ」という前提で書いているために、上記のエラーが発生します。 たとえば、 ドラッグなどで、複数の範囲を選択しようとすると、実行時エラーがでてしまいます。 また、セル結合などで複数のセルが結合された場所がある時もエラーになります。 そこで、前回のコードの3行目あたりの、    With Target の部分を、    With ActiveCell に修正してみてください。 これで直ると思います。

ba77
質問者

お礼

で・できた~~~!! 初心者の私がhappypointさんのいうとおりにしたらバッチリできました(^o^)goo ○を置きたいセルが結合されていたのでエラーがでたのですね。 お忙しい中何度も何度も丁寧に教えていただき本当に本当にありがとうございました! また機会がありましたらよろしくお願いしますm(__)m

すると、全ての回答が全文表示されます。

その他の回答 (5)

  • happypoint
  • ベストアンサー率36% (521/1422)
回答No.5

>補足したような事ができるのであれば使ってみたいのですが・・・ >初心者の私ではやはり難しいものなのでしょうか? 手順さえ覚えれば、今回紹介したVBAをブックに組み込んで使うことは、 別段難しいものではありません。 まずExcelを立ち上げて、○をつけたいブックを開いてください。 Alt + F11 キーを押してください。 VBAを記述・編集するための「Visual Basic Editor(VBE)」という画面が立ち上がります。 画面左半分に、「プロジェクト」というツリー状の項目が表示されていると思います。 そのなかに、 「Microdoft Excel Objects」という項目の下に、 開いたブックのシート名が一覧で表示されていると思います。 このなかから、クリック操作で○印をつけたいシートを選んで、ダブルクリックしてください。 そうすると、画面右半分に白紙の画面が現れると思います。 この白紙の部分に、下記コードを貼り付けてください。 '↓ここから Dim myFlg As Boolean Private Sub Worksheet_SelectionChange(ByVal Target As Range) If myFlg = False Then Exit Sub With Target  If .Value = "○" Then   .Value = ""  Else   .Value = "○"  End If End With End Sub Sub StartAndStop() myFlg = Not (myFlg) If myFlg Then  MsgBox "「クリックで○」を開始します。", vbInformation Else  MsgBox "「クリックで○」を停止しました。", vbInformation End If End Sub '↑ここまで コードを貼り付けたら、右上の×(終了ボタン)を押して、VBEの画面を終了します。 すると最初のExcelの画面に戻ってきます。 エクセルの「ツール-マクロ-マクロ」をクリックします。 マクロの一覧ダイアログが表示されます。 「シート名.StartAndStop」という項目が反転していると思いますので、 これを確認して「実行」をクリックしてください。 メッセージが表示され、クリックで○をつけるモードになります。 マウスでクリックしたセルに、「○」がつくことを確認してください。 ちなみに、すでに○が入力されているセルを再度クリックすると、 こんどは○が消える仕組みになっています。 ○をつけるモードを終了したいときは、再度 「ツール-マクロ-マクロ」をクリックし、 「シート名.StartAndStop」という項目が反転していることを確認して、 「実行」をクリックしてください。 すると、クリックしてもセルに○印がつかない通常の状態に戻ります。

ba77
質問者

お礼

すごい!すごいです!! これこそ正に私がやりたかったものです(●^o^●) happypointさんは本当にお詳しいのですね☆うらやましい限りです。 ですが、新しいブックでは動作したのですが作業したいブックでは「実行時エラー'13': 型が一致しません。」と表示され動作しません(ToT) 何がいけないのでしょうか? お忙しい所度々すみません!

すると、全ての回答が全文表示されます。
  • happypoint
  • ベストアンサー率36% (521/1422)
回答No.4

こんにちは。 >1クリックで○を表示したいと単純に思ったのですが 「クリックでなにかする」というのはVBA(マクロ)の専門分野です。 しかしVBAを使わずに、 別の方法(つまり「クリックで表示」というのではないけれども) でよければできないこともありません。 (1) まず、「コピーして貼り付け」をキーボードでする方法。 どこか1カ所○を入力したら、そのセルを選択して「Ctrl+C」でコピー。 その後、○をつけたい箇所にカーソルを移動して「Ctrl+V」を押せば、何回でも連続して貼り付けることができます。 (2) つぎに、文字の置換機能を使う方法。 ○印をいれたいところに、 なにか代わりになる打ちやすい文字・記号をまとめて入力します。 たとえば、「Q」という文字を、○印をいれたいセルすべてに入力します。 そして、「編集-置換」を選択します。 「検索する文字列」を「Q」 「置換語の文字列」を「○」 と入力し、「すべて置換」をクリックします。 こうすることで、「Q」を入力したセルが、 すべて「○」に置き換わります。 「クリックしたら入力される」というのとは多少違いますが、 入力がだいぶ楽になると思いますよ。

ba77
質問者

お礼

丁寧に教えていただきありがとうございます。 「置換」というものがあるのを今始めて知ったのですが・・・(^_^; そうですね!「置換」をすれば○を入力するよりだいぶ楽になりますね☆ >「クリックでなにかする」というのはVBA(マクロ)の専門分野です。 とありますが、補足したような事ができるのであれば使ってみたいのですが・・・初心者の私ではやはり難しいものなのでしょうか? もしできるのなら詳しく教えていただけたら幸いです。 質問ばかりですみませんm(__)m

すると、全ての回答が全文表示されます。
  • happypoint
  • ベストアンサー率36% (521/1422)
回答No.3

こんばんわ。 言われるがまま、の仕様で作ってみました。 クリック(というかカーソルが動くたび)ごとに、○の表示がついたり消えたり。 (自分で言うのもなんですが、なんかえらく使いにくそうです。) F11キーを押して、VBEを立ち上げ、 対象とするシートのシートモジュールにこのコードを貼り付けてください。 (よくわからないときは補足してください。) Private Sub Worksheet_SelectionChange(ByVal Target As Range) With Target  If .Value = "○" Then   .Value = ""  Else   .Value = "○"  End If End With End Sub

ba77
質問者

お礼

早々にご回答いただきありがとうございます。 せっかくご回答いただいたのですが、初心者のためVBEというものが全くわかりません(ToT) 1クリックで○を表示したいと単純に思ったのですが、なかなか難しいようで・・・ 補足いたしますので再度お願いいたします。

すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.2

VBEの画面で、VBAProjectのSheet1をクリックし、 GeneralはWorksheet、Declarations側はBeforeDoubleClickを選び下記を貼りつけて、ワークシートのC列でダブルクリックして見てください。 どこの列でもこれを働かせると、おかしくなるかもしれませんので、C列に限定しています。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Column = 3 Then If ActiveCell = "" Then ActiveCell = "○" Else ActiveCell = "" End If End If End Sub こんなのでは多分ダメだと思いますが、どの点に不満ありか補足してください。質問内容が捉えられず、補足の呼び水の積もりです。 またコントロールツールボックスのチェックボックスはダメですか。

ba77
質問者

お礼

早々にご回答いただきありがとうございます。 せっかくご回答いただいたのですが、初心者のためVBEが全くわかりません(ToT) 1クリックで○を表示したいと単純に思ったのですが、なかなか難しいようで・・・ 補足いたしますので再度お願いいたします。

ba77
質問者

補足

詳しくいいますと・・・下記の例ような工事月報というものを1月を上半期・下半期と分けて作っているのですが、1日は準備、2日は○○工・・・というように日にち毎に○をつけなければいけないのです。 枚数が多くなると○をたくさん入れなくてはいけないので作業が面倒なため質問のようにセルをクリックする度○が表示・非表示できるといいな~☆と思ったのです。こんなこと初心者の私に可能でしょうか? 先生方どうかよろしくお願いいたしますm(__)m (例)        1 2 3 4 5 ・・・  ←日にち 準備工   ○ ○○工    ○ ○         ←作業名 ○○工        ○ ○

すると、全ての回答が全文表示されます。
  • p-21
  • ベストアンサー率20% (265/1269)
回答No.1

VBAで可能ですが もっと簡単な方法で データ - 入力規制 で 設定の項目で 入力値の種類を「リスト」にして 空白を無視するのチェックを外します 元の値のところに 「○, ,」と入れます (カッコは入れませんよ) ドロップダウンリスト・・・にチェックを入れます この設定をしたセルをクリックすると○と空白が選べるようになります

ba77
質問者

お礼

早々にご回答いただきありがとうございます。 この方法もよいのですが、なんせ○の欄がたくさんある為手間がかかりそうなので・・・ 1クリックで簡単に○が表示できるといいな~と単純に思ったのですが・・・(^_^;) 初心者のためVBAは使ったことがありませんが、VBAを使えば可能なのでしょうか?

すると、全ての回答が全文表示されます。

関連するQ&A