- ベストアンサー
エクセルVBAでの保存方法
ブック内のsheet1に計算式の入った表を別のブックに 名前を付けて保存するときに、計算式を取りたい 『表と値をコピーしたい』のですが、 どのようにすればよいですか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Sub TEST03() Dim fn As String, fn2 As String Dim sh As Worksheet Dim Rtn With Sheets("表紙") fn = .Range("h6").Value fn2 = .Range("e2").Value & .Range("f2").Value & .Range("g2").Value & _ .Range("h2").Value & .Range("j2").Value & .Range("o2").Value & .Range("p2").Value End With Sheets(Array("Sheet1", "Sheet2")).Copy For Each sh In Worksheets sh.Activate Cells.Select Selection.Copy Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Application.CutCopyMode = False Next Rtn = Application.Dialogs(xlDialogSaveAs) _ .Show(ARG1:=IIf(fn = "", fn2, fn) & ".xls", ARG2:=1) ActiveWorkbook.Close (False) End Sub
その他の回答 (1)
- merlionXX
- ベストアンサー率48% (1930/4007)
こういう方法はいかがでしょうか? Sub TEST01() Sheets("Sheet1").Copy Application.Dialogs(xlDialogSaveAs).Show Cells.Select Selection.Copy Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Application.CutCopyMode = False ActiveWorkbook.Close (False) End Sub
補足
早速ありがとうございます。 説明不足ですみませんが、実はこの前質問した 『VBAでブック内のワークシートを名前をつけて保存』 のつづきになる部分です。 マクロは、 Dim pt As String, fn As String, fn2 As String pt = ActiveWorkbook.Path With Sheets("表紙") fn = .Range("h6").Value fn2 = .Range("e2").Value & .Range("f2").Value & .Range("g2").Value & .Range("h2").Value & .Range("j2").Value & .Range("o2").Value & .Range("p2").Value End With Sheets(Array("sheet1", "sheet2")).Copy Rtn = Application.Dialogs(xlDialogSaveAs) _ .Show(ARG1:=IIf(fn = "", fn2, fn) & ".xls", ARG2:=1) If Rtn = False Then Exit Sub ActiveWorkbook.Close End Sub までは、うまくいきました。 しかし、これだと計算式までもリンクされてしまうので、 表と値のみを保存させたいので、いい方法があれば教えてください。
お礼
ありがとうございます。 バッチリです。 質問をキッチリとしなくてすみませんでした。