
No.1ベストアンサー
- 回答日時:
おはようございます。
一例ですが、下記でどうでしょうか?
Private Sub CommandButton1_Click()
Dim i As Long, 最初 As Long, 終わり As Long, 合計 As Long
最初 = TextBox1.Value
終わり = TextBox2.Value
合計 = 0
For i = 最初 to 終わり
合計 = 合計 + i
Next i
Label3 = 合計
End Sub
おはようございます。
求めていた動作になりました。
回答を参考にDo~Loopでも書いてみましたが、無事に実行できました。
ありがとうございます!
Private Sub CommandButton1_Click()
Dim i As Long, 最初 As Long, 終わり As Long, 合計 As Long
最初 = TextBox1.Value
終わり = TextBox2.Value
合計 = 0
i = 最初
Do While i <= 終わり
合計 = 合計 + i
i = i + 1
Loop
Label3 = 合計
End Sub
No.3
- 回答日時:
ええと...
Label3 = Label3 + (最初 + i)
これがおかしいですね。
2回ループすると ”最初” の値が2回足されます。
3回ループすると ”最初” の値が3回足されます。
…
この、”最初” の値を足すのはループの外に置きましょう。
・・・超余談・・・
数学的にはループを使わなくても別の計算式でもできるんですけどね。
1からnまでの数を足した値は次のように求めることができます。
n×(n+1)÷2
1から3なら、
■
■■
■■■
という三角形を考える。
そして同じ形の物をもう一つ用意してひっくり返して並べる。
■ ■■■
■■ ■■
■■■ ■
で、合体させて長方形にする。
■■■■
■■■■
■■■■
すると、縦は3、横は3+1の長方形になる。
面積は普通に3×(3+1)で求められる。
でも欲しいのはその半分の値。
で、2で割る。
3×(3+1)÷2
=3×4÷2
=6
こんな考え方になります。
・・・
そんなわけで、1から60までの値を足す計算は
60×61÷2=1830
で求められます。
で、ここから1から9までの値を足した数値を引けばいい。
与えられている数値は10なので、
(10-1)×10÷2=45
を引くという事になります。
すると
60×(60+1)÷2-(10-1)×10÷2
すなわち、
「終わり」×(「終わり」+1)÷2 - (「始め」-1)×「始め」÷2
この計算でも良いって事になります。
これなら For Next や Do while を使わなくても良い。
For Next や Do whileで行き詰った場合は、計算での算出方法も検討しようと思います。
詳細にありがとうございます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
みんなに挑戦してほしい「色彩検定」
これまで多くの方々が受検したが「色彩検定」。その目的や活用法は人それぞれ。今回は、色彩検定に影響を受けた男女3名にインタビュー。
-
文字列を繰り返して表示する VBA
Visual Basic(VBA)
-
vba 環境依存文字がListViewボックスに設定すると化ける
Visual Basic(VBA)
-
VBAのコードについて
Visual Basic(VBA)
-
4
VBAでtxtファイルを読み込む際にtabを認識したい
Visual Basic(VBA)
-
5
リストボックスについて
Excel(エクセル)
-
6
VBA 過去のファイル内の同じオブジェクトを一括削除
Visual Basic(VBA)
-
7
Excelマクロのコードができる方に質問します。
Visual Basic(VBA)
-
8
シート名をセルの値にするマクロについての質問
Visual Basic(VBA)
-
9
Excelマクロ 行の削除
Visual Basic(VBA)
-
10
複数のテキストファイルをexcelでそれぞれ別シートに書き出したい
Excel(エクセル)
-
11
エクセルマクロについて
Excel(エクセル)
-
12
excelにテキストファイルの指定行のみを書き出したい
Visual Basic(VBA)
-
13
Excelで縦列グループが横並びになっているのを、縦1列に並び変えたいです。
Excel(エクセル)
-
14
複数のcsvをVBAでマージする方法をご教示ください!
Visual Basic(VBA)
-
15
VBA教えてください!
Visual Basic(VBA)
-
16
VBAの質問です msg = ws.Cells(r, A").Value & "日に" & ws."
Visual Basic(VBA)
-
17
【VBA】if Like Or Andの組み合わせについて
Visual Basic(VBA)
-
18
VBA CSV取り込みについて
Visual Basic(VBA)
-
19
エクセルでカレンダーマクロの作成について
Visual Basic(VBA)
-
20
Excel VBA エクセル マクロ リスト上 条件一致 コピペ 繰り返す
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
CSVファイルの特定の行だけを読...
-
5
VBA for i=1 to lastrow
-
6
素数の個数を求めるプログラミング
-
7
UWSCの終了の仕方
-
8
ループフリー
-
9
範囲指定したセルを1つずつ飛...
-
10
Escキーを押すと、中断する時と...
-
11
【VBA】全て空白のセルの列の非...
-
12
イベントの発生を待つ
-
13
VBAでの一時停止と再開の方法
-
14
画面を強制的に再描画させる方法
-
15
ダイアログのテキストにマウス...
-
16
ループ結線の調査方法
-
17
フラグについて
-
18
エクセル関数で1〜12の数字がル...
-
19
For文を使った九九表の作成
-
20
pythonでファイルのコメント行...
おすすめ情報
公式facebook
公式twitter