- ベストアンサー
VBAで特定のシートを別ファイルで保存する方法
- VBAを使用して、指定のシートを別のファイルに保存する方法について質問があります。
- 質問者は、ブック内にAとBの2つのシートがあり、シートAの情報が新しく作成されるシートCにコピーされ、シートCとシートBの2つのシートが別のファイルとして保存されるようにしたいと考えています。
- 現在は、シートCのみを別ファイルで保存することができており、シートBが追加できないという問題に直面しています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
何をされたいのかちょっとよく分からないので(^^;、 余計混乱してしまうかもしれませんが、以下の視点を持つと、理解が進むと思います。 ・Setでいちいちオブジェクトに代入しなくてもコピペ(というか値を書き写す)できます。 ・通常のマウス操作であるコピーしてペーストするというのを忘れて下さい。 ■セルのコピー 左辺の値を右辺にすると書きます。 Range("○○").value = Range("●●").value (今アクティブなシートの)セル○○の値をセル●●の値にします。 シートを指定する場合はRangeの前にSheets("●●").のように。 ブックを指定する場合はSheetsの前にWorkbooks("●●").のように書きます。 ■シートのコピー これはそういう命令です。 Sheets("○○").copy のあとにBeforeかAfterと書いて、 どのシートの前(後ろ)にコピーするか指定します。 ■参考 Sub sheet_copy1() Sheets("○○").copy After:=Sheets("○○") End Sub ↑シート名○○を、シート名○○の後ろにコピーし名前は自動付加します。 Sub sheet_copy2() Sheets("Sheet1").Range("A1").Value = Sheets("Sheet2").Range("A1").Value End Sub ↑シート名Sheet2のA1セルの値を、シート名Sheet1のA1セルにコピペします。 Sub sheet_copy3() With Workbooks.Open("1.xlsm") Workbooks("2.xlsm").Sheets("sheet1").Copy after:=.Sheets("sheet1") End With End Sub ↑ブック名2.xlsmシート名Sheet1を、ブック名1.xlsmシート名Sheet1の後ろにコピーします。 WithがSetの役割をしています。 ・Activateする、Setして代入する、と書かれている行はほぼ全て不要です。 ・Activeなシートをどうこうする というのもワケがわからなくなるので、 直接ブック名やシート名を指定するとうまく動かせる気がします。
その他の回答 (1)
- masatsan
- ベストアンサー率15% (179/1159)
Set CopyWorkSheet1 = Worksheets("シートA") CopyWorkSheet1.Copy しーとA を変数に代入。 その変数をこぴーする。=新しいシーとができる。 SET。。。で何か新しいシートができるわけではありません。
お礼
勉強になりました。ありがとうございます。
お礼
細かくご説明いただき有難うございました。 非常に勉強になりました。 最終的に目的の動作を構築することができました。ありがとうございます。