• ベストアンサー

エクセルVBAでの保存方法

ブック内のsheet1に計算式の入った表を別のブックに 名前を付けて保存するときに、計算式を取りたい 『表と値をコピーしたい』のですが、 どのようにすればよいですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.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

Mont-Vento
質問者

お礼

ありがとうございます。 バッチリです。 質問をキッチリとしなくてすみませんでした。

その他の回答 (1)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

こういう方法はいかがでしょうか? 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

Mont-Vento
質問者

補足

早速ありがとうございます。 説明不足ですみませんが、実はこの前質問した 『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 までは、うまくいきました。 しかし、これだと計算式までもリンクされてしまうので、 表と値のみを保存させたいので、いい方法があれば教えてください。

関連するQ&A

専門家に質問してみよう