
Excelのマクロで10個のセルの合計値が初めて200を超えたところに←を示すプログラムを作れ。また、10個のセルを合計しても200を越えない時は最後の行に合計値を表示せよ。 この問題でこの下の日本語の所を式に直すとどうなりますか?
教えてくださいm(_ _)m
全く分からなくて、、、
Dim i As Long
Dim total As Long
i=1
While 合計が200を超えていない かつ 11行目まで達していない
iの行をtotalに足す
iを1増やす
Wend
if 合計が200を超えている Then
i行に"←"
Else
i行に合計値を入力
End If
End Sub
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
No1です。
>4の横のB4のセルに←がでるようにしたいのですが、
>B5のセルに←がでてしまって上手くいきません。
No1にも書きましたが、処理の手順がそのようになっているのが原因です。
(コードそのものよりも、「処理手順の考え方」の問題です)
>どうしたら良いでしょうか?
たいした手間では無いので、1行ずつ実際にどう処理されていくのかを、処理手順に沿って机上でシミュレートしてみれば、理由はわかると思います。
理由がわかれば、どうすればよいかはご自身でお分かりになることと思います。
結果だけを貰っても、「考える力」は身に付きません。
No.2
- 回答日時:
普通に
For ~Next
でOK。
・・・
>iを1増やす
を使わずに、10個の合計をダラダラと書き連ねたマクロを書いてみましょう。
その中で
For ~Next
で繰り返し処理できそうなところを纏めてしまえばOK。
「繰り返し処理」ってのはそうやって考える。
……まあ、ダラダラと書いたマクロでも処理できるので、それで問題は解決するんだけどね。
No.1
- 回答日時:
こんばんは
セルの位置は「行番号」と「列番号」で決まるので、「i行に~」と書かれてもセル位置は決まりません。
以下のサンプルに、必要な列番号を追加してください。
ご質問文の上から順に
While total <= 200 And i < 11
total = total + Cells(i, ?)
i = i + 1
If total > 200 Then
Cells(i, ?).Value = "←"
Cells(i, ?).Value = total
※ ご提示のロジックのままだと、多分お望みの結果にはならないと思われます。
(正確に、どうなさりたいのかは不明ですけれど・・)
※ セルの値が「数値であること」のチェックもなされていないので、変な値が存在する場合には、エラーが発生する可能性があります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelVBAを使って、値...
-
VBAでセルをクリックする回...
-
i=cells(Rows.Count, 1)とi=cel...
-
エクセルvba:自己セルの情報取...
-
”戻り値”が変化したときに、マ...
-
特定行の色を変えたい(FlexGrid)
-
VBA実行後に元のセルに戻りたい
-
Excle VBA Findメソッドについて
-
DataGridViewで右寄せ左寄せが...
-
Excelで指定した日付から過去の...
-
エクセルvbaで、別シートの最下...
-
EXCELのVBA-フィルタ抽出後の...
-
クリックされたセルの位置を取...
-
screenupdatingが機能しなくて...
-
エクセルVBAでコピーして順...
-
特定のセルが空白だったら、そ...
-
【Excel VBA】指定行以降をクリ...
-
【VBA】Excelに数値を入力した...
-
連続する複数のセル値がすべて0...
-
DataGridViewの各セル幅を自由...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
特定行の色を変えたい(FlexGrid)
-
i=cells(Rows.Count, 1)とi=cel...
-
Excelで指定した日付から過去の...
-
エクセルvbaで、別シートの最下...
-
VBA実行後に元のセルに戻りたい
-
Application.Matchで特定行の検索
-
”戻り値”が変化したときに、マ...
-
VBAでセルをクリックする回...
-
任意フォルダから画像をすべて...
-
Excel VBAで、 ヘッダーへのセ...
-
TODAY()で設定したセルの日付...
-
【Excel VBA】指定行以降をクリ...
-
Excel vbaで特定の文字以外が入...
-
ExcelのVBAで数字と文字列をマ...
-
Excel VBA、 別ブックの最終行...
-
DataGridViewの各セル幅を自由...
-
VBA ユーザーフォーム ボタンク...
-
連続する複数のセル値がすべて0...
おすすめ情報
回答ありがとうございますm(_ _)m
A列の1行目から10行目に上から89 85 24 4 15 5 47 97 56 65と数字があり、4の横のB4のセルに←がでるようにしたいのですが、B5のセルに←がでてしまって上手くいきません。どうしたら良いでしょうか?
何度もすみません。教えてくださいm(_ _)m