• ベストアンサー

excel プログラミング

次の問題はどのようにプログラミングすればよいのでしょうか 現在の人口が100万人であるとして1年に5%ずつ人口が増えるとすると(人口増加率5%) 50年後にはどのくらいに増えているか?またワークシートに1年ごとの計算結果を出力しなさい このようなユーザーフォームを作って計算するのですが・・・

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

  • ベストアンサー
  • freetaka
  • ベストアンサー率53% (106/197)
回答No.4

とりあえず画像をもとに簡単に作ってみましたが セル内の表示形式とか 文字列で入力された時のエラー処理はしてません 内容は自分で理解してください Private Sub CommandButton1_Click() Dim Jinkou As Double Dim Zouka_ritsu As Double Dim Zouka_nen As Integer Jinkou = TextBox1.Text Zouka_ritsu = 1 + (TextBox2.Text / 100) Zouka_nen = TextBox3.Text Kekka = 0 Dim i As Integer For i = 1 To Zouka_nen Jinkou = Jinkou * Zouka_ritsu Sheets("sheet1").Cells(i, 1).Value = i & "年目" Cells(i, 2) = Jinkou Next 'とりあえず小数点以下を10桁まで TextBox4.Text = Round(Jinkou, 10) End Sub

effel993
質問者

お礼

おー!! これで分かりました!! ありがとうございました<m(__)m> 感謝感謝です。

その他の回答 (4)

  • freetaka
  • ベストアンサー率53% (106/197)
回答No.5

修正 kekka = 0 はいらないです・・・

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

問題は自分で考えてくださいね 基本形だけ テキストボックスが上から順にTextbox1~4だとして Private Sub CommandButton1_Click() TextBox4.Value = TextBox1.Value For i = 1 To TextBox3.Value TextBox4.Value = TextBox4.Value * (1 + TextBox2.Value / 100) Cells(i, 1).Value = TextBox4.Value Next End Sub ざ~とこんな感じです。 それぞれの意味は分かりますかね? シートの構成やテキストボックスが空白、あるいは文字列だったりした時のエラー処理 などは自分で考えてください。

  • ooooku
  • ベストアンサー率13% (121/905)
回答No.2

B1を1000000として =B1*1.05で いいのではないでしょうか?

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

>年後にはどのくらいに増えているか?  ⇒普通に複利計算で良いと思う。   年後の人数=ベース人数*(1+0.05)^年数 >またワークシートに1年ごとの計算結果を出力  ⇒年=行として次にような感じでしょうか。   For 年数 = 1 To 年数   Cells(年数,1).Value = ベース人数*(1+0.05)^年数   Next

関連するQ&A