- ベストアンサー
条件に一致する行のみを選択し・・・
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (3)
No1回答を手直しさせてください。次のマクロすべてをコピー貼り付けして、マクロ5だけ実行してください。なおデータ数に応じたプログラム修正は前回の説明どおりにしてください。 Sub Macro2() ' ' Macro2 Macro ' マクロ記録日 : 2013/8/10 ユーザー名 : ' Dim i As Integer, sa As Variant, wa As Variant For i = 2 To 10 sa = Int(Worksheets(2).Cells(i, 9)) - Worksheets(2).Cells(i, 9) If sa = 0 Then Worksheets(3).Cells(i, 9) = Worksheets(2).Cells(i, 9) Else 'MsgBox sa End If Next ' End Sub Sub Macro3() ' ' Macro3 Macro ' マクロ記録日 : 2013/8/10 ユーザー名 : ' ' Dim i As Integer, sa As Variant, wa As Variant Worksheets(3).Activate wa = 0 For i = 2 To 10 wa = wa + Cells(i, 9) Next Cells(12, 9) = wa End Sub Sub Macro4() ' ' Macro4 Macro ' マクロ記録日 : 2013/8/10 ユーザー名 : ' ' Range("A2:I10").Select Selection.Copy Sheets("Sheet2").Select Range("A2").Select ActiveSheet.Paste End Sub Option Explicit Sub Macro5() ' ' Macro5 Macro ' マクロ記録日 : 2013/8/11 ユーザー名 : ' Macro6 Macro4 Macro2 Macro3 End Sub Sub Macro6() ' ' Macro6 Macro ' マクロ記録日 : 2013/8/11 ユーザー名 : ' ' Range("C1").Select Selection.AutoFilter Selection.AutoFilter Selection.AutoFilter Field:=1, Criteria1:="Note_on_c" End Sub
お礼
ご回答ありがとございます。ペースト用に作って頂き大変助かります。
1.上端行(1行目)に新しい1行を追加して、左端セルから右へ 項目名 FLD1、FLD2、FLD3、…、FLD9 を入力 2.セル J1 に数値 5 を入力 3.下に記した各セルに、その右に示した式を入力 K2: =FIND("Note_on_c",C2)>0 L2: =MOD(I2,1)=0 M2: =I2>0 なお、範囲 K1:M1 は必ず空白のままにしておく 添付図 Fig-1 に以上の状態を示した。 4.範囲 A1:I21 を選択して、次の[フィルタオプションの設定]を実行 [抽出先]: “選択範囲内” [リスト範囲]: $A$1:$J$21 [検索条件範囲]: $K$1:$M$2 その結果を添付図 Fig-2 に示した。 5.セル J5 を選択して[コピー]を実行 6.ステップ4で抽出されたF列のデータ(Fig-2 の項目名 FLD6 より 下方の2個のデータ)を選択 7.[編集]→[ジャンプ]→[セル選択]を実行 8.“可視セル”に目玉を入れて Enterキーを「エイヤッ!」と叩き付け 9.[編集]→[形式を選択して貼り付け]を実行 10.“加算”に目玉を入れて Enterキーを「エイヤッ!」と叩き付け 11.[データ]→[フィルタ]→[すべて表示]を実行
お礼
御回答有り難うございます。エイヤーですか笑 確かに最終工程のエンターは気合はいりますね笑 MODの使い方に関しても、新しく知ることができ、ありがとございます。
つぎの4つのマクロをまくろ1、まくろ4、マクロ2、マクロ3の順に実行するとシート3に合計が計算されます。 データすうが仮に10としてマクロを作っています。データ数がこれをオーバーするときは、マクロ2,3,4のなかの10というところをそれぞれ修正してください。 Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2013/8/10 ユーザー名 : ' ' Worksheets(1).Activate Columns("C:C").Select Selection.AutoFilter Columns("C:C").Select Selection.AutoFilter Selection.AutoFilter Field:=1, Criteria1:="Note_on_c" End Sub Sub Macro2() ' ' Macro2 Macro ' マクロ記録日 : 2013/8/10 ユーザー名 : ' Dim i As Integer, sa As Variant, wa As Variant For i = 2 To 10 sa = Int(Worksheets(2).Cells(i, 9)) - Worksheets(2).Cells(i, 9) If sa = 0 Then Worksheets(3).Cells(i, 9) = Worksheets(2).Cells(i, 9) Else 'MsgBox sa End If Next ' End Sub Sub Macro3() ' ' Macro3 Macro ' マクロ記録日 : 2013/8/10 ユーザー名 : ' ' Dim i As Integer, sa As Variant, wa As Variant Worksheets(3).Activate wa = 0 For i = 2 To 10 wa = wa + Cells(i, 9) Next Cells(12, 9) = wa End Sub Sub Macro4() ' ' Macro4 Macro ' マクロ記録日 : 2013/8/10 ユーザー名 : ' ' Range("A2:I10").Select Selection.Copy Sheets("Sheet2").Select Range("A2").Select ActiveSheet.Paste End Sub
お礼
非常にシンプルでカスタマイズ性が高く素晴らしいですね。ありがとうございます。