Excel VBA質問箱 IV

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

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


6854 / 76732 ←次へ | 前へ→

【75474】九九を途中で止めるプログラムを作成したいのですが…
質問  ガイツ  - 14/4/13(日) 3:19 -

引用なし
パスワード
   今晩は。ガイツと申します。VBAを初めて2週間程度の初心者です。
下記について上手くいかないところが有り、ご教授頂けますと幸いです。

<質問>
九九の表を作成したいのですが、条件として答え(a)が55以下となれば
それ以上は何も記載しないというプログラムを下記のように作成しました。

それなりにプログラムは走るのですが、本来55以下を出力して欲しいので、
7*8=56がaより大きくなる為、その前の7*7=49までを出力して欲しいのですが、
6の段の54を出力した時点で止まってしまいます。

試しにaの数値を56,57,58,59,60と増やしていくと、59までは55と同じ出力
になるのですが、a=60とした時点で7*8=56を出力し、止まってくれます。

非常に何となくで、分かりにくいと思うのですが、i=9,j=9としているもの
の、実はi=10(6*10=60をプログラムの中で計算している?)の結果を読み込んでい
るような印象を受けています。

かなり初歩的な質問かと存じますので、非常に恐縮ですが、何卒宜しくお願い致
します。

-----------------------------------------------------------------------
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

-----------------------------------------------------------------------

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 お礼

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