エクセル VBA
VBA内で、そのVBAの実行を制御することは可能でしょうか?
下のようなコードを作ったのですが、
Sub 承認書作成()
Dim ws0 As Worksheet, ws1 As Worksheet, r1 As Range
Dim i As Long
Dim nyuryoku(), chikuseki()
Set ws0 = Worksheets("承認書作成")
Set ws1 = Worksheets("顧客データ")
Set ws2 = Worksheets("業者コード")
Set ws3 = Worksheets("承認通知書")
Worksheets("顧客データ").Select
Range("テーブル1[[#Headers],[NO.]]").Select
Selection.End(xlToRight).Select
Selection.End(xlDown).Select
Selection.ListObject.ListRows.Add AlwaysInsert:=False
Range("B7").Select
nyuryoku = Array("b5", "d5", "f5", "h5", "j5", "l5", "n5", "p5", "b6", "d6", "f6", "h6", "j6", "l6", "n6", "p6", "b4", "d4")
'転記したいセルの位置
chikuseki = Array("0", "1", "5", "6", "8", "9", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "53", "54")
'転記先の列のオフセット値
Set r1 = ws1.Range("f" & Rows.Count).End(xlUp).Offset(0)
'データ蓄積セル
For i = 0 To UBound(nyuryoku)
r1.Offset(0, chikuseki(i)).Value = ws0.Range(nyuryokui)).Value
'入力
Next
MsgBox "入力完了"
Dim lRowNum As Long
'転記先となる行番号を求める
lRowNum = ws1.Cells(Rows.Count, "b").End(xlUp).Row
'転記
ws3.Cells(6, "d").Value = ws1.Cells(lRowNum, "j").Value
ws3.Cells(17, "g").Value = ws1.Cells(lRowNum, "c").Value
ws3.Cells(22, "g").Value = ws1.Cells(lRowNum, "l").Value
ws3.Cells(22, "ac").Value = ws1.Cells(lRowNum, "ab").Value
Set ws0 = Nothing
Set ws1 = Nothing
End Sub
ここに、
If call Macro1 then
call 承認書作成
'上のマクロです
Else: Msgbox"中止"
「Macro1を実行しないと承認書作成マクロを実行できない」
という
コードを組み込みたいのですが、うまくいきません。
VBA内に同じVBAを組み込むことは不可能なのでしょうか?
お礼
目からうろこです。こんな近くに答えがあるなんて・・・。 ありがとうございました。