戻る  □一般操作のサロン  □ 使用方法  □ 新着記事  □ 新規に質問する!  □ トピック一覧  □ 検索  □ 過去ログ
[ 最新記事及び返信フォームをトピックトップへ ]
このトピック参照回数 :
B.xlsmのシートをA.xlsmシートの最後のシートにコピーしたいです。

    [192288] B.xlsmのシートをA.xlsmシートの最後のシートにコピーしたいです。-

    ■親トピック/記事引用/メール受信=OFF■

    □投稿者/ 悟空 -(2020/06/26(14:11))
    □U R L/

      A.xlsm に2個のシート(test1,test2)があります。
      B.xlsm のtest3シートをA.xlsxの最後のシート(test2)の後ろに貼り付けをしたいです。
      その後、B.xlsxのtest4シートもA.xlsxのtest3シートの後ろにコピーしたいです。



      マクロで作成しましたが、不安定でエラーになったりして困ってます。

      A.xlsmにコピーしたシートを印刷したら、コピーしたシートは削除します。
      再度、作成したマクロを実行するとエラーになってしまいます。

        Sheets("test3").Select
      Sheets("test3").Copy After:=Workbooks("A.xlsx").Sheets(2)
      Sheets("test3").Select
      Sheets("test3").Name = "test3prr"

      Windows("B.xlsm").Activate
      Sheets("test4").Select
      Sheets("test4").Copy After:=Workbooks("A.xlsx").Sheets(3)
      Sheets("test4").Select

      Sheets("test4").Name = "test4prr"
      Windows("B.xlsm").Activate

      A.xlsmシートのシート数の数によって、Sheets(2)、Sheets(3)と指定すると不具合が発生します。
      ですので、常にA.xlsmのシート数に関係なく最後のシートにコピーできるようなマクロにしたいです。

      どなたか教えてもらえないでしょうか。

      宜しくお願い致します。


      ++++++++++++++++++++
      OS      ⇒OTHER
      Version⇒OTHER
      ++++++++++++++++++++




    [192289] Re[1]: B.xlsmのシートをA.xlsmシートの最後のシートにコピーしたいです。-

    記事引用/メール受信=OFF■

    □投稿者/ OK -(2020/06/26(15:17))
    □U R L/
      Worksheets.Count
      
      でワークシート数を取得できます。
      
      参考まで。
      
      Sub tes()
       Dim wb As Workbook
        Set wb = ActiveWorkbook
        MsgBox wb.Worksheets(wb.Worksheets.Count).Name
        Set wb = Nothing
      End Sub


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

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




    [192290] Re[2]: B.xlsmのシートをA.xlsmシートの最後のシートにコピーしたいです。-

    記事引用/メール受信=OFF■

    □投稿者/ OK -(2020/06/26(15:21))
    □U R L/

      シートはコピーだけでなく、移動もできます。

      ht tp://officetanaka.net/excel/vba/sheet/sheet05.htm




    [192330] Re[3]: B.xlsmのシートをA.xlsmシートの最後のシートにコピーしたいです。-

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

    □投稿者/ 悟空 -(2020/06/29(10:00))
    □U R L/
      これでいいのか?ですが、こんな感じで一応動きました。
      あっているのか?です。    
      
          Windows("test3.xlsm").Activate
          Sheets("test3").Select
          Dim cnt As Long
          cnt = Workbooks("A.xlsm").Sheets.Count
          ActiveSheet.Copy _
            After:=Workbooks("A.xlsm").Sheets(cnt)
          Sheets("test3").Select
          Sheets("test3").Name = "test3prr"
          
          Windows("test3.xlsm").Activate
          Sheets("test3").Select
          
          cnt = Workbooks("test4.xlsm").Sheets.Count
          ActiveSheet.Copy _
            After:=Workbooks("test4.xlsm").Sheets(cnt)
          Sheets("test4").Select
          Sheets("test4").Name = "test4prr"
          Windows("test4.xlsm").Activate


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

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




    [192341] Re[4]: B.xlsmのシートをA.xlsmシートの最後のシートにコピーしたいです。-

    記事引用/メール受信=OFF■

    □投稿者/ OK -(2020/06/30(13:25))
    □U R L/
       ご提示のコードを言葉に置き換えると↓のような感じです。
      
       test3.xlsmをアクティブ
       test3シートをアクティブ
      
       cnt変数の宣言
      
       cnt=A.xlsmのシート数
      
       test3.xlsmのtest3シートをA.xlsmの最終シートの右にコピー
      
       A.xlsmのtest3シートのシート名を"test3prr"に変更
      
      
       test3.xlsmをアクティブ
       test3シートをアクティブ
      
       cnt=test4.xlsmのシート数
      
       test3.xlsmのtest3シートをtest4.xlsmの最終シートの右にコピー
      
       test4.xlsmのtest4シートのシート名を"test4prr"に変更
      
       test4.xlsmをアクティブ
      
       これをSelectやActivate、Activeを極力使わないで書くと↓のような感じになります。※一部Activeを使ってます。
      
       Sub test()
         Workbooks("test3.xlsm").Worksheets("test3").Copy after:=Workbooks("A.xlsm").Worksheets(Workbooks("A.xlsm").Worksheets.Count)  
         ActiveSheet.Name = "test3prr"
      
         Workbooks("test3.xlsm").Worksheets("test3").Copy after:=Workbooks("test4.xlsm").Worksheets(Workbooks("test4.xlsm").Worksheets.Count)  
         Workbooks("test4.xlsm").Worksheets("test4").Name = "test4prr" 
       End Sub


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

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




    [192344] Re[5]: B.xlsmのシートをA.xlsmシートの最後のシートにコピーしたいです。-

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

    □投稿者/ 悟空 -(2020/06/30(15:50))
    □U R L/

      OK様
      ご親切にありがとうございました。
      出来ました。使わせて頂きます。



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

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

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


- Child Forum -
Edit:ゆう-G