• ベストアンサー

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

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

  • ba77
  • お礼率100% (13/13)

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

  • ベストアンサー
  • 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/17068)
回答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

  • Excelのセル非表示部分をクリックで表示

    Excelのファイルを作成しなくてはならないのですが、ひと項目だけ説明文を入力する項目があって、長いので説明文の一部分だけセルに表示させて、あとはクリックすると別枠で表示されるように作成したいのですが、いろいろ検索してみたのですがなかったです。このようにするにはどのように設定したらいいのでしょうか?

  • デスクトップのエクセルをクリックしてセルが出ない

    こんばんわ。 過去に何度かお世話になっています。 PCはWindows95です。 最近までノーマルに出ていたのが出なくなってしまいました。 デスクトップ画面のexcelをクリックすると、開くのですが、画面が黒いままでセルが出ません。 新規作成をクリックすると出ます。 如何すると、デスクトップ画面のExcelをクリックしただけで、セルが表示されるでしょうか。 よろしくお願いします。

  • エクセルで印刷されないセルの表示の仕方???

    WinXPエクセル2003です。他の人からエクセルのデータを頂いて、開くと、A1のセルに画面上では表示されている文章が(四角で囲まれいますがテキストボックスではないような…)印刷プレビューでは表示されていません。どうやったらこういうことが出来ますか?右クリックの「コメント」ではないようです。あと他のセルに移動すると、文章は消えます。ドラックもできますが、この文章自体はA1のセルのときだけ表示されます。

  • エクセル2007で あるセルをクリックするとチェックマークが入るように

    エクセル2007で あるセルをクリックするとチェックマークが入るように出来ますか? 探しては見ましたがわかりませんでした。 どなたか お分かりになる方いましたら 教えてください。

  • EXCELセルの非表示

    EXCELにて特定のセルを非表示にしてパスワード保護したいのですが、方法がEXCELのHELPでは分かりませんでした。 メニュー下のfxボックスに表示されてしまう。 方法を教えて下さい。

  • Excelのチェックボックスの有無で複数セルの表示を○に変えたい

    Excelのチェックボックスのチェックを付けて、複数個所の表示を変えたいと考えています。 チェックボックスにチェックをつけたら、複数のセルに○が表示されるようにしたいのですが、設定の仕方が分かりません。 どなたか教えてください。 (現在一つのセルにだけ○を表示させる事は出来ています) 【現在】 (1)チェックボックス「1」を配置 (2)以下の設定。 コントロールの書式設定→コントロールタブ選択。→リンクするセルでa1を指定→ok ⇒チェックボックス操作で、a1にtrue・falseが表示されている。 (4)b1に数式を入力する。=IF(A1=TRUE,"○","ー") (5)チェックが入った場合はb1に○が表示されている。 【やりたい事】 (1)チェックボックス「1」にチェックが入った場合、b1,d1,f1,h1,j1,l1,等の複数セルに○を表示させたい (2)チェックボックス「2」、を同様に作成し、チェックを入れた場合、 b1,d1,のセルに○を表示させたい。 (チェックボックス「1」にチェックが入ってない場合でも「2」にチェックが入れば、○を表示させたい)

  • Excelのセルをクリックした日時

    エクセルの,あるセルを最後にクリックした日時等を表示させたりして知る方法があれば,どなたか是非お教え下さい。よろしくお願い申し上げます。

  • エクセルのチェックボックスで文字の表示・非表示

    エクセルのチェックボックス(フォームのコントロール)を使い特定のセルに文字を表示・非表示させたいのですが、簡単な方法はありますか? チェック時にセル内に文字を表示してチェックを外すとセルを空白にしたいのです。よろしくお願いします。

  • エクセルのセルの表示について

    エクセル2000を使用していますが、通常はセルをクリックして、そのセルの右下にマウスを持っていくと + などの表示になるはずがならなくなってしまいました。何か設定をいじってしまったのでしょうか? 直し方、ご存知の方いらっしゃいましたら、宜しくお願いいたします。

  • 《VBA》セルをダブルクリックしたときのイベント

    Worksheet/BeforeDoubleClickを使用して、 フォームを表示するという処理を行っています。 エクセルのセルにリストボックスが設定されているセルがあるのですが、 リストボックスのセルをダブルクリックした時にはイベントが動作しません。 通常のセルをダブルクリックした時にはイベントは正常に動作します。 リストボックスが設定されているセルでは動作することができないのでしょうか。

専門家に質問してみよう