Excel VBA 質問スレッド №2067 (解決済)

初心者の課題を助けてください

投稿者 : はなまる     投稿日時 : 2025/01/07(Tue) 23:34:32     OS : Windows 11     EXCEL : 未指定
大学の課題についてです。①、②は解くことができたのですが(合っているかは分かりませんが、、)③と④の問題が全くわからないのでコードを教えて欲しいです。(分かりづらくてすみません、、、プログラミングほぼ未経験者です。)

前提:
・C2を初期値セルの入力セルとし、(B4:E7)のセルに4×4のマスを作るとする。
・(B4:D6)セルには初期値に入力した数字が反映される
・黄色のセルとされる(E4:E6)と(B7:D7)には横縦の数字の合計が入る。
・(E7)セルは縦横の黄色のセルの合計値が入る。

①ifステートメントを使用して、初期値セルの入力値(C2)が1~100までの場合「OK」と表示、入力値が範囲外の場合には、エラー表示((例)「入力範囲外です」)が出て、黄色の合計セル及び連番が入る9マスのセルがクリアされるコードを作成

予想答えコード↓
Sub practice_14_1() 
If Range("C2"). Value >= 1 And Range("C2"). Value <= 100 Then 
MsgBox "OK" 
Else MsgBox"入力範囲外です" 
End If Range("B4:7"). 
ClearContents End Sub

② For文を使用して、表への入力順に従って入力されるコードを作成

予想答えコード↓
Sub practice_14_2()
For i= 4 To 6
For J = 2 To 4
Cells(i, J). Value = i * J
Next J
Next i
End Sub

③ ①、②を使用して初期値セルの入力値が1~100の場合、表への入力順に従って入力値から連番の9つの数字が入力され、行・列ごとの3マスの合計値(黄色セル)が出力されるようにしてください。 また、入力値が範囲外の場合には、エラー表示が出て、合計値(黄色セル)と連番が入る9マスのセルがクリアされるようにしてください。

④ 「入力値から連続した9つの値の合計」を求める関数を作成し、Functionプロシージャを上記Subプロシージャ内で実行する形式で表合計値をE7に算出してください。

スポンサーリンク
[返信 1] Re : 初心者の課題を助けてください
投稿者 : てらてら     投稿日時 : 2025/01/08(Wed) 06:11:48
こんにちは。

>(合っているかは分かりませんが、、)
コードを走らせなければ、いつまで経っても正解にはたどり着けません。

参照にしてください。


Sub practice_14_1()
    If Range("C2").Value >= 1 And Range("C2").Value <= 100 Then
        MsgBox "OK"
    Else: MsgBox "入力範囲外です"
    End If
    'Range("B4:7").ClearContents    間違い
    Range("B4:E7").ClearContents
End Sub


'③
Sub practice_14_3()

    n = Range("C2")
    If Range("C2").Value >= 1 And Range("C2").Value <= 100 Then
        MsgBox "OK"
        
        For i = 4 To 6
            For j = 2 To 4
                Cells(i, j).Value = n
                n = n + 1
            Next j
        Next i
        
        Total = 0
        For i = 4 To 6
            For j = 2 To 4
                Total = Total + Cells(i, j).Value
            Next j
            Cells(i, "E") = Total
        Next i
        
        Total = 0
        For j = 2 To 4
            For i = 4 To 6
                Total = Total + Cells(i, j).Value
            Next i
            Cells(7, j) = Total
        Next j
        
    Else
        MsgBox "入力範囲外です"
        Range("B4:E7").ClearContents

    End If

End Sub

'④ 
Function myTotal() As Long
    Total = 0
    For i = 4 To 6
        Total = Total + Cells(i, "E").Value
    Next i

    myTotal = Total
End Function

Sub practice_14_4()
    Range("E7") = myTotal
End Sub

[返信 2] Re : 初心者の課題を助けてください
投稿者 : はなまる     投稿日時 : 2025/01/16(Thu) 13:54:23
無事とくことができました!ありがとうございます。

当掲示板について
  • Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
  • 記事内ではHTMLのタグは使用できません。
  • 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
  • Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
  • Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
お 名 前  :
内  容   :

ステータス  :

認証コード  : キャプチャ画像 




( 処理日時 : 2025-01-25 11:37:06 )
タイトルとURLをコピーしました