- ベストアンサー
ExcelのVBAでシートのコピー
Excel2000 Win2000 複数(最低5)のシートが存在するExcelのBookでExcelのVBAを使用して strSheetName="XXX1" intSheetNo = 1 Sheets(strSheetName).Copy after:=Sheets(intSheetNo) とシートのコピーをしています。 この時コピーされたシートのインデックスが2にならないんですが、何故なんでしょ? やりたい事はコピーしたシートの名前をExcelが勝手につけた名前から変更したいんです。 コピーされたシートのインデックスが2になると思っていたので上手く行きません。 Sheets(intSheetNo + 1).Name = "XXX1-1"
- みんなの回答 (10)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (9)
- StudyVBA
- ベストアンサー率0% (0/3)
- StudyVBA
- ベストアンサー率0% (0/3)
- StudyVBA
- ベストアンサー率0% (0/3)
- Wendy02
- ベストアンサー率57% (3570/6232)
- kikaida-
- ベストアンサー率69% (37/53)
- Wendy02
- ベストアンサー率57% (3570/6232)
- quit123
- ベストアンサー率21% (4/19)
- yos40
- ベストアンサー率0% (0/1)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
関連するQ&A
- Excel VBAでのシートのコピーがヴァージョン違いで出来ない?
Excel VBAでのシートのコピーをしようとしてヘルプを参考に Sheets("master").Copy After:=Sheets("master") のようにマクロを書きました。 これでExcel2000ではちゃんとコピーしたのですが、Excel97ではコピーをしてくれません。 いくつかの端末(OSはWin95、WinNT4、Win2000)でやってみましたがExcel2000はOK、Excel97ではダメでした。 なにか原因があるのでしょうか?
- ベストアンサー
- オフィス系ソフト
- Excel VBA 非表示の別ブックへシートコピー
Excel2010のVBAで、別のExcelブックを非表示で開いて、 シートをコピーすると、 「実行時エラー'1004':WorksheetクラスのCopyメソッドが失敗しました。」 というエラーが出て、正しくシートをコピーすることができません。 (1)のように自分のブックへはシートをコピーすることはできるのですが、 (2)のように別のExcelブック上でシートをコピーする場合と (3)のように別のExcelブック上にシートをコピーする場合の いずれも同様のエラーになります。 どのように記述すれば(2)と(3)でもコピーすることができるのでしょうか。 ------------------------------------------------------------- Sub test() Dim newEx As Excel.Workbook Dim newFile As String newFile = ThisWorkbook.Path & "\New_Book.xlsx" Set newEx = Workbooks.Open(newFile, UpdateLinks:=0) Application.Windows("New_Book.xlsx").Visible = False '(1)New_BookのSheet3を自分のブックにコピーする (正常) newEx.Worksheets("Sheet3").Copy after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) '(2)New_BookのSheet3をNew_Bookにコピーする (エラー) newEx.Worksheets("Sheet3").Copy after:=newEx.Sheets(newEx.Sheets.Count) '(3)自分のブックのSheet3をNew_Bookにコピーする (エラー) ThisWorkbook.Worksheets("Sheet3").Copy after:=newEx.Sheets(newEx.Sheets.Count) Application.Windows("New_Book.xlsx").Visible = True Application.DisplayAlerts = False newEx.Save newEx.Close Application.DisplayAlerts = True Set newEx = Nothing End Sub -------------------------------------------------------------
- 締切済み
- Excel(エクセル)
- ACCESS EXCELシートのコピー
ACCESSでEXCELシートのコピーを教えてください。 ブックに原本というシートがあり、それを先頭にCOPYして シート名を店舗名にしようと思っています。 原本が原本(2)にCOPYはできるのですが、名前の変更が 出来ません。 原本(2)の(2)がまずいのか、”インデックスが有効の範囲にない” でエラーになります。 COPYする時に、直接、名前を指定出来るならその方がありがた いのですが、何か方法はありませんか? EXCELブックOPENして、店舗マスタを読みながらCOPYするようにしています。 xlsobj_.sheets("原本").Copy before:=xlsobj_.sheets("原本") xlsobj_.sheets("原本(2)").NAME = 店舗名 単純に原本と言うシートを10個程度(店舗が10店舗ぐらいあります) COPYしてそれぞれのシート名を店舗名にしたいだけです。 宜しくお願い致します。
- ベストアンサー
- その他(プログラミング・開発)
- VBAでsheetのコピー
初めまして、宜しくお願い致します。環境:WindowsXPSP3EXCEL2010やりたい事Book1に複数の名前の付いたsheetがあります。sheetの数は可変です。このBook1のsheetをVBAから新に作成するBook2のsheet1に纏めたいのですが、Book2のsheet1だけに纏めたいのですが、Book2のsheet1の名前は、固定で構いません。Book1の一番初めのsheetにコピーする時だけ3行目にある見出しだけは、Book2のsheet1に付けたく。それ以外のBook1のsheetは、デターだけをコピーしたいのですが、作成したマクロでは、実行時エラーがでます。【実行時エラー'9'】【インデックスが有効範囲にありません】とでます。次の部分です。「Sheets("mySheetName(i)").Copy Before:=Workbooks("Book1").Sheets("Sheet1")」また、Book2のsheet1の名前は固定で構いません。しかし、マクロの記述の仕方も判りません。どなたかご教授願います。何卒宜しくお願い申し上げます。
- ベストアンサー
- オフィス系ソフト
- マクロでエクセルシートのコピー
マクロでシート1を最後尾に名前をつけてコピーしたいと思ってます。 つけたい名前は、シート2のあるセルにかいてあります。 私は下記のように書いたのですが、エラーになってしまいます。 Worksheets("Sheet2").Select newsheet = Cells(1, 1) Sheets("Sheet1").Select Sheets("Sheet1").Copy After:=Sheets(newsheet) どのようにすればシートをシート名をつけてコピーできますか? 教えてください。 エクセル97です。
- ベストアンサー
- オフィス系ソフト
- エクセルVBAでシートコピー
Sheets("Sheet1")をCopyして、現在の最終のシートの後に持っていき、それを変数wsに設定しようとしています。 Sub TEST01() Sheets("Sheet1").Copy After:=Sheets(Sheets.Count) Set ws = Sheets(Sheets.Count) MsgBox ws.Name End Sub これで通常はうまくいきますが、最終シートが非表示になっているとwsはその非表示のシートが指定され、Sheets("Sheet1")をCopyしたものでなくなってしまいます。 Sheets("Sheet1")をCopyして、現在の最初のシートの前に持っていき、それを変数に設定しようとしています。 Sub TEST02() Sheets("Sheet1").Copy Before:=Sheets(1) Set ws = Sheets(1) MsgBox ws.Name End Sub これで通常はうまくいきますが、最初のシートが非表示になっているとwsはその非表示のシートが指定され、Sheets("Sheet1")をCopyしたものでなくなってしまいます。 Set ws = ActiveSheet で設定できましたが、それ以外の方法はないでしょうか?
- ベストアンサー
- Excel(エクセル)
- Excel VBAの不可解(?)な動作について
Excel 2000 VBAでの質問です。 Sheet1に以下のようなコードを書きました。 --------------------------------------------------------- Public Sub test() Application.DisplayAlerts = False Sheets("Sheet2").Copy After:=Sheets(Sheets.Count) Sheets(Sheets.Count).Name = "test" Sheets("test").Visible = xlVeryHidden Sheets("Sheet3").Visible = xlVeryHidden Sheets("test").Visible = True Sheets("test").Delete Sheets("Sheet2").Copy After:=Sheets(Sheets.Count) Sheets(Sheets.Count).Name = "test" '問題の行 Application.DisplayAlerts = True End Sub --------------------------------------------------------- このコードで期待している動作は、最終的にSheet3(xlVeryHiddenになっている)の後ろにSheet2をコピーし、その名前を「test」にするというものです。 しかし、実際にはSheet3の後ろにSheet2がコピーされるものの、名前はSheet2が「test」と変更されてしまいます。 Sheets.Countの値はSheet3をさしているはずなのですが・・・。 皆様に教えていただきたいのは、 ・この意図しない動作がなぜ起こるか ・どうすればこの問題を回避できるか です。よろしくお願いいたします。 もし初歩ミスでしたら、申し訳ありません・・・。ご指摘ください。
- ベストアンサー
- その他(プログラミング・開発)
- Excel VBA
今、Excel2000で作成したEXcelブックをExcel2007でも正常に動作するか確認しています。 伝票のようなもので、枠内に数字を記入後、保存する際に別のブックにセルの全コピーしてから保存するようになっているのですが、Excel2007で実行すると列幅と行幅がコピーされません。 Set NewBook = Workbooks.Add Workbooks(ThisWorkbook.Name).Sheets("伝票").Cells.Copy NewBook.Sheets("Sheet1").Activate ActiveSheet.Paste Excel2003で動かしたときは、大丈夫でした。 原因がわかりません。コピーの仕方がいけないのでしょうか。
- ベストアンサー
- Visual Basic
- エクセルのシートのコピーについて
シートのコピーをVBAで行いたいのですが、エラーになってしまいます。 間違っている箇所が分からないのでご教授お願いします。 貼り付けというブックにマクロが組まれています。 ”データ”のブックにあるシート名が”貼り付けのブックのリスト”のシートに記載されています。 リストのシートに記載されているシートを貼り付けのブックにコピーしたいです。 よろしくお願いします。 Sub シートコピー() 行数 = 2 Do Until IsEmpty(Cells(行数, 3).Value) コピー元 = Workbooks("貼り付け.xls").Worksheet("リスト").Cells(行数, 3) Workbooks("データ.xls").Worksheet(コピー元).Copy After:=Workbooks("貼り付け.xls").Sheets(Workbooks("貼り付け.xls").Sheets.Count) 行数 = 行数 + 1 Loop End Sub
- ベストアンサー
- Visual Basic
- EXCEL VBA(作業グループの解除)
EXCEL VBAについての質問です。 複数のシートをコピーして別ブックに保存した後、元のブックが作業グループになってしまいます。 これを解除するコードを伝授いただけませんでしょうか? Sheets(Array("1", "2", "3")).Select Sheets(Array("1", "2", "3")).Copy
- ベストアンサー
- オフィス系ソフト
- 理系学部卒の就職活動では、「大学で頑張ったこと」と「大学以外の学生生活で頑張ったこと」のどちらが重要かについて質問しています。
- 前期の席次が平均より上であり、恐らく後期もそれぐらいになる見込みであるため、面接で「大学の勉強を頑張りました」と言っても中途半端な印象を与えるのではないかと悩んでいます。
- 大学の勉強以外にも資格の勉強をし、学外のサークルにも参加しています。就職先は東京都のIT企業を考えています。皆様のご意見をお聞きしたいと述べています。
補足
まだ、何故そうなってるのか分かっていないので、 これから調べる所です。 ただ、ここはもう閉じようと思います。 非表示にしたのは、多分(PGさんが作ったのを連休を使ってテストしていたので・・・)シートが色々切り替わって目障りなのでそうしたんだと思います。