戻る  □一般操作のサロン  □ 使用方法  □ 新着記事  □ 新規に質問する!  □ トピック一覧  □ 検索  □ 過去ログ
[ 最新記事及び返信フォームをトピックトップへ ]
このトピック参照回数 :
キャンセルが出来ない

    [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/
      下のElseと同じような書き方にしたらどうですか?
      
         rc = MsgBox("工事受付票をコピーします。よろしいですか?", vbYesNo + vbExclamation, "番号の確認")
         
         If rc = vbYes Then
             MsgBox "実行します。"   '←「はい」ボタンをクリックしたときの処理。
         ElseIf rc = vbNo Then
             MsgBox "中止します。"
             Exit Sub
         End If


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [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]: キャンセルが出来ない-

    解決!!ありがとうございました! / 記事引用/メール受信=OFF■

    □投稿者/ みい -(2025/06/13(10:58))
    □U R L/
      半平太様
      大変失礼いたしました。
      私のミスで、何度もコード触っていたため
      
       MsgBox "中止します。"
             Exit Sub
         End If
      
      この後の【Else】が削除されていて為作動しませんでした。
      解決しました。
      ありがとうございました。


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他



このトピック内容の全ページ数 / [0]

このトピックに書きこむ
Name/
E-Mail/

└>このツリーのレス記事をメールで受信しますか? YES/ NO/
Title/
URL/
Comment/ 通常モード->  図表モード-> (←の場合適当に改行を入れて下さい)
タグが使用できます。例 ⇒ <font color="blue">文字</font>
解決!!ありがとうございました! 解決       保留中です・・・ 保留        迷宮入りorほかあたって見ます・・ 迷宮入       すいませ〜ん。誰か〜! Help! ←※回答者専用
解決したらチェック       保留(コードテスト中など・・)         解決不可orレスが全く付かなくてほかのサイトに行くときなど・・
削除キー/
(半角8文字以内) 


- Child Forum -
Edit:ゆう-G