Excel VBA質問箱 IV

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

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


75764 / 76738 ←次へ | 前へ→

【5406】Re:おしえてください。
回答  Hirofumi E-MAIL  - 03/5/10(土) 15:56 -

引用なし
パスワード
   チョット、意味が理解できない部分が有り怪しいのですけれど?
乗算の結果をE列以降に、D列の行数だけ書き込みます

Public Sub TestCalc2()

  Dim i As Long
  Dim j As Long
  Dim lngTop As Long
  Dim lngEnd As Long
  Dim vntData As Variant
  Dim vntResult As Variant
  
  'データ先頭行
  lngTop = 4
  'データ最終行取得
  lngEnd = Cells(65536, 1).End(xlUp).Row
  '結果書き込み用配列の確保
  ReDim vntResult(1 To (lngEnd - lngTop + 1), _
            1 To (lngEnd - lngTop + 1))
  
  'データを配列に取得
  vntData = Range(Cells(lngTop, 1), Cells(lngEnd, 4)).Value
  
  '最終行まで繰り返し
  For i = 1 To lngEnd - lngTop + 1
    'D列の最終行まで繰り返し
    For j = 1 To lngEnd - lngTop + 1
      '集計用配列に計算結果を代入
      If vntData(i, 2) <> "S" Then
        'B列が"S"以外の場合
        vntResult(i, j) = vntData(i, 1) * vntData(i, 2)
      Else
        'B列が"S"の場合、D列の値に因り計算
        vntResult(i, j) = vntData(i, 1) * vntData(j, 4)
      End If
    Next j
  Next i
  
  '集計用配列をセルに書き込み
  Range(Cells(lngTop, 5), _
      Cells(lngEnd, 5 + lngEnd - lngTop)).Value = vntResult
  
End Sub
7 hits

【5370】おしえてください。 Coo 03/5/8(木) 21:12 質問
【5372】Re:おしえてください。 Nakamura 03/5/8(木) 23:28 回答
【5373】Re:おしえてください。 Coo 03/5/9(金) 2:38 発言
【5378】Re:おしえてください。 Jaka 03/5/9(金) 11:10 回答
【5380】Re:おしえてください。 Nakamura 03/5/9(金) 12:41 発言
【5398】Re:おしえてください。 Coo 03/5/9(金) 23:56 質問
【5402】Re:おしえてください。 Hirofumi 03/5/10(土) 9:10 回答
【5404】Re:おしえてください。 Coo 03/5/10(土) 14:52 質問
【5406】Re:おしえてください。 Hirofumi 03/5/10(土) 15:56 回答
【5438】Re:おしえてください。 Coo 03/5/13(火) 23:25 お礼

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