• ベストアンサー

チェックが重なって連続しているか調べたい

  | 1 | 2 | 3 | 4 | 5 --+--+--+--+--+--- A |   | ■|■ |   |   --+--+--+--+--+--- B |   |   | ■|■ | --+--+--+--+--+--- C |   |   |   |   | --+--+--+--+--+--- D | ■|■ |   |   | --+--+--+--+--+--- E |   |   | ■|■ | --+--+--+--+--+--- 縦横5ずつのチェックボックスがあったとして、 そのチェックが最低1ヶ所は重なって連続しているかどうか (上記の図だと 「A-2,3とBの3,4」か「A-2,3とEの3,4」か 「A-2,3とDの1,2」か「Bの3,4とEの3,4」か 「Dの1,2とA-2,3と、Bの3,4またはEの3,4」 がチェックされていたらOK、 「Dの1,2とBの3,4」か「Dの1,2とEの3,4」 がチェックされていたらダメ) を調べたいのですが、どうして良いかわかりません。 縦の列が何コマチェックされたか調べてみるとか 色々やってみたのですがどうにも上手くいきません。 要領を得ない質問ですみません。 こうやればいいんじゃない? というヒントだけでも結構です。 よろしくお願いいたします!

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

  • ベストアンサー
  • godakaz
  • ベストアンサー率72% (16/22)
回答No.2

<html> <head> <script language="javascript"> <!-- var h = 4; // チェックボックスの列数-1 var v = 5; // チェックボックスの行数 var n = 0; var m = 0; var x = 0; var y = 0; function chk(){ var c = new Array(); var k = 0; for(i=0; v>i; i++){ for(j=0; h>j; j++){ n = Math.floor(5 * i + j); m = n + 1; if((document.f.elements[n].checked)&&(document.f.elements[m].checked)){ c[k] = n; k = k + 1; } } } for(l=0; c.length>l; l++){ x = c[l]; for(o=0; c.length>o; o++){ y = c[o]; if((y==x+6)||(y==x+11)||(y==x+16)||(y==x+21)||(y==x-4)||(y==x-9)||(y==x-14)||(y==x-19)){ alert("hit: " + x + " \& " + y); } } } } //--> </script> </head> <body> <form name="f" id="f"> <table border="1"> <tr> <td> <input type="checkbox" name="0" id="0"><br> 0 </td> <td> <input type="checkbox" name="1" id="1"><br> 1 </td> <td> <input type="checkbox" name="2" id="2"><br> 2 </td> <td> <input type="checkbox" name="3" id="3"><br> 3 </td> <td> <input type="checkbox" name="4" id="4"><br> 4 </td> </tr> <tr> <td> <input type="checkbox" name="5" id="5"><br> 5 </td> <td> <input type="checkbox" name="6" id="6"><br> 6 </td> <td> <input type="checkbox" name="7" id="7"><br> 7 </td> <td> <input type="checkbox" name="8" id="8"><br> 8 </td> <td> <input type="checkbox" name="9" id="9"><br> 9 </td> </tr> <tr> <td> <input type="checkbox" name="10" id="10"><br> 10 </td> <td> <input type="checkbox" name="11" id="11"><br> 11 </td> <td> <input type="checkbox" name="12" id="12"><br> 12 </td> <td> <input type="checkbox" name="13" id="13"><br> 13 </td> <td> <input type="checkbox" name="14" id="14"><br> 14 </td> </tr> <tr> <td> <input type="checkbox" name="15" id="15"><br> 15 </td> <td> <input type="checkbox" name="16" id="16"><br> 16 </td> <td> <input type="checkbox" name="17" id="17"><br> 17 </td> <td> <input type="checkbox" name="18" id="18"><br> 18 </td> <td> <input type="checkbox" name="19" id="19"><br> 19 </td> </tr> <tr> <td> <input type="checkbox" name="20" id="20"><br> 20 </td> <td> <input type="checkbox" name="21" id="21"><br> 21 </td> <td> <input type="checkbox" name="22" id="22"><br> 22 </td> <td> <input type="checkbox" name="23" id="23"><br> 23 </td> <td> <input type="checkbox" name="24" id="24"><br> 24 </td> </tr> </table> <hr> <input type="button" onClick="chk();" value="Check !"> </form> </body> </html>

ryogoku
質問者

お礼

回答していただいてありがとうございました! おかげでとても参考になりました。 大変遅くなって申し訳ありませんm(_ _)m

その他の回答 (1)

  • ryota2
  • ベストアンサー率43% (61/140)
回答No.1

下のスクリプトで5x5のチェックボックスがチェックされているかどうかの真偽値が配列に入れられます。 この後if文で処理を書いたらいいでしょう。 算数が苦手な上、根性が無いのでそこまで作れませんでした。 ためにならない答えですみません。 <html> <head> <title>チェックボックスのチェックのチェック</title> <script type="text/javascript"><!-- function myCheck(){ checks=new Array(); checks.push(document.myform1.a1.checked); checks.push(document.myform1.a2.checked); checks.push(document.myform1.a3.checked); checks.push(document.myform1.a4.checked); checks.push(document.myform1.a5.checked); checks.push(document.myform1.b1.checked); checks.push(document.myform1.b2.checked); checks.push(document.myform1.b3.checked); checks.push(document.myform1.b4.checked); checks.push(document.myform1.b5.checked); checks.push(document.myform1.c1.checked); checks.push(document.myform1.c2.checked); checks.push(document.myform1.c3.checked); checks.push(document.myform1.c4.checked); checks.push(document.myform1.c5.checked); checks.push(document.myform1.d1.checked); checks.push(document.myform1.d2.checked); checks.push(document.myform1.d3.checked); checks.push(document.myform1.d4.checked); checks.push(document.myform1.d5.checked); checks.push(document.myform1.e1.checked); checks.push(document.myform1.e2.checked); checks.push(document.myform1.e3.checked); checks.push(document.myform1.e4.checked); checks.push(document.myform1.e5.checked); /* 配列内インデックス  |1|2|3|4|5| --+--+--+--+--+--+ A|0|1|2|3|4| --+--+--+--+--+--+ B|5|6|7|8|9| --+--+--+--+--+--+ C|10|11|12|13|14| --+--+--+--+--+--+ D|15|16|17|18|19| --+--+--+--+--+--+ E|20|21|22|23|24| --+--+--+--+--+--+ */ } //--></script> </head> <body> <form action="#" name=myform1> <table border=1> <tr><th></th><th>1</th><th>2</th><th>3</th><th>4</th><th>5</th></tr> <tr><th>A</th><td><input type=checkbox name=a1></td><td><input type=checkbox name=a2></td><td><input type=checkbox name=a3></td><td><input type=checkbox name=a4></td><td><input type=checkbox name=a5></td></tr> <tr><th>B</th><td><input type=checkbox name=b1></td><td><input type=checkbox name=b2></td><td><input type=checkbox name=b3></td><td><input type=checkbox name=b4></td><td><input type=checkbox name=b5></td></tr> <tr><th>C</th><td><input type=checkbox name=c1></td><td><input type=checkbox name=c2></td><td><input type=checkbox name=c3></td><td><input type=checkbox name=c4></td><td><input type=checkbox name=c5></td></tr> <tr><th>D</th><td><input type=checkbox name=d1></td><td><input type=checkbox name=d2></td><td><input type=checkbox name=d3></td><td><input type=checkbox name=d4></td><td><input type=checkbox name=d5></td></tr> <tr><th>E</th><td><input type=checkbox name=e1></td><td><input type=checkbox name=e2></td><td><input type=checkbox name=e3></td><td><input type=checkbox name=e4></td><td><input type=checkbox name=e5></td></tr> <tr><td colspan=6 align=center><input type=button value="  Check  " onClick="myCheck()"></td></tr> </table> </form> </body> </html>

ryogoku
質問者

お礼

回答していただいてありがとうございました! おかげでとても参考になりました。 大変遅くなって申し訳ありませんm(_ _)m

関連するQ&A

  • セルに入力されたら  チェックボックスにチェック

    タイトルのとおりなのですが、A列にチエックボックスをA・B・C・Dと 作り、たとえばC1にBと入力されたらチェックボックスのBにチェックを 入れたいです。

  • チェックボックスに連動した他シートの参照

    以前も似たような質問をしたのですが、以下のようなことは可能でしょうか? S1シートの該当のチェックボックスにチェックを入れるとその行のデータがS2シートに表示される。 下の例では、B、D列のデータがS2シートのA,B列に表示される。 [S1]| A | B | C | D | E | - - - -- - - - - - - - -  1 | あ | い | う | え | □ |←チェックボックス1 - - - -- - - - - - - - -  2 | お | か | き | く | □ |←チェックボックス2 - - - -- - - - - - - - -  3 | け | こ | さ | し | □ |←チェックボックス3 - - - -- - - - - - - - -  4 | す | せ | そ | た | □ |←チェックボックス4 - - - -- - - - - - - - - 【1】 ○チェックボックス1と3にチェック [S2]| A | B |  - - - -- - -  1 | い | え |  - - - -- - -  2 | こ | し |  - - - -- - -  3 |   |   |  - - - -- - -  4 |   |   |  - - - -- - - 【2】 ○チェックボックス2と3と4にチェック [S2]| A | B |  - - - - - -  1 | か | く |  - - - - - -  2 | こ | し |  - - - - - -  3 | せ | た |  - - - - - - ○上記状態でチェックボックス3のチェックをはずす  [S2]| A | B |  - - - - - -  1 | か | く |  - - - - - -  2 | せ | た |  - - - - - -

  • VBA チェックボックスをチェックした名前のみ抽出

    数百名のリストからチェックした名前のみ抽出したいと思いまして。 1.シート1のA、C、E…奇数列にフォームのチェックボックスを配置 2.B、D、F…偶数列に名前を並べる 3.チェックボックスでクリックし、チェックマークが出る 4.マクロでSheet2のA列から抽出された名前を並べる 宜しくお願いします。

  • チェックボックスの逆使用がわかりません!

    初めて質問させていただきます。マクロ超初心者です。 エクセル2007を使用しております。 マクロに初めて挑戦し、契約書に差しこんでおります。 うまく説明できないところがあると思いますが、ご了承ください。。。 シート1に契約書に差し込むデータが一覧表として作成してあります。 シート2に契約書のひな型を作成→シート1から契約内容を差し込む 見よう見まねでマクロを作成しました。 ここまではうまくいったのですが、どうしてもわからないところがあります。 シート1  A列  B列  A子  マンション  B子  アパート  C子  戸建  D子  テラスハウス シート2へ差し込み    A列     B列      C列     D列    E列     F列   G列     H列  チェックBOX  マンション  チェックBOX アパート チェックBOX  戸建 チェックBOX B/D/F以外 もし、A子がマンションなら、シート2のA列チェックBOXにレ点が入るようにしたいです。 同様にB子・C子と差し込んだときに、一致するBOXにチェックが入るといったものにしたいです。 この説明で、お分かりいただけましたでしょうか? どうか、お願いいたします。

  • エクセルで名簿を連続印刷したい。

    エクセルで名簿を連続印刷したい。 Sheet1に縦に2枚同じ様式のフォームがあります。 A1、A24に、それぞれ名前を連続して印刷したいと思っています。 Sheet2に、名簿があります。 A列 B列 日付 氏名 1  Aさん 2  Bさん という感じで、120名の名簿リストがあります。 どのようにすれば、2箇所名前を連続で入れることができるでしょうか? どうぞよろしくお願いします。 *フォーマットを作った人は別でして、これでできるようにしてくださいと言われています。

  • フォームのチエックボックスにチエックを入れるた行のみ印刷出来るマクロ

    エクセル97で仮に下記のような表を作成しています 一番左の列にチエックボックスを並べて、印刷したい行のみチエックを入れると、上の標題とチエックした行のみ印刷したいのですが、そんなマクロのボタンを作成したいのですがご教授お願いします   A B C D E 1   ○○○表 2 □ あ い う え 3 □ え お あ え 4 □ い え お あ 5 □ か き く け

  • HTML チェックボックスで複数の値

    初心者です。 HTMLで下記のような計算ができるシートを作成しようと思っています。 表   A B C □ D E F □ G H I [計算] (□はチェックボックス) チェックボックスをチェックし、計算ボタンを押すと1行目(A,B,C)と選択したチェックボックスの行のそれぞれの列の値の割り算を行い、その結果を合計した数を表示させることを考えています。 チェックボックスをチェックすることでデータを一つ取り込むことはできたのですが、複数データ(列データ)を取り込む方法がよくわかりません。 ご存じの方教えていただけないでしょうか。 初心者ですので、実際のコードから教えて頂けるとありがたいです。 よろしくお願いします。 

  • チェックボックスの配置順にテキストボックスに表示

    accessのフォームにチェックボックスを配置し チェックされたものをテキストボックスに表示させています。 ■A ■B □C □D ■E となっていたら、テキストボックスに A B E と表示させています。 チェックボックスの真ん中に新しくチェックボックスを追加すると テキストボックス内には、追加したものが最後に表示されていまいます。 ■A ■B □C ■Z □D ■E とすると、テキストボックスには A B Z E と表示させたいのに A B E Z 表示されてしまいます。 いちから順番どおりに作り直せばいいのですが かなりたくさんチェックボックスがあるうえに 上司から、この先も何度も作り直しを指示されそうです・・・。 できれば簡単に、配置した順にテキストボックスに表示されるようにしたいです。 チェックボックスの配置順に テキストボックスに文字を表示させる方法を教えてください!

  • チェックを入れた項目だけを順に表示する方法

    以下のようにA列にチェックボックス、B列に番号、C列に製品名、D列に使用期間がある表があります。 □ 1 製品A  20 □ 2 製品B  30 □ 3 製品C   6 以下 500番まで あるとします。その中からランダムに選択して別シート(同じシート内でもOKです)にB~D列のシートを作成する場合、A列のチェックボックスにチェックが入ったものだけを順番に表示したいのですが、どのような関数を使用したらよいか検討がつきません。ご教授お願いします。

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

    EXCEL2003を使用しています。 ■質問項目があり、回答する複数のセルにチェックボックスを配置してあります。 A列:質問 B列:回答のチェックボックス C列:回答のチェックボックス D列:回答のチェックボックス : Z列:OK 又は NGと表記したい。 ■各列の回答チェックボックスが全てonになっていたらOK、1つでもoffになっていたらNGと、Z列に表記させたいのですが、どのような式になりますか? ご回答の程、よろしくお願いいたします。

専門家に質問してみよう