
マクロ実行時に、エラー’1004RangeクラスのPasteSpecialメソッドが失敗と表記され、マクロが実行されません。
マクロの内容は、任意の範囲をコピー、新規book追加し、
新規bookに(1)Paste:=xlPasteValues (2)Paste:=xlPasteColumnWidths (3)Paste:=xlPasteFormats の順に貼り付けし保存するものです。
いろいろ調べては見たのですが、当方初心者の為、わからずじまいです。お手数ではございますが、どなたかご教授願います。
下記にマクロ内容全部記載します。
よろしくお願いします。
*********************************************************
*********************************************************
Sub 日報別ファイルに保存したい1()
Worksheets("日報").Range("A3:AF36").Copy
With Workbooks.Add
Cells.Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Cells.Select
Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
ApplicationDisplayAlerts = True '同名FILEが存在する場合'
ActiveWorkbook.SaveAs Filename:= _
"c:\日報\" & ActiveSheet.Range("J2") & "年" & ActiveSheet.Range("l2") & "月" & ActiveSheet.Range("n2") & "日_日報.xls" _
, FileFormat:=xlNormal
.Close file
End With
End Sub
No.2ベストアンサー
- 回答日時:
こんにちは。
>結果、「ThisWorkbook」上の下記のマクロを削除すると、正常に動きだしました。
それは、Copy 範囲が、消えてしまうことで、PasteSpecial が利かなくなってしまうからです。
まず、シート名の長いコードは、これだけでよいはずです。
Private Sub Workbook_Activate()
Select Case StrConv(Trim(ActiveSheet.Name), vbNarrow)
Case "1" To "30", "日報"
Application.Calculation = xlCalculationManual
End Select
End Sub
-------------------------------------------
''もし、そのままでダメでしたら、 ' Application.EnableEvents = False 'イベントの介入を阻止する のところのコメント・ブロック('コードの手前のアポストロフィ)を外して、再度試してみてください。
Sub 日報別ファイルに保存したい2()
Dim myRng As Range
Set myRng = Worksheets("日報").Range("A3:AF36")
' Application.EnableEvents = False 'イベントの介入を阻止する
With Workbooks.Add
myRng.Copy
.ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
myRng.Copy
.ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteColumnWidths, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
myRng.Copy
.ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteFormats, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
ApplicationDisplayAlerts = True '**これは、そのままでは必要ないはずです。'
ActiveWorkbook.SaveAs Filename:="c:\日報\" & ActiveSheet.Range("J2") & "年" & _
ActiveSheet.Range("l2") & "月" & _
ActiveSheet.Range("n2") & "日_日報.xls", _
FileFormat:=xlNormal
.Close file
End With
Set myRng = Nothing
'Application.EnableEvents = True 'イベントマクロの活動を戻す
End Sub
Wendy02さん!ありがとうございます!
Wendy02さんに教えていただいたマクロで、正常に動きました!
本当に助かりました!
VBAの難しさも再認識です・・・。
初心者の私みたいなもんにご丁寧に対応いただき本当にありがとうございました。
また、何かあったときには、投稿させていただきたいと思います。
もちろん、自分なりに調べた上で・・・。
ありがとうございました。
No.1
- 回答日時:
こんばんは。
何が原因かは分かりません。
Excelのバージョンはいくつでしょうか。
最初、シートモジュールに書いたものだと思いましたが、どうもそうではないようです。
当面、このように考えてみました。
'-------------------------------------------
Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
'-------------------------------------------
xlPasteColumnWidths
ステップ・マクロを動かしてみて、「xlPasteColumnWidths」マウスをここにおいてみてください。
「8」という数字が出てきていますか?定数が取れていない可能性があります。
もしそうなら、
Selection.PasteSpecial Paste:= 8, Operation:=xlNone, _
と入れてみてください。
この回答への補足
Wendy02さん、御回答ありがとうございます。
Excelのバージョンは2003です。
マクロ自体は標準モジュールに記載しております。
いろいろ情報が不足してしまい申し訳ありません。
さらに補足させていただきます。
コピー、新規book追加、cells.selectまでは実行されており、
一つ目のPaste部分でエラーとなります。
また、他のマクロが影響しているのではと思い、いろいろいじってみた
結果、「ThisWorkbook」上の下記のマクロを削除すると、正常に動きだしました。
****************************************************************
****************************************************************
Private Sub Workbook_Open()
If ActiveSheet.Name = "1" Then _
Application.Calculation = xlCalculationManual
End Sub
---------------------------------------------------------------
Private Sub Workbook_Activate()
If ActiveSheet.Name = "1" Or ActiveSheet.Name = "日報" Or
ActiveSheet.Name = "2" Or ActiveSheet.Name = "3" Or ActiveSheet.Name = "4" Or ActiveSheet.Name = "5" Or
ActiveSheet.Name = "6" Or ActiveSheet.Name = "7" Or ActiveSheet.Name = "8" Or ActiveSheet.Name = "9" Or
ActiveSheet.Name = "10" Or ActiveSheet.Name = "11" Or ActiveSheet.Name = "12" Or ActiveSheet.Name = "13" Or
ActiveSheet.Name = "14" Or ActiveSheet.Name = "15" Or ActiveSheet.Name = "16" Or ActiveSheet.Name = "17" Or
ActiveSheet.Name = "18" Or ActiveSheet.Name = "19" Or ActiveSheet.Name = "20" Or ActiveSheet.Name = "21" Or
ActiveSheet.Name = "22" Or ActiveSheet.Name = "23" Or ActiveSheet.Name = "24" Or ActiveSheet.Name = "25" Or
ActiveSheet.Name = "26" Or ActiveSheet.Name = "27" Or ActiveSheet.Name = "28" Or ActiveSheet.Name = "29" Or
ActiveSheet.Name = "30" Then _
Application.Calculation = xlCalculationManual
End Sub
---------------------------------------------------------------
Private Sub Workbook_Deactivate()
Application.Calculation = xlCalculationAutomatic
End Sub
---------------------------------------------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.Calculation = xlCalculationAutomatic
End Sub
****************************************************************
****************************************************************
マクロ内容は自動計算の設定です。
何か関係はあると思うのですが・・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) マクロを短くする 1 2023/01/15 00:11
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
- Excel(エクセル) エクセル VBAでシートのコピーを作りたい 1 2023/05/18 07:42
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- Visual Basic(VBA) セルS2に入力した「月」と一致したB列の右隣へセルS110の値を転記する下記マクロを実行するとエラー 2 2022/12/06 17:32
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/04 17:58
- Visual Basic(VBA) マクロで最終行を取得してコピーしたい 3 2022/04/06 19:07
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/01/27 13:15
- Visual Basic(VBA) 【VBA】ボタンに登録したマクロがエラーになる 4 2022/07/25 17:47
このQ&Aを見た人はこんなQ&Aも見ています
-
VBAマクロ 実行時エラーが出たり出なかったり
Excel(エクセル)
-
【マクロ】PasteSpecialメソッドにて、コードが動かない理由が分かりません
Excel(エクセル)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
-
4
1004RangeクラスのPasteSpecialメソッドが失敗
Visual Basic(VBA)
-
5
VBA シートをコピーする際に Copyメソッドは失敗しましたのエラーが出てしまいます
Visual Basic(VBA)
-
6
エクセルvbaでの図形のカット(コピー)ペーストについて
Excel(エクセル)
-
7
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
8
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
9
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
10
実行時エラー 438になった時の対処法を教えて下さい。
Visual Basic(VBA)
-
11
セルのコピーで「オブジェクトが必要です。」
Visual Basic(VBA)
-
12
エクセルVBA/イベント発生でコピペ不能はなぜ?
Excel(エクセル)
-
13
VBAで文字列を数値に変換したい
Excel(エクセル)
-
14
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
15
Rangeメソッドは失敗しました。globalオブジェクトについて
Excel(エクセル)
-
16
バックグラウンドのプロセスのエクセルを閉じる方法
Visual Basic(VBA)
-
17
ACCESSからEXCELの PasteSpecial でエラーになる
Excel(エクセル)
-
18
excel:PasteSpecialで実行エラー
Excel(エクセル)
-
19
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
20
EXCEL VBA 印刷プレビューダイアログのボタン操作を判定したい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAを一度起動するとずっと出て...
-
アクセスでファイルを開いたと...
-
エクセル終了時の保存確認メッ...
-
コピーしたファイルのマクロを...
-
昨日まで動いていたエクセルの...
-
マクロを消すマクロは不可能?
-
Excel2002・マクロ ツールバー...
-
Excel2010 PERSONAL.xlsbの挙動...
-
excelのマクロ実行でブロックさ...
-
マクロでマクロを削除する
-
VBA マクロ実行時エラー’1004Ra...
-
別のパソコンでエクセルのマク...
-
excelでpersonal.xlsを常に開く...
-
個人用マクロブックについて
-
Excelマクロ ファイル名が変わ...
-
EXCEL マクロ クリップボードク...
-
エクセル2013vbaで、見えない名...
-
VBAで、VBProjectへのアクセス...
-
エクセルマクロが海外PCで開けない
-
マクロを設定したのに、拡張子...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAを一度起動するとずっと出て...
-
コピーしたファイルのマクロを...
-
エクセル終了時の保存確認メッ...
-
昨日まで動いていたエクセルの...
-
VBA マクロ実行時エラー’1004Ra...
-
excelファイルに使われているVB...
-
Excelが勝手にシート移動してし...
-
別のパソコンでエクセルのマク...
-
【マクロ】エラーが発生⇒実行時...
-
EXCEL マクロ クリップボードク...
-
マクロを消すマクロは不可能?
-
Excelマクロ ファイル名が変わ...
-
excelが別プロセスで起動してし...
-
アクセスでファイルを開いたと...
-
エクセル2013vbaで、見えない名...
-
エクセルファイルを自身のファ...
-
excelのマクロ実行でブロックさ...
-
エクセルマクロ実行中に別ファ...
-
マクロを設定したのに、拡張子...
-
マクロでマクロを削除する
おすすめ情報