お世話になります。 先程の列のループの質問の続きです。 retuを変数にしてとりあえずL列M列 二つの条件を満たした合計がだせました。 2列くらいならいいですが 10列超えると下記では辛いです^^; もっと簡素な構文もあるかと思いましたが 出来たところまでです。 値は思った通りの数が出ましたが 構文として どうなんでしょうか? Sub syuukei3() 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 End Sub
2016/04/04 11:26
ゲストさんのコメント
(コメントID: 3641)
受講生 さん:
条件文の可読性を高めるためなら、発展編1で扱っている途中改行のノウハウを。 あと、発展編1レベルの方法で解決するのでしたら、モジュールレベル変数を使えばもっとキレイにいくかな。 発展編2で Function プロシージャを学べばさらに華麗に決まります。いずれにしても、まずは発展編1の復習を。
>お世話になります。 >先程の列のループの質問の続きです。 >retuを変数にしてとりあえずL列M列 二つの条件を満たした合計がだせました。 >2列くらいならいいですが 10列超えると下記では辛いです^^; >もっと簡素な構文もあるかと思いましたが >出来たところまでです。 >値は思った通りの数が出ましたが 構文として どうなんでしょうか? >Sub syuukei3() > 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 >End Sub >
受講生さんの投稿
(投稿ID: 2239)
先程の列のループの質問の続きです。
retuを変数にしてとりあえずL列M列 二つの条件を満たした合計がだせました。
2列くらいならいいですが 10列超えると下記では辛いです^^;
もっと簡素な構文もあるかと思いましたが
出来たところまでです。
値は思った通りの数が出ましたが 構文として どうなんでしょうか?
Sub syuukei3()
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
End Sub
ゲストさんのコメント
(コメントID: 3641)
条件文の可読性を高めるためなら、発展編1で扱っている途中改行のノウハウを。
あと、発展編1レベルの方法で解決するのでしたら、モジュールレベル変数を使えばもっとキレイにいくかな。
発展編2で Function プロシージャを学べばさらに華麗に決まります。いずれにしても、まずは発展編1の復習を。
>お世話になります。
>先程の列のループの質問の続きです。
>retuを変数にしてとりあえずL列M列 二つの条件を満たした合計がだせました。
>2列くらいならいいですが 10列超えると下記では辛いです^^;
>もっと簡素な構文もあるかと思いましたが
>出来たところまでです。
>値は思った通りの数が出ましたが 構文として どうなんでしょうか?
>Sub syuukei3()
> 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
>End Sub
>