質問
2014年4月30日水曜日 4:11
VBA初心者の t-hosnya と申します。
このフォーラムは初めて利用させていただきました。
下記のマクロをつくり (本ブックから 別ブックに シート書式2 をコピペ(値と書式のみ)する)運用しています。
Sub 別ブックに シート書式2 をコピペするマクロ_()
Application.ScreenUpdating = False 'マクロの実行を非表示にする
Dim APP As Application
Dim WBK1 As Workbook ' 本ブック
Dim WBK2 As Workbook ' 作成ブック
Dim 既定ファイル名 As String
Dim 保存ファイル名 As Variant
Dim TBLSH As Variant
Dim OBJ As Object
' 新規ブックに転出するシートの配列を作成
TBLSH = Array("書式2")
Set APP = Application
Set WBK1 = ThisWorkbook ' 本ブック(マクロが書かれたブック)
' 指定シート(複数)を新規ブックにコピーする
WBK1.Worksheets(TBLSH).Copy
Set WBK2 = ActiveWorkbook
Windows("mitumori-form.xls").Activate
Sheets("書式2").Select
Cells.Select
Selection.Copy
Windows(2).Activate '作成ブック(2番目に開いた)
Sheets("書式2").Select
Cells.Select
On Error Resume Next '14/04/08追加 ※今回追記した文
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Windows("mitumori-form.xls").Activate
Application.CutCopyMode = False
Windows(2).Activate
Sheets("書式2").Select
Set WBK1 = Nothing
Set APP = Nothing
Set WBK2 = Nothing
End Sub
上記のマクロを作成し Excel2007までは問題なく実行していました。
Excel2013になって実行すると
PasteSpecial メソッドで
「実行時エラー '1004
RangeクラスのPasteSpecial メソッドが失敗しました。」 の エラーがでます。
回避するために
On Error Resume Next を
PasteSpecialの前行に入れたら エラーは回避できたのですが
値と書式の貼り付けにもっかわらず 元シートの計算式もコピペされています。
何故でしょうか?(元シートは配布用にすいる為、計算式はなし にしたいです)
VBE画面で1行づつF8押下で実行するれば 値と書式のみが正しくコピーされます。
コードの書き方にも問題があればご教授お願いします。