プロが教えるわが家の防犯対策術!

以下のコールステートメントをごらんください
3つのマクロを連続実行しています

そこで質問です
1つ目のマクロ1で、クリップボードにデータがコピーされていなかったら
マクロ2・3を実行しないように出来ますか?


ご存じの方、教えて下さい

【コールステートメント】

Sub 連続()


Call 他のExcelへユニコード書式にて貼付_MSGBOXあり

Call 別ブックへ転記

Call a10貼付より下を全てクリアー



End Sub




【マクロ1】
Sub 他のExcelへユニコード書式にて貼付_MSGBOXあり()

Dim CB As Variant

CB = Application.ClipboardFormats


If CB(1) = True Then
MsgBox "クリップボードにコピーされていません", vbOKOnly + vbCritical, "A部門"
Exit Sub
End If

Worksheets("転記元").Range("A10").Select

Worksheets("転記元").PasteSpecial Format:="Unicode テキスト"


End Sub





【マクロ2】
Sub 別ブックへ転記()


Dim ws1 As Worksheet

Dim wb2 As Workbook

Dim ws2 As Worksheet


Dim maxrow2 As Long

Dim row2 As Long

Dim i As Integer




Set ws1 = Worksheets("転記元")




For i = 1 To Workbooks.Count

If Workbooks(i).Name = "book2.xlsx" Then '転記先のブック。


Set wb2 = Workbooks(i)

End If

Next




Set ws2 = wb2.Worksheets("sheet1") '転記先シート




maxrow2 = ws2.Cells(Rows.Count, "B").End(xlUp).Row '転記先のブックB列


row2 = maxrow2 + 1

ws2.Cells(row2, 2).Resize(1, 8).Value = ws1.Range("A1").Resize(1, 8).Value '転記元から転記先へ7セル分を転記.a1から7セル分。天気先。1列目から。



ws1.Range("I1").Copy ws2.Cells(row2, 10).Resize(1, 1)



wb2.Save '転記先のブックを上書き


End Sub

【マクロ3】
Sub a10貼付より下を全てクリアー()

Range("A10:XFD1048576").ClearContents


End Sub

A 回答 (1件)

こんにちは



>1つ目のマクロ1で、クリップボードにデータがコピーされて
>いなかったらマクロ2・3を実行しないように出来ますか?

現状の構成を維持したいのなら、マクロ1の判定結果を引数で戻せるようにして、本体のマクロでその結果を判断して処理の流れを制御すれば良いのでは?

引数で戻すのが面倒ならば、マクロ1をFunctionにすれば、そのままの戻り値を利用できます。

あるいは、判定自体を本体の処理内で行って、処理の流れを制御するようにすれば全体がスッキリするかもしれません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A