[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『答えを任意セルに記入』(山口)
よろしくお願いします。
A ・ ・ F ○○製品 5 □○版 2 △製品 8 以下のマクロで得られる数値は「13」(MsgBoxで表示)ですが、表示後 これを任意のセルをクリックして貼り付ける方法をご教授お願いします。 Sub 品名別集計() Dim i As Variant
i = Application.InputBox( _ Title:="数量算出【A列】", _ Prompt:="検索文字列を入力しなさい。" & vbCrLf & "ある文字を含む項目の合計を算出します。" & vbCrLf & "集計範囲はA67〜A4500" & vbCrLf & "※注意" & vbCrLf & "上記範囲以外は別集計", _ Default:="製品(例として)", _ Left:=50, _ Top:=150, _ Type:=2) If VarType(i) = vbBoolean Then 'If i = "" Or i = False Then ' If i = "" Then Exit Sub End If MsgBox Format(WorksheetFunction.SumIf(Range("A67:A4500"), "*" & i & "*", Range("F67:F4500")), "#,##0") End Sub
< 使用 Excel:Excel2016、使用 OS:Windows10 >
Option Explicit
Sub 品名別集計()
Dim i As Variant Dim ans As Long Dim rngtx As String i = Application.InputBox(Title:="数量算出【A列】", _ Prompt:="検索文字列を入力しなさい。" & vbCrLf & _ "ある文字を含む項目の合計を算出します。" & _ vbCrLf & "集計範囲はA67〜A4500" & vbCrLf & _ "※注意" & vbCrLf & "上記範囲以外は別集計", _ Default:="製品(例として)", _ Left:=50, _ Top:=150, _ Type:=2) If VarType(i) = vbBoolean Then 'If i = "" Or i = False Then ' If i = "" Then Exit Sub End If 'MsgBox Format(WorksheetFunction.SumIf(Range("A67:A4500"), "*" & i & "*", Range("F67:F4500")), "#,##0") ans = Format(WorksheetFunction.SumIf(Range("A1:A4500"), "*" & i & "*", Range("F1:F4500")), "#,##0") i = Application.InputBox(Title:="数量算出結果【F列】= " & ans, _ Prompt:="出力先を入力して下さい。" & _ vbCrLf & "集計範囲はA67〜A4500" & vbCrLf & _ "※注意" & vbCrLf & "上記範囲以外は別集計", _ Default:="H2", _ Left:=50, _ Top:=150, _ Type:=2) If VarType(i) = vbBoolean Then 'If i = "" Or i = False Then ' If i = "" Then Exit Sub End If Range(i) = ans Application.Goto Range(i) End Sub (隠居じーさん) 2018/10/07(日) 09:11
(隠居じーさん) 2018/10/07(日) 09:17
Range(i) = ans ただし、 Default:="H2" デフォルト H2 のままはOKなのですが ここで別セルをクリックし、セル指定するとエラー rangeメソッドは失敗しました 対策は、ありますか?
(山口) 2018/10/07(日) 12:50
(隠居じーさん) 2018/10/07(日) 13:15
お待たせいたしました。 ^^ 下記コードに差し換えてください。
Option Explicit Sub 品名別集計() Dim i As Variant Dim ans As Long Dim r As Range i = Application.InputBox(Title:="数量算出【A列】", _ Prompt:="検索文字列を入力しなさい。" & vbCrLf & _ "ある文字を含む項目の合計を算出します。" & _ vbCrLf & "集計範囲はA67〜A4500" & vbCrLf & _ "※注意" & vbCrLf & "上記範囲以外は別集計", _ Default:="製品(例として)", _ Left:=50, _ Top:=150, _ Type:=2) If VarType(i) = vbBoolean Then 'If i = "" Or i = False Then ' If i = "" Then Exit Sub End If 'MsgBox Format(WorksheetFunction.SumIf(Range("A67:A4500"), "*" & i & "*", Range("F67:F4500")), "#,##0") ans = Format(WorksheetFunction.SumIf(Range("A1:A4500"), "*" & i & "*", Range("F1:F4500")), "#,##0") On Error Resume Next Set r = Application.InputBox(Title:="数量算出結果【F列】= " & ans, _ Prompt:="出力先を入力して下さい。" & _ vbCrLf & "集計範囲はA67〜A4500" & vbCrLf & _ "※注意" & vbCrLf & "上記範囲以外は別集計", _ Default:="H2", _ Left:=50, _ Top:=150, _ Type:=8) On Error GoTo 0 If r Is Nothing Then Exit Sub End If r = ans Application.Goto r End Sub (隠居じーさん) 2018/10/07(日) 13:38
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.