• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAを使った九九、及び合計、平均の表の作り方)

VBAを使った九九の表作り方

このQ&Aのポイント
  • Excel 2003を使ってVBAを使った九九の表を表示させる方法を教えてください。
  • 現在、九九の表を表示させるプロジェクトを作成中ですが、途中で詰まってしまい、九九だけでなく合計と平均も表示させることができません。
  • 以下のコードは私が途中まで組んだものです。どなたか助けてください。

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

  • ベストアンサー
  • CC_T
  • ベストアンサー率47% (1038/2202)
回答No.3

最終どういった表にしたいのか、誤解していたらごめんなさいね。 まず、numを変数として使用していますが、kukuからheikinへnumの値が引き渡しできていませんね。 kukuでもheikinでもDIM宣言してますよね。 したがってheikin実行時にはnumが再宣言されて0となっているため、  For i = 9 To 0 となってfor~nestが回っていません。 ※異なるプロシージャを呼び出してそこでも同じ変数の値を使うなら、プロシージャ外でPublic宣言する必要があります。 nってのも突然出てますので、n+1もn+2も単なる1,2と同じで計算されてない。 とりあえず、そこから見直していかれると良いでしょう。 ~~~ Sub kuku() Dim i As Integer, j As Integer, num As Integer Dim sum(100) As Double Sheets("Date").Cells.Clear num = InputBox("numの値を入力しなさい") For i = 1 To num Cells(1, 1 + i) = i Cells(1 + i, 1) = i For j = 1 To num Cells(1 + j, 1 + i) = i * j sum(i) = sum(i) + i * j Next j Cells(i + 1, num + 2) = sum(i) Cells(i + 1, num + 3) = sum(i) / num Next i Cells(1, 1) = "九九" Cells(1, num + 2) = "合計" Cells(1, num + 3) = "平均" 'ここからはおまけ(excel2007以降) Range(Cells(1, 1), Cells(1, num + 3)).Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .Color = 65535 .TintAndShade = 0 .PatternTintAndShade = 0 End With Range(Cells(1, 1), Cells(num + 1, 1)).Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .Color = 65535 .TintAndShade = 0 .PatternTintAndShade = 0 End With End Sub

zgtaf2100
質問者

お礼

とても参考になりました! おかげでプログラムを完成させることができました!!

その他の回答 (2)

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

Sub Kuku()   Dim num As Integer   Dim c As Range   With Sheets("Date")     .Cells.Clear     num = InputBox("numの値を入力しなさい")     .Range("A1").Value = 0     .Range("A1").Resize(, num + 1).DataSeries     .Range("A1").Resize(num + 1).DataSeries     For Each c In .Range("B2").Resize(num, num)       c.Value = (c.Column - 1) * (c.Row - 1)     Next     .Cells(1, 1).Value = "九九"     '合計     .Cells(1, num + 2).Value = "合計"     .Cells(2, num + 2).Resize(num).FormulaR1C1 = "=SUM(RC[-" & num & "]:RC[-1])"     '平均     .Cells(1, num + 3).Value = "平均"     .Cells(2, num + 3).Resize(num).FormulaR1C1 = "=AVERAGE(RC[-" & num + 1 & "]:RC[-2])"     .Cells(2, num + 2).Resize(num, 2).Value = .Cells(2, num + 2).Resize(num, 2).Value   End With End Sub

zgtaf2100
質問者

お礼

回答ありがとうございました。 とても助かりました!

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.1

九九だけですが参考に Sub Kuku()   Dim num As Integer   Dim c As Range   With Sheets("Date")     .Cells.Clear     num = InputBox("numの値を入力しなさい")     .Range("A1").Value = 0     .Range("A1").Resize(, num + 1).DataSeries     .Range("A1").Resize(num + 1).DataSeries     For Each c In .Range("B2").Resize(num, num)       c.Value = .Cells(1, c.Column).Value * .Cells(c.Row, 1).Value     Next   End With End Sub

関連するQ&A

専門家に質問してみよう