Excel VBA質問箱 IV

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

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


6566 / 13646 ツリー ←次へ | 前へ→

【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 発言[未読]

【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

【44523】Re:小計・合計を求める…修正してみたの...
発言  ichiro  - 06/11/20(月) 15:15 -

引用なし
パスワード
   おしえてください。
G列の計算値は表示出来るのですが
A列に小計or合計が出ませんどこか間違っているのでしょうか

Option Explicit
Private Sub CommandButton1_Click()
With ActiveCell
    If .Column <> 7 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, 7).Value = "=sum(G" & i + 1 & ":G" & 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, 7).Value = "=sumif(A" & i + 1 & ":G" & r - 1 & ",""小計"",G" & i + 1 & ":G" & r - 1 & ")"
    Cells(r, 1).Value = "合計"
  End If
    i = 1
  End If
 Next
  End If
End Sub
下記を元に上記のように修正してみたのですが

ご指導お願いします。

>  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

【44524】Re:小計・合計を求める…修正してみたの...
発言  ichiro  - 06/11/20(月) 16:03 -

引用なし
パスワード
   補足説明です
新規bookを立ち上げて実行すると
小計 合計共
ちゃんと表示します
これはどういうことなのかなー???

【44525】Re:小計・合計を求める…修正してみたの...
発言  りん  - 06/11/20(月) 16:14 -

引用なし
パスワード
   ichiro さん、こんにちわ。
>補足説明です
>新規bookを立ち上げて実行すると
>小計 合計共
>ちゃんと表示します
試してみましたが、そのようですね。

>これはどういうことなのかなー???
小計又は合計が入る予定のセルを選択した時に、数式バーに表示されますか?

【44526】Re:小計・合計を求める…修正してみたの...
発言  Jaka  - 06/11/20(月) 16:21 -

引用なし
パスワード
   りんさんと違って試してないないし、レイアウトを自分で考えるのも面倒だったんで
ぱっと見ですが....。

>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, 7).Value = "=sum(G" & i + 1 & ":G" & r - 1 & ")"
>    Cells(r, 1).Value = "小計"
>  End If
>    i = 1
     ↑何でForの引数を変えちゃっているのでしょうか?
      ループの中でカウンターの値を変えるとろくなことがなかったような。
>  End If
>Next

【44527】Re:小計・合計を求める…修正してみたの...
発言  ichiro  - 06/11/20(月) 16:22 -

引用なし
パスワード
   ▼りん さん:
返事ありがとうございます。
>ichiro さん、こんにちわ。
>>補足説明です
>>新規bookを立ち上げて実行すると
>>小計 合計共
>>ちゃんと表示します
>試してみましたが、そのようですね。
>
>>これはどういうことなのかなー???
>小計又は合計が入る予定のセルを選択した時に、数式バーに表示されますか?

数式バーにも何も表さされないのですが・・・
プロテクトも全て解除の状態で行っています。

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