• ベストアンサー

エクセルのチェックボックスで計算

よろしくお願いします。 エクセルのセルに綺麗にチェックボックスを敷き詰める方法はありますか?(たとえばB2~G10全てに) その中で、チェックされたボタンを100円として、どこかのセルに関数で合計を出すにはどうすればいいですか?

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 >綺麗にチェックボックスを敷き詰める方法はありますか? となると、マクロが一番よいと思います。 以下のコードをシートのタブの場所で、右クリックして、コードの表示 をクリックしますと、Visual Basic Editor 画面が現れますから、その場所に貼り付けます。 次に、リンクセルの位置をコードの中に書き入れます。以下では、右に、「10」セルとなっています。 それで、Alt + Q で画面を閉じたら、マウスで、貼り付ける場所を選択して、 Alt + F8 で、 [シート名].SettingCheckBoxes となっているものをクリック そうすれば、チェック・ボックスは張り付きます。 '----------------------------------------- Sub SettingCheckBoxes() Dim c As Range 'リンクセルは、右にいくつ? Const HOW_MANY_RIGHT As Integer = 10 'リンクセルは、下にいくつ? Const HOW_MANY_DOWN As Integer = 0 For Each c In Selection.Cells 'マウスで選択 With c  With CheckBoxes.Add(.Left, .Top, .Width, .Height)   .Caption = ""   .LinkedCell = c.Offset(HOW_MANY_DOWN, HOW_MANY_RIGHT).Address(0, 0)  End With End With Next c End Sub Sub ClearCheckboxes()  '失敗の時に消すマクロ  CheckBoxes.Delete End Sub '----------------------------------------- 例えば、上記の場合は、リンクセルを右に10セルということですから、L列~になりますから、 計算方法は、 =SUMPRODUCT(L2:Q10*100) TRUE/FALSE の値に、× 100 で計算ができます。

guchan00001
質問者

お礼

ありがとうございます。やってみたところ、エラーになり、デバックを押すと With CheckBoxes.Add(.Left, .Top, .Width, .Height) のところが黄色い帯になります。 どうしたらいいですか?

その他の回答 (3)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんにちは。 >そうか、シートごとに書けたんですね・ シートモジュールは、特殊ですけれど、マクロを知らない方に教える場合、場所は簡単なのです。 >「作る方」はだめだったんです。 その場合は、デバッグで、ステップインモード(F8)を使ってみてください。どこで、問題が出ているか分ると思います。 たぶん、範囲の選択がなされていないからだと思います。 For Each c In Selection.Cells 'マウスで選択    ↓ For Each c In Range("B2:G10") と、予め範囲を決めうちして、行ってみてください。

guchan00001
質問者

お礼

何度もありがとうございました。ぜひ、我が家に来ていただきみっちり教えていただきたいです。何冊か参考書は買ってみたのですが、どうも、頭にしみこんできません。お恥ずかしい・・・^^; また、機会がありましたらよろしくお願いいたします。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 >ありがとうございます。やってみたところ、エラーになり、デバックを押すと With CheckBoxes.Add(.Left, .Top, .Width, .Height) エラーの原因は、登録するモジュールの場所違いです。できれば、シートモジュールに貼り付けし直してほしいのです。(といっても、分らないかもしれませんね)今回、私は、わざと省略型にしましたので、とりあえず、以下のように直して試してください。  With CheckBoxes.Add(.Left, .Top, .Width, .Height)   ↓  With ActiveSheet.CheckBoxes.Add(.Left, .Top, .Width, .Height) と直してください。 以下も同じです。 Sub ClearCheckboxes()  '失敗の時に消すマクロ  ActiveSheet.CheckBoxes.Delete End Sub

guchan00001
質問者

お礼

解かりました、ありがとうございます。 実は少しはVBAもかじっていまして、自分なりに「失敗を消すマクロ」の方は、sheet1.をくっつけてみたら出来たのですが、「作る方」はだめだったんです。そうか、シートごとに書けたんですね・・・。今まで、わざわざ標準モジュールに書いていました^^;

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

>エクセルのセルに綺麗にチェックボックスを敷き詰める方法はありますか 「きれいに」「敷き詰める」とは? Caption(文字の部分)も含めてですか。 チェックボックスの四角の部分を大きくすることはできないと思います(過去に質問がありました)。1つのセルに貼り付け、他のセルを指定して、そこに複写する方法はどうですか。 VBAならできそうです。関数でチェックボックスを貼り付けたり、そのプロパティを左右することは絶対できません。 >チェックされたボタンを100円・・・ まずVBAでならできます。 それを使わない場合 LinkedCellという「プロパティ」の指定ができるので、そのセルの「値」(TRUE,FALSE)を対象にして、COUNTIF関数などでできる。 A1:D1のチェックボックスのLinkedCellをA3,B3,C3,D3に指定して A3:D3で TRUE FALSE TRUE TRUE 3 C4に =COUNTIF(A3:D3,TRUE)でやって見ると、うまくいきました。

関連するQ&A

  • エクセルのチェックボックス

    こんにちは。 エクセルのチェックボックスについて一括でチェックをはずす方法を教えて頂きたいのですが、 チェックボックスにチェックを入れると自動で指定した範囲から価格を持ってくるという関数を使ったファイルを作成しました。 下記の(1).(2)の方法でそのチェックボックスのチェックを一括ではずすことは可能でしょうか? (1)そのファイルをチェックが入った状態で保存し閉じても、 再度ファイルを開いた段階で、すべてのチェックがはずれている。 (2)普通の数値が入ったセルに関しては”記録マクロ”を使用し、ボタンを押せば、数値が削除されるという事はできました。 それと同じような感じでボタンを押せば、チェックがはずれる。 もし(1).(2)の方法で可能であればその方法を教えて頂けないでしょうか? また、両方とも不可能ならば他の方法でチェックボックスを一括で外す方法教えて頂けないでしょうか? ちなみに、私は基本的な関数などは問題なく使用できますが、記録マクロに関しても初めて使用した程度のエクセル認識力ですので、いくつか方法があるならば、一番簡単だと思われる方法を教えて頂きたいです。 知識不足でお恥ずかしいですが、 ぜひ、教えて頂けます様、宜しくお願いいたします。

  • エクセルのチェックボックスとかについて

    エクセルのチェックボックスとかについて エクセルのセル上にある複数のチェックボックスやラジオボタンを一括で消去する方法はありますか? 1つづつケ消していく方法しか分からずに困ってます。

  • エクセルでチェックボックスを使った関数。。。

    どなたかお助け下さい。。。 エクセルでチェックボックスを使った関数を作っています。 http://106.g-serve.net/kojin/555566666.gif 【2の行】のどれか一つにチェックを入れると【A2】に1の行の項目が反映されるようにしたいのですが、 例えば、【C2】にチェックを入れると【A2】に「交際費」と表示 各チェックボックスには「コントロールの書式設定」でリンクするセルは指定済みです。 とりあえず、A2には =IF(B2=FALSE,"",B1) まで書いたのですが。。。 手詰まりです@@; 各列のチェックボックスにはどれか1つチェックが入ります。 どうぞよろしくお願いいたします!

  • エクセルチェックボックス

    エクセルのコントロールボックスでチェックボックスを使用したいんですがうまく使えません ユーザーフォームは使用せず、セルに直接貼り付けを考えてます このチェックボックスは複数使用したいと思っています 具体的な例としてチェックを入れたらセルにリンクして数字を動かしたい チェックしたら1 はずしたら2を入れる IF関数との連結を考えています 当方の使用環境はWindows Vista , エクセル2007を使用しています よろしくお願いします

  • エクセル チェックボックス

    エクセルで複数の特定セルのどれかにOKの文字が入力されると、 チェックボックスに自動でチェックが入るようにできますか? (A1のセルかB1のセルかC1のセルにOKが表示されると チェックボックスにチェックが自動で入る。) よろしくお願いいたします。

  • チェックボックスにチェックしたセル(?)のみ合計計算(エクセル)

    エクセルで注文表を作りたいのですが、注文したい商品のチェックボックスにチェックした商品の金額のみ合計計算することはできますでしょうか? チェックボックスを貼り付けるところまではわかるのですが、関数などをつければよいのか全くわかりません。 詳しくないのでどなたかわかる方がおられましたら教えて下さい。

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

    チェックボックスでチェックをつけたら、指定セルへ、 準備した画像を挿入したいのですが、どうすれば良いの でしょうか? エクセルファイルと画像ファイルは同一ディレクトリにあります。   A B 1 レ [画像] (レ=チェック) のように、指定セル内に表示させたいのですが・・・。

  • エクセルのチェックボックスについて

    エクセルのチェックボックスを使って左隣のセルをリンクさせたいのですが、そのチェックボックスをドラッグしただけではリンクの対象セルが固定されてしまいます。 ドラッグと同時にリンクの対象セルも自動で変化してくれる方法をご存知有りませんか? 一つずつ入力すればできるのですが、数がかなり多いので困っています。 よろしくお願いします。

  • エクセルのチェックボックス

    エクセルのチェックボックスを何個か並べておき、 そのうちの1つにチェックを入れたら、別のチェックボックスにはチェックが入らない様にしたいのですが、どの様にしたらよいのでしょうか。(1つしか選べない様にしたいのです) また、あるチェックボックスにチェックをしたら、自動的に 近くにあるセルに斜線が入る様にすることは、可能でしょうか。 以上、2つよろしくお願い致します。

  • エクセルのチェックボックスについて

    エクセルのバージョンは2002です。 左側に数値の入力されているセルにチェックボックスを入れたいのですが、 いちいちチェックボックスを呼び出してコピー → Ctlr+V連打 → チェックボックスを選択して整列 という手順が大変煩雑です。 うまい具合に、選択したセルに綺麗にボックスを並べる方法はないでしょうか? (入力規則からレ点を選択するという手段もありますが、二回クリックが必要なのと、チェックボックスを 使ってみたいという理由で保留してます。)

専門家に質問してみよう