|
今晩は。ガイツと申します。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
-----------------------------------------------------------------------
|
|