マクロ 記述が悪くエラーがかかります。
いつも回答ありがとうございます。
最後らへんの記述で実行時エラー【型が一致しません】がかかります。
Worksheets("集計用").Range(b1, b2).Copy _
Destination:=Worksheets(b3).Range("B2") ← ここでエラーがかかる。
ワークシート名に変数を使用しているせいだと思います。
解決する方法を御指導して頂けないでしょうか?宜しくお願い致します。
Sub グラフの作成()
Dim Date1 As Date
Dim Date2 As Date
Dim SName As String
Dim b1 As Variant
Dim b2 As Variant
Dim b3 As Variant
Dim d1 As Variant
Dim d2 As Variant
Dim d3 As Variant
With Worksheets("集計用")
s1:
Date1 = Application.InputBox("最初の日付を2012/12/1のように入力してください。")
If Date1 = 0 Then
MsgBox "キャンセルされました。", vbOKOnly
Exit Sub
End If
Set b1 = .Columns("B").Find(Date1, , xlValues, 1)
If b1 Is Nothing Then
If MsgBox("入力した日付が見当たりません。" & vbNewLine & _
"再度入力しますか?", vbYesNo) = vbYes Then
GoTo s1
Else
MsgBox "処理を中止しました", vbOKOnly
Exit Sub
End If
End If
d1 = b1.Row
s2:
Date2 = Application.InputBox("最初の日付を2012/12/31のように入力してください。")
If Date1 = 0 Then
MsgBox "キャンセルされました。", vbOKOnly
Exit Sub
End If
Set b2 = .Columns("B").Find(Date2, , xlValues, 1)
If b2 Is Nothing Then
If MsgBox("入力した日付が見当たりません。" & vbNewLine & _
"再度入力しますか?", vbYesNo) = vbYes Then
GoTo s2
Else
MsgBox "処理を中止しました", vbOKOnly
Exit Sub
End If
End If
d2 = b2.Row
s3:
SName = Application.InputBox("商品名を入力して下さい。")
If SName = "False" Then
MsgBox "キャンセルされました。", vbOKOnly
Exit Sub
End If
Set b3 = .Rows("3").Find(SName, , xlValues, 1)
If b3 Is Nothing Then
If MsgBox("入力した商品名が見当たりません。" & vbNewLine & _
"再度入力しますか?", vbYesNo) = vbYes Then
GoTo s3
Else
MsgBox "処理を中止しました", vbOKOnly
Exit Sub
End If
End If
d3 = b3.Column
End With
Worksheets.Add After:=Worksheets("集計用")
ActiveSheet.Name = b3
Worksheets("集計用").Range(b1, b2).Copy _
Destination:=Worksheets(b3).Range("B2")
Worksheets("集計用").Range(Cells(d1, d3), Cells(d2, d3)).Copy _
Destination:=Worksheets(b3).Range("C2")
End Sub
お礼
なるほど納得です。 前半と後半でThen以降の記述のしかたが違っていたことに気づきませんでした。 For Each S In Worksheets If S.Name = "合計" Then flag = True Else flag = False End If できちんと狙い通りに動作しました。 For Each S In Worksheets If S.Name = "合計" Then flag = True ' Else ' flag = False ' End If では逆にエラーが発生することを確認しました。