EXCELチェックボタンの使い方とは?

このQ&Aのポイント
  • EXCELのチェックボタンを使用することで、特定のセルの値を保持することができます。
  • 具体的には、チェックボタンのON/OFFによって別のセルに表示される値を変えることができます。
  • VBAの知識がなくても、フォームコントロールを使いながら簡単に実現することができます。
回答を見る
  • ベストアンサー

EXCEL チェックボタンをONにするとできること

ご質問させていただきます。 EXCEL2007を使用しています。 チェックボタンでもラジオボタンでも良いのですが、ボタンをONにすると特定のセルの値を保持するようにしたいのです。 例えば、sheet1のB1セルの値はsheet2のA1セルを参照しており、sheet2のA1セルにはif関数が使われていて、リアルタイムで更新される他のセルの値に対して条件判定しているとします。その条件判定によってsheet2のA1セルは例えばGoodとかBadと表示されるとします。そのGoodやBadがようするにsheet1のB1セルに表示されているわけです。 やりたいことは、sheet1上のチェックボタン(orラジオボタン)をONにすると、例えばその時sheet1のB1セルにGoodと表示されていたら参照とは無関係にGoodをB1セルに表示し続けたいのです。 そして、ボタンをOFFにすると再び参照を開始するようにしたいのです。 はたしてそのようなことはできるのでしょうか? ご存知の方がいらっしゃったら教えてください。 よろしくお願いいたします。 ちなみに私はVBA初心者レベルで、フォームコントロールの知識が全くありません。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

そうですね。最低限の知識として,まずExcelではフォームコントロールとActiveXコントロールの2種類のチェックボックスなどが使えて,用途や使い方が違うので間違えないように気をつけることを憶えておいてください。 無理すればマクロを使わず出来ますが,まぁふつーにマクロで制御した方が良さそうな塩梅に見えます。 今回はActiveXコントロールのチェックボックスを使います。 ActiveXコントロールは,デザインモードで設定等を行い,デザインモードを解除して使うということも,きっちり憶えておいてください。 手順: シート1上にチェックボックスを配置する 右クリックしてコードの表示を選び 現れたシートに下記をコピー貼り付ける private sub checkbox1_click()  if checkbox1.value then  range("B1").value = range("B1").value  else  range("B1").formula = "=Sheet2!A1"  end if end sub Excelシートに戻り,デザインモードを解除してからチェックボックスを使う。 手順を間違えると出来ないので,キチンと行ってください。

hoully
質問者

お礼

keithin 様 早速のご回答ありがとうございます。 やりたいことができました。 説明がとてもわかりやすかったです。 この度はありがとうございました。

その他の回答 (2)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

回答No2です。最初のマクロは次のようにしてください。 Private Sub CheckBox1_Click() Range("B1") = Worksheets("Sheet2").Range("A1") End Sub

hoully
質問者

お礼

KURUMITO 様 ご回答ありがとうございます。 説明がとてもわかりやすかったです。 この度はありがとうございました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

シート1側とシート2側で二つのマクロを組むことにします。 シート1では「開発」メニューから「挿入」でActiveXコントロールの中のチェックボックスを選択します。 その後にシート1の画面にチェックボックスを挿入します。 そのチェックボックスを右クリックして「コードの表示」を選択します。 Private Sub CheckBox1_Click() Range("B1") = Worksheets("Sheet4").Range("A1") End Sub を表示画面に入力します。 その後にシート見出しのシート2を右クリックして「コードの表示」を選択します。 表示の画面に次のマクロを入力します。 Private Sub Worksheet_Calculate() If Worksheets("Sheet1").CheckBox1.Value = False Then Worksheets("Sheet1").Range("B1") = Range("A1") End If End Sub 最後にBVAの画面では表示のメニューの中から「デザインモードの終了」をクリックしてアクティブ状態を解消します。 これでお望みの動きができるようになるでしょう。

関連するQ&A

  • エクセルVBAでのチェックボックス操作

    エクセルを利用した、VBAで困っています。 所定のsheetに埋め込まれたチェックボックスに対して、 別sheet内のセルの値を参照し、結果をオン、オフという 操作を行いたいのですが、チェックボックスに対するVBAでの指定方法 が分かりません。 イメージとしては (1)Sheet1内にチェックボックスがある。  該当チェックボックスは7個のチェックボックスで構成されており  それぞれにchb1~chb7といったオブジェクト名がある。 (2)sheet2のA1セルに特定の値が入っていればチェックボックス(chb1)  がオン値がなければオフのまま (3)sheet2のB1セルに特定の値が入っていればチェックボックス(chb2)  がオン値がなければオフのまま という感じです。 先方より指定された様式なのでsheet1の内容や書式を変更することが出来ないので、なんとか埋め込まれたオブジェクトを操作したいのですが・・・ 良い方法があれば教えてください。

  • Excelのラジオボタンにチェックが入らないようにするには?

     Excel上にラジオボタンが何個かついているsheetがあります。 sheetをクリックするとラジオボタンにチェックが入ってしまうのですが、 チェックを入れない状態で印刷をしたいのです。 =EMBED("Forms.OptionButton.1","") 上のように、ラジオボタンの上にカーソルを持っていくと表示されます。 また、ラジオボタンの上でダブルクリックすると以下のように表示されます。 ---------------------------------- Private Sub OptionButton9_Click() End Sub ------------------------------------  マクロは全く分からない初心者です。 どのようにマクロのラジオボタンにチェックを入れずに印刷したらいいでしょうか? よろしくお願いします。

  • ラジオボタンのチェックを判定したいです。

    phpとhtmlを使用して、ラジオボタンをいくつか作成したとします。 どのラジオボタンが選択されているかを判定する場合、通常ラジオボタンのvalueの値が、ある値と一致するかどうかで判定しますが、そうではなく、逆にチェックが入っているラジオボタンのvalue値を取得したい場合、どのようにすればいいのでしょうか? ちなみに、javascriptは使用したくないです。理由は、その値を再びphpの画面で使いたいからです。 もし、javascriptで取得した値をphpの画面に渡せれば、javascriptを使用してもOKなのですが、なかなか上手く渡せないようなので。。。 ご教授お願い致します。

    • ベストアンサー
    • PHP
  • Excelの数式

    A1の数字を参照して(たとえばA1が4のときは1の4というシートを指定する)シートのB2のセルの値を表示させたいのですが ='1の & A1 & '!B2 だとうまくいきません。どうすればうまくいくのでしょうか?お願いします。

  • excelで次のようなことをチェックできますか?

    excelで次のようなことをチェックできますか? もし、合致していれば(真であれば)決められた得点を表示する というようなことです。 1.A3セルに入力した文字列が中央ぞろえされている。 2.A4に入力したデータは、’0120といように数字が文字列化されている。 3.B4セルには「セルポインタ」という文字列が入力されている。 3.A5セルに入力されている数式が=sum(b5:b11)である。値ではチェックしない。 4.A6セルに表示されている値が1234である(数式で表示)。 5.A7セルにrankで表示した値が 北海道 である。

  • エクセルで他のシートの値を参照する時の質問です

    いつも、参考にさせていただいています。 わからないことがあり、教えてください。 エクセルで、他のシートの値(例えばSheet1のA1のセルの値)を参照するとき、 ='Sheet1'!A1としますが、 A1の1を、他のセルの値から参照するときは、どのようにすればよいのでしょうか? 例えば、計算式と同じシートのセル(B4)に値が1と書いてあったら、 Sheet1のA1のセルを参照し、 セル(B4)に値が2と書いてあったら、 Sheet1のA2のセルを参照したいです。 どうぞ、教えてください。 よろしくおねがいいたします。

  • エクセルでマクロを使わずに複数のチェックボックスに一括チェックするコマンドボタンを作れますか?

    エクセルで商品管理のシートを作成しています。 10店舗ほど支店があるので、取扱店舗をチェックボックスで 選択できるようにしていますが、全店取扱の商品がかなり有るので 一括で10個のチェックボックスにチェック出来る様にしたいのです。 最初はコマンドボタンのLINKEDCELLにチェックボックスで参照している セルが連動するように数式を入れていたのですが、このやり方だと ボタンを使わずにチェックボックスを使うと参照セルの数式が 「TRUE/FALSE」に上書きされてしまい、以後ボタンと連動しなくなってしまいます。 出来ればコマンドボタンのLINKEDCELLプロパティを複数セルに指定したいのですが、可能でしょうか? ※「A1:G1」等と設定してみたのですが、連動するのは「A1」のみでした… VBAを使用すれば良いのでしょうが、まったく知識が無いので時間的に厳しい状況です。 どなたかお分かりの方がいらっしゃればご助言お願いいたします。

  • Excelの条件付き書式、直接入力と参照した数値は違う?

    Excelの条件付き書式、直接入力と参照した数値は違う? Sheet1のA1セルの数値を Sheet2のA1セルが「=IF(Sheet1!A1="","",Sheet1!A1)」という数式で参照しています。 数値に、「%以上」という文字列を追加したいので、 Sheet2のA1セルの書式設定を、ユーザー定義で「0"%""以""上"」としています。 Sheet1のA1セルに数値を入力 → Sheet2のA1セルが参照 → ユーザー定義で「○%以上」と表示させる。 ・・・ここまでは簡単にできました。 さらに、数値が表示されたときにセルの色を赤くしようと、 条件付き書式で、 「セルの値が 次の値以上 0」 と設定したのですが、入力が無くても赤いままになってしまいます。 設定を、 「セルの値が 次の値以上 ="0"」とか、 「セルの値が 次の値より大きい 0」とか、 いろいろとやってみましたがどうしてもうまくいきません。 参照ではなく、セルに直接入力するのであればこれでうまくいっていましたので、簡単に出来るものだと思っていたのですが、 これはたぶん、私が根本的なことをわかっていないのだと思います。 ご教授頂けましたら助かります。

  • エクセル

    エクセルに関する質問です。 Aシート内に何個か表を作成します。 別シートBから上記シートAのセルを参照したいです。 単純にセルの参照先を固定にするのではなく、AシートとBシートで 同じ行名且つ同じ列名を持つセルを値を入れたいです。 どのような方法があるでしょうか?

  • Excelのチェックボックスについて

    Excelのチェックボックスを使用して、チェックをONにした時はセルの値を表示、OFFにした時はセルの値を非表示にしたい場合、具体的にどうすれば良いか教えてください。

専門家に質問してみよう