Excel VBA質問箱 IV

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

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


37395 / 76732 ←次へ | 前へ→

【44504】小計・合計を求める
質問  ichiro  - 06/11/20(月) 1:47 -

引用なし
パスワード
     A   B    C    D     E     F
1  品名    形式      呼称    数量    単 価    金 額
2 ○○             100    1,250    125,000
3 △△            250    100     25,000
4 ■□            120    2,200    264,000
                    
  :                    
  :                    
  :                    
11 ××            110    150    16,500
12 ●◎            300    15     4,500


  A   B    C    D     E     F
1  品名    形式      呼称    数量    単 価    金 額
2 ○○             100    1,250    125,000
3 △△            250    100     25,000
4
5 ■□            120    2,200    264,000
6 小計                    414,000
  :                    
  :                    
  :                    
11 ××            110    150    16,500
12 ●◎            300    15     4,500
13  小計                   21,000


  合計                   454,000

任意の行の小計を算出(コマンドボタン1)『小計』
上記表はF列ですが汎用性を持たせる為にクリックして列を決めたい。
MsgBox "小計の列をクリック。"
次にMsgBox "小計の行をクリックしなさい。"上の表の場合A6をクリック
F13に414,000と(数式記入)表示させる。

次に小計を出す場合は列は上記で
指定してあるので(コマンドボタン2)『小計2』
MsgBox "小計の行をクリック。"
A13をクリック
前回の小計を探して
MsgBox "小計の範囲はF6からF12です。" ,4
F13に 21,000を(数式記入)表示
これを何度か実行し

最後に合計
アクティブせるから(仮にA100[任意])の場合A100に"合計"と
記入しF2:F99までの
小計行のF列をsumする。
-------------------------------------------------------------------
A101以降同様に上記作業が実行され

最後に総合計(仮に)A500に
合計行のTOTALを出したいのですがVBAで組めますか。?

よろしくお願いします。

下記コードを参考に考えたのですがVBA初心者ではなかなか
思い通りになりませんでした。
Option Explicit
Private Sub CommandButton1_Click()
With ActiveCell
    If .Column <> 2 Or .Value <> "" Then
      MsgBox "セルの場所が不適切です"
      Exit Sub
    End If
End With

Dim i As Long
Dim r As Long
Dim myRes As Variant

r = ActiveCell.Row

myRes = MsgBox("小計なら はい、合計なら いいえを選んでください", vbYesNoCancel)
If myRes = vbYes Then
For i = r - 1 To 1 Step -1
  If Cells(i, 1).Value = "小計" Or Cells(i, 1).Value = "合計" Or Cells(i, 1).Value = "計" Then
  If i = r - 1 Then
    MsgBox ("計算する行がありません")
  Else
    Cells(r, 2).Value = "=sum(B" & i + 1 & ":B" & r - 1 & ")"
    Cells(r, 1).Value = "小計"
  End If
    i = 1
  End If
Next

ElseIf myRes = vbNo Then
For i = r - 1 To 1 Step -1
  If Cells(i, 1).Value = "合計" Or Cells(i, 1).Value = "計" Then
  If i = r - 1 Then
    MsgBox ("計算する行がありません")
  Else
    Cells(r, 2).Value = "=sumif(A" & i + 1 & ":B" & r - 1 & ",""小計"",B" & i + 1 & ":B" & r - 1 & ")"
    Cells(r, 1).Value = "合計"
  End If
    i = 1
  End If
 Next
End If
End Sub
0 hits

【44504】小計・合計を求める ichiro 06/11/20(月) 1:47 質問
【44523】Re:小計・合計を求める…修正してみたので... ichiro 06/11/20(月) 15:15 発言
【44524】Re:小計・合計を求める…修正してみたので... ichiro 06/11/20(月) 16:03 発言
【44525】Re:小計・合計を求める…修正してみたので... りん 06/11/20(月) 16:14 発言
【44527】Re:小計・合計を求める…修正してみたので... ichiro 06/11/20(月) 16:22 発言
【44526】Re:小計・合計を求める…修正してみたので... Jaka 06/11/20(月) 16:21 発言

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