Excel VBA質問箱 IV

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

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


32870 / 76734 ←次へ | 前へ→

【49095】Re:月別集計
回答  Hirofumi  - 07/5/22(火) 21:35 -

引用なし
パスワード
   変更箇所を示します

1、「Public Sub Sample2」の中の

  '◆先頭「01係」の行位置(上記の基準からの行Offset)
'  Const clngNo As Long = 3
  Const clngNo As Long = 1 '★変更

  '◆出力表の行見出しを設定
'  vntTitle(0) = Array("年実績", "前年比", _
'          "達成率", "年実績", "年目標")
'  vntTitle(1) = Array("年差益", "前年比", _
'          "達成率", "年差益", "年目標")
  vntTitle(0) = Array("年実績", "年目標", "年実績", "前年比", "達成率") '★変更
  vntTitle(1) = Array("年差益", "年目標", "年差益", "前年比", "達成率") '★変更
  lngPitch = UBound(vntTitle(0)) + 1

'  vntOffset = Array(0, 3, 4)
  vntOffset = Array(2, 0, 1) '★変更

2、「Private Sub OutputTerminate」は全面変更の為、差し替え

'★プロシージャの全面変更
Private Sub OutputTerminate(rngTop As Range, _
              vntName As Variant, _
              lngYear As Long, _
              vntTitle As Variant, _
              lngStart As Long)
  
  Dim i As Long
  Dim j As Long
  Dim lngPitch As Long
  Dim vntResult As Variant
  Dim vntTmp As Variant
  
  '出力ピッチを取得
  lngPitch = UBound(vntTitle) + 1
  
  '行見出し作成用の配列を作成
  ReDim vntResult(1 To UBound(vntName, 2) * lngPitch, 1 To 2)
  For i = 1 To UBound(vntName, 2)
    vntResult(lngStart + (i - 1) * lngPitch + 2, 1) = vntName(1, i)
    For j = 0 To UBound(vntTitle)
      vntTmp = vntTitle(j)
      Select Case j
        Case 0
          vntTmp = Right(CStr(lngYear - 1), 2) & vntTmp
        Case 1, 2
          vntTmp = Right(CStr(lngYear), 2) & vntTmp
      End Select
      vntResult((i - 1) * lngPitch + j + 1, 2) = vntTmp
    Next j
  Next i
  
  With rngTop
    .Value = "係"
    '行見出しの出力
    .Offset(1).Resize(UBound(vntResult, 1), 2).Value = vntResult
    '列見出しの作成
    ReDim vntResult(11)
    For i = 0 To 11
      vntResult(i) = ((i + 3) Mod 12 + 1) & "月"
    Next i
    .Offset(, 2).Resize(, UBound(vntResult) + 1).Value = vntResult
    '算式の代入
    For i = 1 To UBound(vntName, 2)
      .Offset(lngStart + (i - 1) * lngPitch + 3, 2).Resize(, 12).FormulaR1C1 _
          = "=IF(R[-3]C="""","""",ROUND(R[-1]C/R[-3]C,2))"
      .Offset(lngStart + (i - 1) * lngPitch + 4, 2).Resize(, 12).FormulaR1C1 _
          = "=IF(R[-3]C="""","""",ROUND(R[-2]C/R[-3]C,4))"
    Next i
  End With
  
End Sub

6 hits

【49008】月別集計 hiro 07/5/20(日) 23:52 質問
【49016】Re:月別集計 Hirofumi 07/5/21(月) 7:43 発言
【49018】Re:月別集計 Hirofumi 07/5/21(月) 8:42 発言
【49049】Re:月別集計 Hirofumi 07/5/21(月) 19:49 回答
【49052】Re:月別集計 hiro 07/5/21(月) 21:27 お礼
【49056】Re:月別集計 hiro 07/5/21(月) 23:31 発言
【49058】Re:月別集計 Hirofumi 07/5/22(火) 0:39 回答
【49062】Re:月別集計 Hirofumi 07/5/22(火) 10:20 回答
【49063】Re:月別集計 hiro 07/5/22(火) 10:35 発言
【49075】Re:月別集計 Hirofumi 07/5/22(火) 15:19 発言
【49078】Re:月別集計 Hirofumi 07/5/22(火) 16:04 回答
【49079】Re:月別集計 Hirofumi 07/5/22(火) 16:06 回答
【49088】Re:月別集計 Hirofumi 07/5/22(火) 18:51 発言
【49089】Re:月別集計 hiro 07/5/22(火) 19:13 発言
【49091】Re:月別集計 Hirofumi 07/5/22(火) 19:53 回答
【49092】Re:月別集計 Hirofumi 07/5/22(火) 20:28 回答
【49094】Re:月別集計 hiro 07/5/22(火) 20:46 発言
【49095】Re:月別集計 Hirofumi 07/5/22(火) 21:35 回答
【49102】Re:月別集計 Hirofumi 07/5/23(水) 9:36 回答
【49114】Re:月別集計 hiro 07/5/23(水) 21:23 お礼
【49116】Re:月別集計 Hirofumi 07/5/23(水) 21:45 発言

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