[[20040428221441]] 『マクロの実行時エラー1004』(辛太) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マクロの実行時エラー1004』(辛太)

マクロを記録し、実行すると『実行時エラー’1004’RaggeクラスのPasteSpecialメソッドが失敗しました。』になります。
再度実行すると流れます。
マクロは、以下の通りです。
形式を選択して貼り付け、値 です。

    Range("A3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

如何すればいいのでしょうか?お教え下さい!!

【Excel2002 WindowsXP です】


 どこかのセル(セル範囲)をコピーした後に、
マクロの記録を開始して貼り付ける動作だけ記録したのではないですか?
マクロ実行前にコピーを行っても、クリップボードがクリアされ、
「貼り付けるものがないよ」と注意されているわけです。
記録の最中はクリップボードがクリアされないので、貼付動作だけが記録
できます。
「再度実行すると流れ」るのはなぜかわかりませんが、
セルをコピー、VBE側でコードの実行という手順でやれば動きます。
    Selection.Copy
この一文を追加して、コピーする範囲を選択してからこのマクロ実行という
ことではいかがでしょう。
(KAMIYA)

KAMIYA様
お願いしておいて、見るのが遅くなって申し訳ありません。
質問を省略しすぎておりました。
下記の、コピー元シートにボタンを作成し、
そのボタンに下記のマクロを登録しております。
同じロジックが繰り返し登場しますが、
最初の、Pasteだけがエラーになります。
リセットし、コピー元のシートに戻し、
(エラー時点では、コピー先シートがアクティブ)
もう一度実行すると、最後まで(sortして、プロテクトする)完結します。

面倒でも、もう一度見てください。宜しくお願い致します。

Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2004/4/18 ユーザー名 : 辛太'

'

    Range("D6:D146").Select
    Selection.Copy
    Sheets("コピー先").Select
    ActiveSheet.Unprotect
    Range("A3").Select
*エラーになる箇所
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
*ここまで

    Sheets("コピー元").Select
    Range("B6:C146").Select
    Selection.Copy
    Sheets("コピー先").Select
    Range("B3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

    Sheets("コピー元").Select
    Range("E6:E146").Select
    Selection.Copy
    Sheets("コピー先").Select
    Range("D3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

    Sheets("コピー元").Select
    Range("F6:G146").Select
    Selection.Copy
    Sheets("コピー先").Select
    Range("F3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

    Sheets("コピー元").Select
    Range("H6:I146").Select
    Selection.Copy
    Sheets("コピー先").Select
    Range("I3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

    Range("A2:J143").Select
    Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, Key2:=Range("B3") _
        , Order2:=xlAscending, Key3:=Range("D3"), Order3:=xlAscending, Header:= _
        xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        SortMethod:=xlPinYin, DataOption1:=xlSortNormal, DataOption2:= _
        xlSortNormal, DataOption3:=xlSortNormal

    Range("A1:I1").Select
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

 ちょっと忙しいので、検証までできないのですが、
    Sheets("コピー先").Select
    ActiveSheet.Unprotect
    Sheets("コピー元").Select
    Range("D6:D146").Select
    Selection.Copy
    Sheets("コピー先").Select
    Range("A3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
このような順番でやるとうまくいきませんか?
    ActiveSheet.Unprotect
でカットアンドコピーモードがキャンセルされているからだと思いますが。
(KAMIYA)    

KAMIYA様
有難う御座いました。
上手くいきました。
思い出してみると、ActiveSheet.Unprotect と、ActiveSheet.Protect は
後で、編集し追加しました。
以後、気をつけます。今後も宜しくお願いします。
ついでに、この書き込みで、強制改行を入れるのはどうするのかお教え下さい。
(辛太)

 行頭に半角スペースがあると改行したとおりに
表示されます。
最初の一行に半角スペースがあれば、
次の空白行まで書き込みしたとおりの
レイアウトになるようです。

←半角スペースがなく、↑空白行があると(ここで改行してます)
このように段落分けされ、改行しても連続行になります。

 ←半角スペース追加で(ここで改行してます)
このように改行レイアウトになります。
(KAMIYA)

KAMIYA様

有難う御座いました。

 (辛太)

皆様

こんにちは。

お願いしたいですが、
Access VBA で 計算式を除いてエクセルファイルからのデータをコピーしているですが、
oApp.Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

        :=False, Transpose:=False
その所に「error 1004 Range クラスのPasteSpecial メソッドが失敗しました。」というエラーが発生してきました。
原因を色々探してみましたが、解決できる方法はまだ見つかりませんでした。

もし、解決できる方法があれば、教えていただきたいです。

宜しくお願い致します。

カイ ス ワイン

    Dim MyBook As String

    Dim oApp As Object
    Set oApp = CreateObject("Excel.Application")
    'Dim xlRange As Excel.Range
    Dim objBook 'ExcelBook
    Dim objSheet

    oApp.Workbooks.Open FileName:="D:\Khine Su Win\色々テスト\File Copy\売上高集計-中間F.xlsx", _
        UpdateLinks:=0
    oApp.ActiveWorkbook.Save
    oApp.ActiveWindow.Close

'new

    '指定のエクセルファイルを開く
        oApp.Workbooks.Open FileName:="D:\Khine Su Win\色々テスト\売上高集計-配布用.xlsx"
        oApp.Workbooks.Open FileName:="D:\Khine Su Win\色々テスト\File Copy\売上高集計-中間F.xlsx", _
        UpdateLinks:=0

    'エクセル操作

        oApp.Windows("売上高集計-配布用.xlsx").Activate
        oApp.Sheets("売上高-出荷").Select
        oApp.ActiveSheet.Unprotect
        oApp.Windows("売上高集計-中間F.xlsx").Activate
        oApp.Sheets("売上高-出荷").Select
        oApp.Range("A1:AK614").Select
        oApp.Selection.Copy
        oApp.Windows("売上高集計-配布用.xlsx").Activate
        oApp.Sheets("売上高-出荷").Select
        oApp.Range("A1").Select
エラー発生している所
        oApp.Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

        oApp.Windows("売上高集計-中間F.xlsx").Activate
        oApp.Sheets("売上高-出荷").Select
        oApp.Range("A1:AK614").Select
        oApp.Application.CutCopyMode = False

        oApp.Selection.Copy
        oApp.Windows("売上高集計-配布用.xlsx").Activate
        oApp.Sheets("売上-受注").Select
        oApp.Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        oApp.Range("A1").Select
        oApp.Sheets("売上高-出荷").Select
        oApp.Range("A1").Select
        oApp.Application.CutCopyMode = False

        oApp.ActiveWorkbook.Save
        oApp.ActiveWindow.Close
        oApp.Sheets("売上高-出荷").Select
        oApp.Range("A1").Select
        oApp.ActiveWorkbook.Save
        oApp.ActiveWindow.Close

    '?Aエクセルを終了します
        oApp.Quit
(カイ) 2015/05/15(金) 16:31

 なぜ他人の質問につけているのかわからないが。

 気になったところだけ。
 (これで問題が解決するかは不明)

 モジュールの先頭に
 Option Explicit
 を付けてデバッグ-コンパイルを行うとxlNoneがエラーにならないか?

 「xlNone」はExcelで定義されている定数なのでAccessでは定義されていないと思うが。

 こちらで確認すると「xlNone」は「-4142」のようなので 
 Operation:=xlNone
 部分を
 Operation:=-4142
 としてはどうだろうか?
(ねむねむ) 2015/05/15(金) 16:53

10年前の質問を流用するのは駄目でしょう。他人の質問に便乗せず、次からは新規に質問すること。

でもって、Excelの定数関連を使うならば、参照設定で「Microsoft Excel x.x Object Library」をチェックしてみては?
(???) 2015/05/15(金) 17:11


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.