5倍速!メールマガジン
外部アカウントで登録
受講生の声
新着の講座投稿
新着の講座コメント
新着のノート投稿
投稿一覧へ新着のノートコメント
表示できる投稿はありません。
サイト運営者紹介
小川 慶一講師/教材/システム開発者紹介
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
表示できる投稿はありません。
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
受講生さんの投稿
(投稿ID: 2244)
修正版作成してみましたのでアドバイス願います。
改行と変数retu 追加です。
【修正版】・・前回に加え合計数とカウント数両方算出にしました
Option Explicit
Dim retu As String
_____________________の
Sub goukeiRenzoku()
retu = "L"
goukei1
retu = "M"
goukeicount2
retu = "N"
goukei1
retu = "O"
goukeicount2
______________________
End Sub
Sub goukei1() ’合計数
Dim goukei
Dim mAx1, mAx2 As Long
mAx1 = Range("A" & Rows.Count).End(xlUp).Row
mAx2 = Range("K" & Rows.Count).End(xlUp).Row
Dim hida
Dim migi
Dim gyo
gyo = 2
For migi = 3 To mAx2
goukei = 0
For hida = 3 To mAx1
If Range("E" & hida).Value = _
Range("K" & migi).Value And Range("H" & hida).Value = _
Range(retu & gyo).Value Then
goukei = goukei + Range("F" & hida).Value
End If
Range(retu & migi).Value = goukei
Next
Next
End Sub
_________________________________
Sub goukeicount2() ’カウント数
Dim goukei
Dim mAx1, mAx2 As Long
mAx1 = Range("A" & Rows.Count).End(xlUp).Row
mAx2 = Range("K" & Rows.Count).End(xlUp).Row
Dim hida
Dim migi
Dim gyo
gyo = 2
For migi = 3 To mAx2
goukei = 0
For hida = 3 To mAx1
If Range("E" & hida).Value = _
Range("K" & migi).Value And Range("H" & hida).Value = _
Range(retu & gyo).Value Then
goukei = goukei + 1
End If
Range(retu & migi).Value = goukei
Next
Next
End Sub
*************************************************************************************************************
【前回】
Sub syuukei4()
Dim goukei
Dim retu
Dim hida
Dim migi
For migi = 3 To 9
retu = "L"
goukei = 0
For hida = 3 To 13
If Range("E" & hida).Value = Range("K" & migi).Value And Range("H" & hida).Value = Range("L2").Value Then
goukei = goukei + Range("F" & hida).Value
End If
Range(retu & migi).Value = goukei
Next
Next
For migi = 3 To 9
retu = "M"
goukei = 0
For hida = 3 To 13
If Range("E" & hida).Value = Range("K" & migi).Value And Range("H" & hida).Value = Range("M2").Value Then
goukei = goukei + Range("F" & hida).Value
End If
Range(retu & migi).Value = goukei
Next
Next
ゲストさんのコメント
(コメントID: 3647)
だいたいこんな感じじゃないかな。
あえて細かいところをいろいろ挙げると:
Dim mAx1, mAx2 As Long
のところは、個別にデータ型の宣言を。これだと mAx1 は Variant型で宣言されてしまいます。
型宣言するならほかのもしましょう。
最後のプロシージャは End Sub がありません。
貼りつけるなら、それをコピペしてVBEに貼り付ける評価者の後作業も考えましょう。そうしたら、複数プロシージャの間に構文エラーで怒られること必須の文字列含めたりしませんね。上級者がガッカリして「コイツは話し相手にならないな。。」と思わせてしまうか将来伸びそうだと思うかを分けるのはこういうところ(自分の仕事があとでどう使われるかのイメージを豊かに持っている、という印象を与えられるかどうか)です。
>基礎編での質問でしたが 発展編で改行とモジュールの復習を・・とのアドバイスでしたのでこちらに再度掲載しました。
>修正版作成してみましたのでアドバイス願います。
>改行と変数retu 追加です。
>【修正版】・・前回に加え合計数とカウント数両方算出にしました
>Option Explicit
>Dim retu As String
>_____________________の
>Sub goukeiRenzoku()
> retu = "L"
> goukei1
> retu = "M"
> goukeicount2
> retu = "N"
> goukei1
> retu = "O"
> goukeicount2
>______________________
>End Sub
>Sub goukei1() ’合計数
> Dim goukei
> Dim mAx1, mAx2 As Long
> mAx1 = Range("A" & Rows.Count).End(xlUp).Row
> mAx2 = Range("K" & Rows.Count).End(xlUp).Row
> Dim hida
> Dim migi
> Dim gyo
> gyo = 2
> For migi = 3 To mAx2
> goukei = 0
> For hida = 3 To mAx1
> If Range("E" & hida).Value = _
> Range("K" & migi).Value And Range("H" & hida).Value = _
> Range(retu & gyo).Value Then
> goukei = goukei + Range("F" & hida).Value
> End If
> Range(retu & migi).Value = goukei
> Next
> Next
>End Sub
>_________________________________
>Sub goukeicount2() ’カウント数
> Dim goukei
> Dim mAx1, mAx2 As Long
> mAx1 = Range("A" & Rows.Count).End(xlUp).Row
> mAx2 = Range("K" & Rows.Count).End(xlUp).Row
> Dim hida
> Dim migi
> Dim gyo
> gyo = 2
> For migi = 3 To mAx2
> goukei = 0
> For hida = 3 To mAx1
> If Range("E" & hida).Value = _
> Range("K" & migi).Value And Range("H" & hida).Value = _
> Range(retu & gyo).Value Then
> goukei = goukei + 1
> End If
> Range(retu & migi).Value = goukei
> Next
> Next
>End Sub
>*************************************************************************************************************
>【前回】
> Sub syuukei4()
> Dim goukei
> Dim retu
> Dim hida
> Dim migi
> For migi = 3 To 9
> retu = "L"
> goukei = 0
> For hida = 3 To 13
> If Range("E" & hida).Value = Range("K" & migi).Value And Range("H" & hida).Value = Range("L2").Value Then
> goukei = goukei + Range("F" & hida).Value
> End If
> Range(retu & migi).Value = goukei
> Next
> Next
>
> For migi = 3 To 9
> retu = "M"
> goukei = 0
> For hida = 3 To 13
> If Range("E" & hida).Value = Range("K" & migi).Value And Range("H" & hida).Value = Range("M2").Value Then
> goukei = goukei + Range("F" & hida).Value
>
> End If
> Range(retu & migi).Value = goukei
> Next
> Next