Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


20740 / 76732 ←次へ | 前へ→

【61405】Re:同じ処理の簡略化
発言  ゆみこん  - 09/5/6(水) 7:10 -

引用なし
パスワード
   横から失礼して。

セルB3〜J3に値があるとします。
二次元配列を用いてみました。

Sub try()
  Dim r As Range
  Dim i As Integer, j As Integer
  Dim total(1 To 3, 1 To 3) As Variant

  i = 1 ' 1:朝食 2:昼食 3:夕食

  For Each r In Range("B3,E3,H3")
    j = r.Value ' 質問1
    total(i, 1) = IIf(j = 1, 10, IIf(j = 2, 0, Empty))

    j = r.Offset(, 1).Value ' 質問2
    total(i, 2) = IIf(j = 1, 0, IIf(j >= 2, 10, Empty))

    j = r.Offset(, 2).Value ' 質問3
    total(i, 3) = IIf(j >= 20, 10, IIf(j >= 10, 5, IIf(j < 10, 0, Empty)))

    i = i + 1
  Next
  '----------結果出力----------------------------
  Dim m As Integer, v As Variant
 
  v = Array("", "朝食", "昼食", "夕食")
  For m = 1 To 3
    MsgBox v(m) & "の質問1は " & total(m, 1) & vbLf & _
         v(m) & "の質問2は " & total(m, 2) & vbLf & _
         v(m) & "の質問3は " & total(m, 3) & vbLf & _
         v(m) & "の質問合計は " & total(m, 1) + total(m, 2) + total(m, 3)
  Next
End Sub

ご参考になれば。

1 hits

【61398】同じ処理の簡略化 たけ 09/5/5(火) 23:07 質問
【61401】Re:同じ処理の簡略化 neptune 09/5/5(火) 23:42 発言
【61403】Re:同じ処理の簡略化 たけ 09/5/6(水) 0:38 発言
【61405】Re:同じ処理の簡略化 ゆみこん 09/5/6(水) 7:10 発言
【61408】Re:同じ処理の簡略化 りん 09/5/6(水) 7:42 発言
【61411】Re:同じ処理の簡略化 neptune 09/5/6(水) 11:17 回答
【61412】Re:同じ処理の簡略化 たけ 09/5/7(木) 6:27 お礼

20740 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free