| キャンセルが出来ない | |
|---|---|
[196612] キャンセルが出来ない- ■親トピック/記事引用/メール受信=OFF■ □投稿者/ みい -(2025/06/11(18:05)) □U R L/ 以前にもお世話になりました。
下にちょっときたない上前半コードですがありまして
msboxの【工事受付票をコピーします】ここでキャンセルしたいのですが
キャンセルボタンを押してもそのままコードが進みます。
どこを直したらいいか教えていただきたいです。
EXCEL2019使用です。
Sub まだテスト()
Dim d
Dim lastNo As String, nextNo As String
lastNo = Right(Sheets("控").Range("D65536").End(xlUp), 3)
nextNo = LongToString(StringToLong(lastNo) + 1)
With Worksheets("工事受付票")
d = Format(Date, "yy")
Dim rc As VbMsgBoxResult
Dim ALT As VbMsgBoxResult
If d = Left(Sheets("控").Range("D65536").End(xlUp), 2) Then
MsgBox lastNo & "の次は" & nextNo & "です。"
.Range("AD1").Value = Format(Date, "yy") & nextNo
MsgBox "工事受付票をコピーします。よろしいですか?", vbYesNo + vbExclamation, "番号の確認"
Else
MsgBox lastNo & "の次は 001 です。"
.Range("AD1").Value = Format(Date, "yy") & "001"
rc = MsgBox("実行してよろしいですか?", vbYesNo + vbQuestion, "実行確認")
If rc = vbYes Then
MsgBox "実行しました。" '←「はい」ボタンをクリックしたときの処理。
End If
If rc = vbNo Then
MsgBox "中止しました。"
Exit Sub
End If
End If
Dim i
Dim rowNo工事受付票 As Integer
Dim rowNo控 As Integer
Dim d1 As Date
Range("AA2").Value = Date
Dim strDate As Date
Dim strNo1 As String
Dim strNo2 As String
Dim strNo3 As String
Dim strNo4 As String
Dim strUketsuke As String
Dim strIrai1 As String
Dim strIrai2 As String
Dim strKouji1 As String
Dim strKouji2 As String
Dim ttrNaiyou As String
strDate = .Range("aa2")
strNo1 = .Range("aa1")
strNo2 = .Range("ac1")
strNo3 = .Range("ad1")
strNo4 = .Range("ah1")
strUketsuke = .Range("ad5")
strIrai1 = .Range("d3")
strIrai2 = .Range("m3")
strKouji1 = .Range("t3")
strKouji2 = .Range("ae3")
strNaiyou = .Range("d5")
rowNo控 = Sheets("控").Range("D65536").End(xlUp).Row + 1
Sheets("控").Activate
Cells(rowNo控, 1).Value = strDate
Cells(rowNo控, 2).Value = strNo1
Cells(rowNo控, 3).Value = strNo2
Cells(rowNo控, 4).Value = strNo3
Cells(rowNo控, 5).Value = strNo4
Cells(rowNo控, 6).Value = strUketsuke
Cells(rowNo控, 7).Value = strIrai1
Cells(rowNo控, 8).Value = strIrai2
Cells(rowNo控, 9).Value = strKouji1
Cells(rowNo控, 10).Value = strKouji2
Cells(rowNo控, 11).Value = strNaiyou
'工事受付票のコピー
Sheets("工事受付票").Select
Sheets("工事受付票").copy
Sheets("工事受付票").Select
Sheets("工事受付票").Name = "コピー"
Sheets("コピー").Unprotect Password:="108615"
ActiveSheet.Shapes.SelectAll
Selection.Delete
'工事受付票の記入箇所の消去
Windows("「テスト」工事受付票.xls").Activate
Sheets("工事受付票").Select
Range("AA1,AA2,AD1,D3,M3,T3,AE3,D5").Select
Selection.ClearContents
Range("AA2").Select
'シートの保護
Sheets("工事受付票").Protect Password:="108615"
Sheets("控").Protect Password:="108615"
'シートの保存
'ActiveWorkbook.Save
Application.DisplayAlerts = False
Workbooks("「テスト」工事受付票.xls").Save
Workbooks("「テスト」工事受付票.xls").Close
Application.DisplayAlerts = True
'Next
End With
End Sub
Function LongToString(n As Long) As String
Dim ret As String, place100 As Long
If n < 1000 Then
ret = Format(n, "000")
Else
place100 = (n - 1000) \ 100
ret = Format(n - 1000 - 100 * place100, "00") & Chr(65 + place100)
End If
LongToString = ret
End Function
'文字列=>数値
Function StringToLong(s As String) As Long
Dim ret As Long
If IsNumeric(s) Then
ret = CLng(s)
Else
ret = (VBA.Asc(VBA.Right(s, 1)) - 65) * 100 + CLng(VBA.Left(s, 2)) + 1000
End If
StringToLong = ret
End Function
この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 | |
[196613] Re[1]: キャンセルが出来ない- ■記事引用/メール受信=OFF■ □投稿者/ 半平太 -(2025/06/11(19:53)) □U R L/
| |
[196614] Re[2]: キャンセルが出来ない- ■記事引用/メール受信=OFF■ □投稿者/ みい -(2025/06/12(09:43)) □U R L/ 半平太様 見ていただきありがとうございます。 コードを変更しましたら確かにキャンセルは出来ましたが 今度番号が 250001(25は2025の25です)と通番ではなく年の?初めの番号に何回もなります。 ※番号は年をこしたら西暦下二桁の0001から始まります。 通常は【控】シートにある前回の番号(D列)の続きになるようにしています。 どこを直せばいいでしょうか? 私もキャンセルは出来た事ありましたが、他が駄目になりました。 | |
[196615] Re[3]: キャンセルが出来ない- ■記事引用/メール受信=OFF■ □投稿者/ 半平太 -(2025/06/12(10:25)) □U R L/ 申し訳ないですが、プログラムの中身は全く分かりません。 他の回答者のレスをお待ちください。m(__)m | |
[196616] Re[4]: キャンセルが出来ない- ■ □投稿者/ みい -(2025/06/13(10:58)) □U R L/ 半平太様
大変失礼いたしました。
私のミスで、何度もコード触っていたため
MsgBox "中止します。"
Exit Sub
End If
この後の【Else】が削除されていて為作動しませんでした。
解決しました。
ありがとうございました。この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 | |
| このトピックに書きこむ |
|---|