• ベストアンサー

VBスクリプト どこが間違っているのでしょうか?

こんにちは、いつもお世話になっています 今回大学のレポートで、アクセスすると九九の表を算出するプログラム(aspで)を作ることになりました。 途中まではなんとかやってみたものの行き詰ってしまいました!! どこかが間違っているのだと思うのですがどこか全くわかりません…。 以下が実際にわたしが書いている<body>内です。 <body> <% Response.write "<table border=1>" Response.write "<tr>" Response.write "<td border=1>" For i=1 to 9 For j=1 to 9 A=j*i Response.write A Response.write "</td>" Response.write "<td>" Next Response.write "</tr>" Response.write "<tr>" Next Response.write "</table>" %> </body> あ 多分段をつけてるんですが半角スペースが無視されてしまうので読みづらいと思います、すみません。 これを実行すると、 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 4 6 8 10 12 14 16 18 6 9 12 15 18 21 24 27 ・ ・ ・ のようになって 最初の2 3 4 5 …は表に入ってくれません。 その後の横に並んでいる12345…からは表になりますがどうして こうなるのかさっぱりわかりません。 全部をひとつの表に入れたいのです。 もしかして根本的な考え方が間違っているのでしょうか?? すみませんがお分かりの点がありましたら教えていただけませんでしょうか。 なんとなく、答えをそのまま書いてもらうのはずるいような気がするのでヒントだけでもかまいません。 よろしくお願いいたします。

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

  • ベストアンサー
  • STICKY2006
  • ベストアンサー率29% (1536/5269)
回答No.2

こんにちゃ。 とりあえず。。。ソースをよ~く見て追っていきましょう。 まぁ、パッと見、「TRとTD」の数がそれぞれ、おかしいような気がしなくもないって思うのですがー。。。 大本は response.write("<table border =1>") response.write("<tr>") response.write("<td>") response.write("</td>") response.write("</tr>") response.write("</table>") なわけでこれをどこで繰り返すか。ですよね。 response.write("<table border =1>") ● response.write("<tr>") ○ response.write("<td>") response.write("</td>") ○ response.write("</tr>") ● response.write("</table>") ○の間を9回と●の間を9回繰り返せば、OKに思えませんか? まぁ、そこにループ処理を突っ込んでやれば。。。 とりあえず、スタートからゴールまで、どのような処理をたどっていったのかを頭の中、紙の上で考えられるようにしたほうが楽ですよ。

analogy
質問者

お礼

なるほど テーブルの方を先に書いておいて後でループを入れればいいんですね! なんだか先に書いたi=…のところにかじりついていました。 なんとかなりそうです、本当にありがとうございます しばらく考えて見ます

analogy
質問者

補足

なんだかお礼と補足が逆になってしまいました… ソースを見ながらやっていったらうまくいきました。本当にありがとうございました。もう一度、しっかり勉強しなおそうと思います。

その他の回答 (2)

  • venzou
  • ベストアンサー率71% (311/435)
回答No.3

スクリプトではなく、HTMLに関してですが、 Response.write "<td border=1>" <td>タグにはborder属性はありませんよ。

analogy
質問者

お礼

すみません…そこはわたしがこっちにコピー&ペーストするときにごっちゃになったみたいです。本来のやつには書いてありませんでした。わざわざ、ありがとうございます。

  • driverII
  • ベストアンサー率27% (248/913)
回答No.1

ロジックを追っていくと・・・・ jが9になった時を考えると i*9を出力 </td><td></tr><tr> (i+1)*1 </td><td>・・・ となり、あきらかに変ですよね。 i*9を出力 </td></tr><tr><td> (i+1)*1 </td><td>・・・ を意図したはずです。

analogy
質問者

お礼

おかげさまでうまくいきました。ありがとうございます。本当に助かりました。 正直、今回の件でぜんぜんわかっていないのを実感しました。もっと勉強します。

analogy
質問者

補足

こんな早く回答していただいてどうもありがとうございます。 なるほどそうですね!! 1の段を計算し終わってからどうなるか… 考えてみます。 あと自分はForをなぜか外側から計算しているものだと思い込んでいました。勉強不足でした

関連するQ&A

  • java scriptのwrite()の結果

    <script> document.write("<table border>"); document.write("<tr>"); for(i=0;i<3;i++){ document.write("<td>"+i+"</td>"); } document.write("</tr>"); document.write("</table>"); </script> 例えば上記のような Java Script を作ったとします。 Internet Explorer で実行すると表(HTMLの結果?)が表示されますが、 そうでなく 以下のようなHTMLのスクリプトを表示させる事は できますか? もしできるなら方法をお願いします。 <table border><tr><td>0</td><td>1</td><td>2</td></tr></table>

  • VBスクリプトのthis

    私、ASPとVBSでプログラムを作成しているのですが次のような動作が実現できません。 (1)「+」を押すと、行が追加されていって (2)追加された行の「-」を押すと (3)追加された行が消える 助けてください。こんな感じです。thisがオブジェクトとして認識してくれません・・・ 【asp.asp】 <script language=vbscript> Sub InsertRow   intMax = document.all.max.value   intMax = intMax + 1   If intMax = 6 then     Exit Sub   End If   strTD="<img src='../img/img.gif' ID='addTD" & intMax & "' ONCLICK=DeleteRow(this)>"   Set Cell = document.CreateElement("TD")   Set Row = document.all("TBL").InsertRow(-1)   Row.appendChild(Cell)   Cell.InnerHTML = strTD   document.all.max.value = intMax End Sub Sub DeleteRow(e)   Row = Right(e.id, 1)   Row = CInt(Row)   intMax = document.all.max.value   If intMax = 0 Then     Exit Sub   End If   TBL.DeleteRow(Row)   For i = Row + 1 To intMax     document.all("addTD" & i).value = i - 1   Next   intMax = intMax - 1     document.all.max.value = intMax End Sub </script> ---省略--- <BODY> <HTML>   <!-- #include file="../include/include.asp" --> </BODY> </HTML> ---省略--- 【include.asp】   Response.Write "<TABLE ID='TBL'>" & vbCrLf   Response.Write " <TR><TD WIDTH='5%'>" & vbCrLf   Response.Write " <IMG SRC='../img/img.gif' ONCLICK=InsertRow()>" & vbCrLf   Response.Write " </TD></TR>" & vbCrLf   Response.Write "<TABLE>" & vbCrLf

  • javascriptに関する質問です

    9×9のます目一つ一つに・を表示させるプログラムをつくっているのですがなかなかうまくいきませんどなたかご教授ください <script language="JavaScript" type="text/javascript"> <!-- document.write("<center>"); document.write("<h1>・の表</h1>"); document.write("<table border>"); var i; var j; for (i =・;i=<9 ){ document.write("<tr>"); for(j =・;j=<9 ){ document.write("<td>"); document.write(i * j) document.write("</td>") } document.write("</tr>"); } document.write("</table>"); //--> </script>

  • htaファイルでFor文

    htaファイルでFor文を用いて表(Tableタグ)を動的に出力する事は可能でしょうか。 例えば <html> <head> <title></title> </head> <body> <table> <script language="VBScript"> Dim i For i = 1 To 50 </script> <tr> <td>a</td> <td>a</td> <td>a</td></tr> <script language="VBScript"> Next </script> </table> </body> </html> 実際にサンプルを作成しましたがエラーが発生してしまいました。 もしかしてできないのでしょうか。 ご存知の方がいましたらアドバイスいただけませんでしょうか。 何卒、皆さんのお知恵を私にお貸しいただけたら幸いです。 どうか、宜しくお願いします。 では、失礼します。

  • DOM? tableの記述について

    よろしくお願いします。 tbody内をループさせて表示させるスクリプトを作ってみました。 ここで質問なのですが、表示内容を横にできるのでしょうか? イメージとしては・・ A01 A02 A03 B01   B02 B03 を以下のように A01 B01 A02 B02 A03 B03 no のようにしたいのです。 ただのHTMLなら <html> <head> <title>test</title> </head> <body> <table border=0> <tr> <td> <table border=0> <tr><td>A01</td></tr> <tr><td>A02</td></tr> <tr><td>A03</td></tr> </table> </td> <td> <table border=0> <tr><td>B01</td></tr> <tr><td>B02</td></tr> <tr><td>B03</td></tr> </table> </td> </tr> </table> </body> </html> みたいな感じでできると思うんですが、以下のソースだと どうしても表示されなくなります。どこをどうすると よろしいでしょうか?どうかよろしくお願いします。 ------------------------------------------------- <html> <head> <title>TABLE TEST</title> <script> function tsample() { var mybody=document.getElementsByTagName("body").item(0); mytable = document.createElement("TABLE"); mytr = document.createElement("TR"); mytablebody = document.createElement("TBODY"); for(j=0;j<4;j++) { mycurrent_row=document.createElement("TD"); mytablet =document.createElement("TABLE"); for(i=0;i<3;i++) { mycurrent_cell=document.createElement("TR"); mycurrent_cen=document.createElement("TD"); currenttext=document.createTextNode("NO "+j+" LNO "+i+" "); mycurrent_cen.appendChild(currenttext); mycurrent_cell.appendChild(mycurrent_cen); } mycurrent_row.appendChild(mytablet); mytablebody.appendChild(mycurrent_row); } mytable.appendChild(mytablebody); mybody.appendChild(mytr); mybody.appendChild(mytable); mytable.setAttribute("border","2"); } </script> </head> <body onload="tsample()"> </body> </html>

  • HTMLのリンクアンカーがおかしい???

    開発中にふと気が付いたことなのですが、以下のソースをブラウザ(IE5.0)で表示すると、aaaだけ、TABLE内のアンカーの左右でもリンクするようになってしまうのですが、なぜなのでしょうか??? <html> <head></head> <body> <table border=0 cellpadding=3 width=730> <tr><td align=center><a href="help_10.asp" target="right"><h2>aaa</h2></a></td></tr> <tr><td align=center><a href="help_20.asp" target="right"><h2>bbb</h2></a></td></tr> <tr><td align=center><a href="help_35.asp" target="right"><h2>ccc</h2></a></td></tr> </table> </body> <html>

  • HTML 表の中の表

    趣味でHPを作り始めたのですが表のところがよくわかりません。 大きな表(外枠)の中に2個目の表を作りたいのですが、どうしても2個目の表が大きな表(外枠)の真ん中に来てしまいます。2個目の表が大きな表の一番上にくっつくようにしたいのですがどうしたらいいのでしょうか。宜しくおねがいします。 <html> <body> <table border="1" height="500" width="300"> <tr> <td> <table border="1" width="100%"> <tr > <td colspan="3" > </td> </tr> <tr>   <td colspan="3"> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> </tr> </table>  </td> </tr> </table> </body> </html>

  • for文が全然ループしていない

     下のようなfor文を作って回してみましたが、チェックのために一番最後に書いたPRINT文で「0」が表示され、その下に下線表示だけです。  一体どこが悪いのでしょうか。全く分かりません。  また「$i==9」を「$i=<9」と書いていましたら、エラー表示になりました、何が原因でしょうか。  エディター(TeraPad)の認識に原因があるのでしょうか。  文法のエラー表示は出ていません。  9*9の表を表示させるだけの簡単なコードなのですが。 <html><head><title>make_matrix_html</title></head> <body> <table border="1"> <?php for($i=1;$i==9;$i++){ print ("<tr><br />"); for($j=1;$j==9;$j++){ print ("<td>".($i*$j)."</td>"); } print ("</tr>"); } print ($i*$j); ?> </table></body></html>

    • ベストアンサー
    • PHP
  • PHP かけ算

    PHPを使い下記の表を作ろうとしております。 ぱっと見た所あと少しで出来そうな気もするのですが、 なにかが間違っています。 誰かお分かりになるかたが今したらお伺いできますでしょうか。 | 1 2 3 4 5 6 7 8 9 -------------------------------- 1| * 2 * 4 * 6 * 8 * 2| 2 * 6 * 10 * 14 * 18 3| * 6 * 12 * 18 * 24 * 4| 4 * 12 * 20 * 28 * 36 5| * 10 * 20 * 30 * 40 * 6| 6 * 18 * 30 * 42 * 54 7| * 14 * 28 * 42 * 56 * 8| 8 * 24 * 40 * 56 * 72 9| * 18 * 36 * 54 * 72 * <table border ="1"> <?php for($i = 0; $i <=9; $i++){ echo'<tr>'; if($i == 0){ echo '<td>&nbsp;</td>'; } else { echo'<td>'.$i.'</td>'; } for($j = 1; $j<=9; $j++){ if($i == 0){ echo'<td>'.$j.'</td>'; continue; } if($i*$j % 2 == 0) { echo '<td>'. $i * $j.'</td>'; } else { echo '<td>*</td>'; } } echo '</tr>'; } ?> </table>

    • ベストアンサー
    • PHP
  • HTMLからURL部分を取り出したい。

    HTMLからTABLE情報をもとにURLを取り出したいのですが。 <TABLE> <TR> <TD><SMALL><B><A href="http://23336.html">11111</A></B></SMALL></TD></TR> <TR> <TD><SMALL><B><A href="http://23632.html">22222</A></B></SMALL></TD></TR> <TR> <TD><SMALL><B><A href="http://22152.html">33333<A></B></SMALL></TD></TR> </TABLE> のような書式から URL 部分を取り出したいのですが、うまくいきません。 Table = IE.document.all.tags("TABLE") for i = 0 to table.rows.length - 1  for j = 0 to table.rows.item(i).cells.length - 1    url = table.rows.item(i).cells.item(j).childNodes.item(0).href  next j next i .href ---> .innertext にすれば文字情報は取り出せます。 <SMALL> や <B> が入っていなければurlが正常に取り出せます。 よろしくお願い致します。

    • ベストアンサー
    • HTML