vbsでExcelのシートをコピーする方法はある?

このQ&Aのポイント
  • vbsでExcelのシートをコピーする方法がわからず困っています。
  • Excelのマクロでは動作するが、vbsでの実行ではエラーが発生します。
  • vbsからExcelファイルのシートをコピーすることは可能でしょうか。
回答を見る
  • ベストアンサー

vbsでExcelのシートをコピーするには

vbsでExcelのシートをコピーすることができず、困っています。 雛形のAファイル(Excel)のシートを別のBファイル(Excel)にコピーしたいのですが、 下記コーディングでは、「実行時エラー この変数は宣言されていません。: 'before'」となります。 xlsSheet.Copy before:=xlsBook2.Worksheets("Sheet1") Excelのマクロに記載して、Excelのコマンドボタンから呼び出すなどすれば動くのですが、 ハンディ端末のサーバ側アプリがvbsで、vbsから行いたいのです。 vbsでExcelファイルのシートをコピーすることはできないのでしょうか。 ご存知の方、ご教授いただければ幸いです。

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

  • ベストアンサー
  • chie65535
  • ベストアンサー率43% (8519/19367)
回答No.1

>xlsSheet.Copy before:=xlsBook2.Worksheets("Sheet1") VBScriptでは、名前付き引数の指定はできないので、代わりに不要な引数を省略します。 コピーメソッドの仕様は Copy(Before, After) ですから xlsheet.Copy(xlsBook2.Worksheets("Sheet1")) とやれば、Beforeのみ指定した事になります。 xlsheet.Copy(,xlsBook2.Worksheets("Sheet2")) とやれば、Afterのみ指定した事になります(カンマがある事に注目) xlsheet.Copy(xlsBook2.Worksheets("Sheet1"),xlsBook2.Worksheets("Sheet2")) とやれば、BeforeとAfterの両方を指定した事になります。 xlsheet.Copy() とやれば、BeforeとAfterの両方を省略した事になります。 このようにVBSでは Before:=~~~ After:=~~~ のような名前付き引数は指定できません。

mountain11
質問者

お礼

迅速に回答いただき、とても助かりました。 本当にありがとうございました。

関連するQ&A

  • Excelvba2000でExcelファイル間のコピーを行いたい

    現在マクロ実行中のExcelブックのシートのセルの値を、 新規作成したブックのシートのセルに値を貼り付けたいのですが、 うまくいきません。 ただし、コピーの条件として、クリップボードは使用しない Activeメソッドや、Selectメソッドも使用しないという制約があります 以前は、うまくいっていたのですが、コードの書き方を忘れてしまいました。以下の★印の行で、 「RangeクラスのCopyメソッドが失敗しました。」とエラーが出ます。 以前は、以下のコードに似た、ロジックで、問題なかったのですが、 どこか間違っていますでしょうか? Dim xlsApp As Excel.Application Dim xlsBook As Excel.Workbook Dim xlsSheet As Excel.Worksheet Set xlsApp = CreateObject("Excel.Application") Set xlsBook = xlsApp.Workbooks.Add Set xlsSheet = xlsBook.Worksheets(1) '★エラー発生 ThisWorkbook.Worksheets("Sheet1").Range("A1:D4").Copy _ Destination:=xlsBook.Worksheets("Sheet2").Range("E5")

  • VBSでExcelシートのコピー

    VBSである決まったExcelシートを別なExcelファイルにシートコピーできる方法はないですか? やりたいことは、Excelファイル「A.xls」内の「Sheet1」というシートをExcelファイル「B.xls」の一番末尾に「Sheet1」をコピーする、です。 (Excelのシート名上で右クリック→「移動またはコピー」→移動先ブック名を選択→「末尾へ移動」、「コピーを作成」にチェック、と同じことをVBS上で行いたいのですが。)

  • Excelのシートのコピー

    0.前準備としてExcelで帳票の雛型を作成しておく。 1.VBよりExcelを起動し、雛型のsheetをcopyする 2.copyしたシートの名前を変更する 上記の作業をloopで回してやりたいのですがどのようにしたら良いのでしょうか?  ご教授お願いします。

  • エクセル VBA シートのコピーが上手く出来ない

    原因が分かりません。宜しくお願いします。 エクセルVBAで、フィルターを掛けたシートを別シートへコピーしています。 問題なく出来ていたルーチンでしたが、他の作業の影響か、 気がついたらコピー出来なくなっていました。 他のシートでも同じ方法でコピーを行っていますが、問題ありません。 問題のコーディングは以下のとおりです。 Worksheets("work2").Unprotect Worksheets("work2").Range("A:Z").ClearContents Worksheets("コピー元").Range("A5").AutoFilter Field:=6, Criteria1:=フィルタ請求年1, Operator:=xlOr, Criteria2:=フィルタ請求年2, VISIBLEDROPDOWN:=True Worksheets("コピー元").Range("A1").CurrentRegion.SpecialCells(xlVisible).Copy Worksheets("work2").Range("A1") Worksheets("work2").Protect Worksheets("コピー元").Range("A1").CurrentRegion.SpecialCells(xlVisible).Copy Worksheets("work2").Range("A1") の箇所では、エラーメッセージもでませんが、コピーもされていないことを確認しています。 どのような原因が考えられるでしょうか? または、どのような方法で原因追求が出来るでしょうか? ご回答お待ちしています。

  • excel vba シートがなければコピーしたい

    excel vba で教えてください sheet名0を雛形に、使用者が1 2 3のsheet名でコピーして利用できるようにしたい。1はあるのでコピーを作らない。2はないのでsheet名0をコピーして作るといったように現在sheet2があるや否やで作成するや否やを判断してsheet copyをしたい。 すべてのsheet を名前をしらべつつ判断したいのです 教えてください

  • エクセルのマクロが7回目でエラーになる。シートコピーでエラー発生。

    エクセルマクロで【ファイルA】に【マクロ表示】を作成。 内容:【ファイルA】は4シート(シート名:【チャート】【ひな型】【データ】【メニュー】)。 (1)【メニュー】にあるリストから「地域A」を選択 (2)他のブックを開き「地域A」のデータをコピー、【データ】に貼り付け。20のブックからデータを貼り付ける。 (3)【チャート】【ひな型】には、グラフがある。 元のデータは【データ】にあるので、「地域A」のデータがコピーされた時点でグラフは出来る。 (4)【チャート】、【ひな型】をコピーする。 (5)【データ】で作表し、【ひな型(2)】【チャート(2)】に貼り付ける。 (6)【チャート(2)】、【ひな型(2)】を新しいブックに移動。 新しい名前【Book1】で保存。リンクを切り上書きする。 (7)【マクロ表示】は終了し、【メニュー】に戻る。 画面は【Book1】【ひな型(2)】で終わる。 (8)【Book1】を閉じる。 【ファイルA】【メニュー】から「地域B」を選択。【マクロ表示】を実行。 以上の手順で、【ファイルA】を閉じることなく、「地域A」「地域B」・・と選択して、【マクロ表示】を実行していくと、 7回目で(4)でエラーになってしまう。 Worksheets("ひな型").copy before:=worksheets(1)の行で。 エラーメッセージは「実行時エラー1004 WorksheetクラスのCopyメソッドが失敗」。 【ファイルA】のシートを右クリックでを見てみると、 「シートの移動またはコピー」の「移動先ブック名」が(新しいブック)、挿入先が空になっています。 通常、「移動先ブック名」は現在のブック名【ファイルA】、 挿入先【メニュー】【データ】【ひな型】【チャート】であると思うのですが。 シートのコピー回数に制限でもあるのでしょうか? マクロで回避が出来る方法があればお教え下さい。 次のリストを選択前に毎回【ファイルA】を閉じる以外無いのでしょうか? よろしく御指導下さい。

  • エクセルでシートのコピー

    いつもお世話になっています、マクロ初心者です。 カレンダーの1月分をシートごと12月までコピーするのに、サンプル集をそのまま引用したのですが、シート名を指定する所でエラーになってしまいます。 $"月"の部分を削除すればうまくいきます。 エクセル2000パーソナルだからなのでしょうか? 'シートコピー Worksheets(1).Cells.Copy For i = 2 To 12 Worksheets.Add after:=Worksheets(ActiveSheet.Index) ActiveSheet.Name = CStr(i) & "月"(この行がエラーになります) ActiveSheet.Paste Range("A1").Select Next i エクセル2000パーソナルで処理する方法がありましたら教えてください。

  • Excel VBA シートのコピー時に、シート上のコンボボックスもコピーしたい。

    こんにちは。 Excel VBAについて質問させていただきます。 やりたいことは、 シートAにボタンとコンボボックスを配置し、 コンボボックスには氏名の一覧を設定しています。 そこで、ボタンを押すとシートAをボタンとコンボボックスごと シートBという名前でコピーをしたいと思っています。 ActiveSheet.Copy Before:=Worksheets(1) でシート・ボタン・コンボボックスのコピーはうまく出来たのですが、 コンボボックスに設定していた氏名の一覧はコピーされていませんでした。 コピー先のシートのコンボボックスにもう一度氏名の一覧を 設定するしかないのでしょうか? それともシートのコピー時に何かいい方法があるのでしょうか。 宜しければアドバイスをお願い致します。 OSはWindows2000Pro Excelは2000です

  • マクロでエクセルシートのコピー

    マクロでシート1を最後尾に名前をつけてコピーしたいと思ってます。 つけたい名前は、シート2のあるセルにかいてあります。 私は下記のように書いたのですが、エラーになってしまいます。 Worksheets("Sheet2").Select newsheet = Cells(1, 1) Sheets("Sheet1").Select Sheets("Sheet1").Copy After:=Sheets(newsheet) どのようにすればシートをシート名をつけてコピーできますか? 教えてください。 エクセル97です。

  • PerlでExcelのワークシートを同じファイル内にコピーしたりワーク

    PerlでExcelのワークシートを同じファイル内にコピーしたりワークシートの名前を変更することは可能でしょうか? 環境は、WindowsXPpro、IIS5.1、PerlV5.10でWin32_OLEモジュールを使用しています PerlでExcelのワークシート内セルに書き込み・セルからの読み出しはできています。 VBAではワークシートをコピーする場合は、 「Worksheets("Sheet1").Copy After:=Worksheets("Sheet3")」 でコピーできるようですが、 Perlではどう記述すれば良いか分かりません。 Perlではワークシートをコピーしたりワークシートの名前を変更することは出来ないのでしょうか? よろしくお願いします。

    • ベストアンサー
    • Perl

専門家に質問してみよう