| 
    
     |  | ▼京梧 さん: >ブックやシートをまたいだ場合は、.Range()の中にCellsが入っている場合は、シートを付けるということですね。
 
 もちょっと解説すると、
 京梧 さんは、
 「コントロールツールボックス」のCommandButton をシート上に
 配置し、「コードの表示」からワークシートモジュール内に
 > Private Sub CommandButton1_Click()
 というプロシージャを 書いているのだと思います。
 
 そこで、Range や Cells の親シートを省略するとどういうことが
 起きるかといいますと、
 Sheetモジュールで Range や Cells の親を省略するとExcelは
 シートはコードが記述してあるシートのことだと解釈します。
 つまり Me.Range とか Me.Cells と解釈します。
 それで
 >  With Sheets("AAA")
 >   .Range(Cells(17, 12), Cells(18, 12)).Merge
 は、
 With Sheets("AAA")
 .Range(Me.Cells(17, 12), Me.Cells(18, 12)).Merge
 と書いてあるのと同じことになり、
 あたらしいBookの「AAA」シートの「元のSheetのセル範囲」をマージせよ
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~~~~~~~~~~~~
 という意味不明な命令を発行しているので、
 困ったExcel君がエラーを出して実行をストップした、
 というわけです。
 そういうわけで、
 > Cells にもシートを修飾してください
 また、セルを結合することが目的なのだから、
 > Sheets("AAA").Select
 Select する必要はさらさらありません。
 Select に頼らない記述法を身につけてください(^^
 
 
 |  |