
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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel VABについて 1.xlsm、VBA.xlsm2つのファイルがあり、1.xlsmにてVB 6 2021/12/13 17:46
- Excel(エクセル) マクロを修正できないものか、統合シートについて 3 2021/12/07 09:26
- Visual Basic(VBA) Excel VBAでフォルダ内の全テキストファイルの任意データを取得について 7 2021/12/18 16:00
- Visual Basic(VBA) EXCEL VBA シート比較し〇×判定 1 2021/11/19 11:49
- Excel(エクセル) excel2013 色付きセルの値合計 3 2023/02/28 11:48
- Visual Basic(VBA) 空のシートに関数を入れたい 2 2021/12/03 15:08
- Excel(エクセル) マクロ作成で困っています。お教え頂けませんか。 1 2021/12/12 17:02
- Visual Basic(VBA) 条件をつけてカウントする 4 2021/12/19 20:27
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- Excel(エクセル) VBA オリジナル関数で選択セルの合計を作成したい 3 2023/03/19 19:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelVBAを使って、値...
-
Application.Matchで特定行の検索
-
i=cells(Rows.Count, 1)とi=cel...
-
VBAでセルをクリックする回...
-
任意フォルダから画像をすべて...
-
エクセルvbaで、別シートの最下...
-
Excelで指定した日付から過去の...
-
【VBA】シート上の複数のチェッ...
-
VBAのオブジェクトブラウザの見方
-
【VBA】指定したセルと同じ値で...
-
VBA実行後に元のセルに戻りたい
-
セルに抜けた番号の代わりに空...
-
特定のセルが空白だったら、そ...
-
Excelのプルダウンで2列分の情...
-
”戻り値”が変化したときに、マ...
-
vbsのセル値の取得について
-
VBAでカテゴリ集計のやり方
-
Excel VBA、 別ブックの最終行...
-
セルに貼り付けた画像の上から...
-
エクセルでデータを別シートに5...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
i=cells(Rows.Count, 1)とi=cel...
-
Excelで指定した日付から過去の...
-
エクセルvbaで、別シートの最下...
-
特定のセルが空白だったら、そ...
-
VBA実行後に元のセルに戻りたい
-
【Excel VBA】指定行以降をクリ...
-
任意フォルダから画像をすべて...
-
【Excel】指定したセルの名前で...
-
VBAでセルをクリックする回...
-
【VBA】シート上の複数のチェッ...
-
EXCELのVBA-フィルタ抽出後の...
-
Excelのプルダウンで2列分の情...
-
Excel vbaで特定の文字以外が入...
-
TODAY()で設定したセルの日付...
-
”戻り値”が変化したときに、マ...
-
ExcelのVBAで数字と文字列をマ...
-
VBA ユーザーフォーム ボタンク...
-
Excel VBA マクロ ある列の最終...
-
Excel VBA、 別ブックの最終行...
おすすめ情報
回答ありがとうございますm(_ _)m
A列の1行目から10行目に上から89 85 24 4 15 5 47 97 56 65と数字があり、4の横のB4のセルに←がでるようにしたいのですが、B5のセルに←がでてしまって上手くいきません。どうしたら良いでしょうか?
何度もすみません。教えてくださいm(_ _)m