Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6853 / 76732 ←次へ | 前へ→

【75475】Re:九九を途中で止めるプログラムを作成したいのですが…
発言  γ  - 14/4/13(日) 9:07 -

引用なし
パスワード
   いくつかコメントします。

(1)まず、インデントをきちんとつけることです。
これによってプログラムの構造が見やすくなるはずです。

Sub 掛け算で答えが55以下を表示し、その後はループしない()
  Dim i As Integer
  Dim j As Integer
  Dim a As Integer
  Dim sheetobj As Worksheet
  
  Set sheetobj = ThisWorkbook.Worksheets("Sheet1")

  With sheetobj
    a = 55   '(←ココを56,57,58,59,60と増やしてみました)
    For i = 1 To 9
      For j = 1 To 9
        If i * j > a Then
          Exit For
        Else
          .Cells(i + 1, j + 1) = i * j
        End If
      Next j
      If i * j > a Then
        Exit For
      End If
    Next i
  End With
End Sub

(いやきちんとやってます、ということなら、
 投稿の際、それをコピーペイストするようにしてください)

(2)こうした作業をデバッグ(虫取り)といいますが、
そのための技法はご存じですか?
この場合は、ステップ実行(F8を押して、一行ごとに実行させる)が
有効です。自分の思い違いに気づけます。

(3)
> 条件として答え(a)が55以下となれば
> それ以上は何も記載しないというプログラム 
「それ以上しない」とは、
・そのあとすべてなら、
 Exit Subで抜けるべきだし、(そうではなさそう)
・その行は、それ以上しないということなら、
 Exit Forはひとつでいいはずで、
      If i * j > a Then
        Exit For
      End If
 が不要ではないですか?

手を動かして確認してみて下さい。

0 hits

【75474】九九を途中で止めるプログラムを作成したいのですが… ガイツ 14/4/13(日) 3:19 質問
【75475】Re:九九を途中で止めるプログラムを作成したい... γ 14/4/13(日) 9:07 発言
【75476】Re:九九を途中で止めるプログラムを作成したい... ガイツ 14/4/13(日) 12:11 お礼
【75477】Re:九九を途中で止めるプログラムを作成したい... γ 14/4/13(日) 13:58 発言
【75478】Re:九九を途中で止めるプログラムを作成したい... ガイツ 14/4/13(日) 17:00 お礼
【75479】Re:九九を途中で止めるプログラムを作成したい... γ 14/4/13(日) 17:56 発言
【75490】Re:九九を途中で止めるプログラムを作成したい... ガイツ 14/4/14(月) 20:50 お礼

6853 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free