次の方法で共有

windows7+excel2007でcopyメソッドが失敗

Anonymous
2012-03-12T01:00:06+00:00

いつも頼りにさせていただいております。

困ったことが発生したため、解決策または同様の事象が発生していないかをお聞きしたく。

事象

windows7(64bit)+excel2007で「実行時エラー '1004':Worksheet クラスの Copy メソッドが失敗しました。」

となり処理(マクロ)がとまる

処理内容

(1)まず本体エクセルをオープンし、マクロ起動

  ブック上に詳細、件数の2シート存在します。

(2)csv形式のテキストファイルをオープンする

     Workbooks.OpenText _

        Filename:=テキストファイル名, StartRow:=1, _

        DataType:=xlDelimited, _

        TextQualifier:=xlDoubleQuote, _

        ConsecutiveDelimiter:=False, _

        Tab:=False, _

        Semicolon:=False, _

        Comma:=True, _

        Space:=False, _

        Other:=False, _

        FieldInfo:=myFI

(3)オープンをかけたブックに本体ブックのシートをコピー

    sBookNam = ActiveWorkbook.Name(オープンしたファイル)                      開いたCSVブック名確保

    ActiveSheet.Name = ワークシート                         '                ワークシート名設定

    Windows(sMacroName).Activate                                        本体マクロブックへ切替

    '********************* 変更個所(出力シートを雛形をコピーして用意)***********************

    Sheets(Array("詳細", "件数")).Select

    Sheets(Array("詳細", "件数")).Copy Before:=Workbooks(sBookNam).Worksheets(sSheetName)

すると、(3)のcopyに達した時点で、「実行時エラー '1004':Worksheet クラスの Copy メソッドが失敗しました。」が発生します。

※処理についての補足

 実行はwindows7+excel2007ですが、マクロ作成時点のexcelのバージョンは2000です。

 windowsXP+excel2007では同様の事象は発生しませんでした。

 windows7+excel2007でも全ての端末で発生するわけではなく、特定の端末のみで発生します。

お聞きしたいこと

windows7にバージョンアップした場合、急にマクロが使用できまくなったことはありますか?

なった場合、解消方法はありますか?

・・・やはり、これでしょうか?http://support.microsoft.com/kb/210684/ja

以上です。一連のマクロとして情報を提示できずに申し訳ありません。

Microsoft 365 と Office | Excel | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2012-03-12T03:54:43+00:00

>windows7にバージョンアップした場合、急にマクロが使用できまくなったことはありますか?

X64をお使いのようですので、APIを使用している場合は相当な改修が必要でしょうが、普通はそういうことはありません。

あるとしたら、今までグレーゾーンで動いていたものが、WindowsというよりOfficeのバージョンが上がったためにチェックがきつくなり動かなくなると言う事だと思います。

正直な所、ActiveやらSelectやらだらけのコードは間違えのもとですし、解読する気にもなれません。

(一見問題なさそうに見えますが、どのブックのどのシートがActiveか等によって動きが変わりますので、見ただけでは正当性の確認が怪しくなります)

そのまま実行可能な形のサンプルコードを提示していただければ追検証します。

この回答は役に立ちましたか?

0 件のコメント コメントはありません

4 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2012-03-16T12:55:50+00:00

    y sakuda さん、いつもアドバイスありがとうございます。

    VinoMT さん、こんにちは。 Answers への投稿、ありがとうございます。

    エラーが出るパソコンと出ないパソコンがあり、エラーのでるパソコンも正常に動作することがあるということなのですね。

    こちらはすべて Windows 7 は 64 ビット環境でしょうか。

    問題の切り分けのために、Excel を Office セーフ モード で起動した場合はどうか、 Office の修復 を試してどうか、なども試してみてはいかがでしょうか。

    またエラーのでるパソコンも正常に動くこともあるとのことなので、他に起動しているプログラムなども影響しているかもしれません。

    上記の作業でも上手くいかない場合は クリーン ブート を実行した状態での動作も確認してみると良いと思います。 (手順 1 を行っても現象が発生する場合は、 手順 2 以降の操作は不要です。手順 7 で元に戻してくださいね。)

    よろしければ、試してみてくださいね。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2012-03-14T04:51:43+00:00

    y sakuda様

    サンプルの実行までありがとうございます。

    y sakuda様の実行されたソースでほぼやりたいことは書かれております。

    ただ、エラーがでませんでしたか・・・

    質問の補足にも書かせて頂いたのですが、単にwin7+2007でも

    エラーがでる端末とでない端末があるようなのです。

    (さらにエラーのでる端末もときおり正常に稼働することもあるようです)

    なので、当初はUACの設定などを洗ったのですが、

    エラーがでる端末とでない端末に差分を確認できずにいました。

    なので、同じような事象が発生しているのか、そして、もし対処できた方がいらっしゃったなら

    どこに原因があったかを拝聴したく質問いたしました。

    言葉たらずな部分があり申し訳ありません。

    以上です。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2012-03-13T13:11:14+00:00

    提示されたコードの意図が良く理解できていないので、違うかもしれませんが、次の条件でテストしました。

    1.Win7X64の環境は用意しておりませんので、WinX86+Excel2007

    (ただし、2003~2010のマルチになってますので厳密には2007単独環境ではありません。)

    2.マクロが入ったブックと同じフォルダにCSVファイルが存在する

    3.CSVファイルを開いて、マクロの入ったブックのSheet1、Sheet2をcsvファイルに追加

    (CSVファイルにシートを追加したことになりますのでそれ以降の処理はせず終わります)

    Sub xxx()

    Dim wCsv As Workbook, wShtN As String

    Set wCsv = Workbooks.Open("sample.csv")

    wShtN = wCsv.Worksheets(1).Name

    With ThisWorkbook

      .Worksheets(Array("Sheet1", "Sheet2")).Copy Before:=wCsv.Worksheets(wShtN)

    End With

    End Sub

    このコードはVista,Win7、2007、2010で問題なく動きました。

    意図している動きとちがうのでしたら、具体的に何をなさりたいのか投稿願います。

    参考まで。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  4. Anonymous
    2012-03-13T07:21:09+00:00

    y sakuda様

    返信ありがとうございます。

    officeのバージョンですか。やはりそう考えるのが妥当なのかなとも思います。

    サンプルはご提示が難しいものでして・・・すみません。

    ありがとうございます。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません