|
▼京梧 さん:
>ブックやシートをまたいだ場合は、.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 に頼らない記述法を身につけてください(^^
|
|