ACCESSでEXCELシートのコピーの方法とその注意点
- ACCESSでEXCELシートをコピーする方法について教えてください。
- コピーしたシート名を変更する際にエラーが発生する場合、その対処方法を教えてください。
- 複数の原本シートをCOPYしてそれぞれのシート名を店舗名にしたい場合、どのようにすれば良いですか?
- ベストアンサー
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してそれぞれのシート名を店舗名にしたいだけです。 宜しくお願い致します。
- kirin4247
- お礼率70% (33/47)
- その他(プログラミング・開発)
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> xlsobj_.sheets("原本(2)").NAME = 店舗名 xlsobj_.ActiveSheet.NAME = 店舗名 で、お試しください。
関連するQ&A
- 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"
- ベストアンサー
- Visual Basic
- マクロでのシートコピー数制限?
エクセルでマクロを使いシートをコピーしようと思っています。以下のようなマクロを作ったのですが、シートを12、3回コピーするとそれ以後、全てのシートでシートのコピーが出来なくなります。 何らかの制限でもあるのでしょうか? 分かる方がいらっしゃいましたら教えてください。 Dim Check, Counter Check = True: Counter = 0 b = 31 'シート の名前 Do While Counter < 15 Sheets("原本").Select Sheets("原本").Copy Before:=Sheets(2) Sheets("原本 (2)").Select Sheets("原本 (2)").Name = b b = b - 1 Counter = Counter + 1 Loop (マクロの知識が余りありませんので不細工なのはご容赦下さい)
- 締切済み
- オフィス系ソフト
- シートをコピーして シートに1から連番をふる
(マスター)というシートがありまして、そのシートをコピーしてシート名に1からの連番をふる マクロをお教え下さい。 Sub sub_CopySample() Dim myLooP As Integer For myLooP = 1 To 10 Sheets("マスター").Copy After:=Sheets(myLooP) Next myLooP For myLooP = 1 To 10 Sheets(myLooP + 1).Name = myLooP Next myLooP End Sub これだと止まりません。 1シートづつ増やしたいのですが。
- ベストアンサー
- オフィス系ソフト
- 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の名前は固定で構いません。しかし、マクロの記述の仕方も判りません。どなたかご教授願います。何卒宜しくお願い申し上げます。
- ベストアンサー
- オフィス系ソフト
- WorkBooksをオープンさせずにシートにコピーしたい【EXCEL VBA】
よろしくお願いします。 今あるブックにあるシートを別のブックにコピーしたいのですが、今考えているのは ここから//////// 'ブックを開く Workbooks.Open コピー元のブックのパス 'シートをコピー Worksheets.Item(コピーするシート名).Copy _ after:=Workbooks(コピー先のブック名).Sheets(1) 'ブックを閉じる Application.DisplayAlerts = False Workbooks.Item(コピー元のブック名)Close True Application.DisplayAlerts = True ここまで//// なのですが、コピーものとのブックが複数ある時、画面がチラチラしてしまいます。ブックをオープンさせずにシートを他ブックにコピーさせる方法ってないでしょうか。 ご存知の方がいらっしゃいましたら、ご教授お願いします。
- ベストアンサー
- オフィス系ソフト
- エクセル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(エクセル)
- VB6でExcelシートのコピー、貼付け
VB6でExcelファイルを開いてシートをコピーし、新規ファイルとして保存したいのですが方法がわかりません。 (既存のExcelシートを雛形として新しくBookを作りたいんです) Set objexcel = CreateObject ("Excel.Application") Set objexcel_new = CreateObject("Excel.Application") objexcel.Workbooks.open (App.Path & "\book1.xls") objexcel_new.Workbooks.Add '新規に作る 'シートのコピー objexcel.sheets("Sheet1").Copy objexcel_new.sheets("Sheet1").Select objexcel_new.activesheet.Paste としても、実行前のクリップボードの中身が貼り付けられるだけで、シートがコピーできません。 よろしくお願いします。
- 締切済み
- Visual Basic
- エクセルのマクロでシートのコピー
いつもお世話になっております。 エクセル2000で次のことをマクロで行いたいのです。 いくつかWorkbookが開いている状態で、シートのコピーを行うのですが、シート名やブック名はその都度違います。 具体的には、Workbook"A" に "a"、"b"、"c" の3つのシート、Workbook"B" に "f"、"g"、"h"の3つのシートがあり、 Workbook"A" の Sheet("a") を Workbook"B" の Sheet("h") の前にコピーしたいのです。 Sheets(1).Copy before:=Workbooks("B.xls").Sheets(3) ところがWorkbookの名前がその都度変わるので困っています。 ブック間の移動は ActiveWindow.ActivateNext などで行っていますがシートのコピーがどうしても分からないので お願いします。
- ベストアンサー
- オフィス系ソフト
- excelシートから別のexcelシートへのコピー
動作環境は、OS:XP、VB6+SP6です。 シート名がわかっている場合ですと Sheets(Array("sheet1", "sheet2")).Copy Before:=Workbooks("コピー先.xls").Sheets(1) のようにできるのですが、不明な場合はどうしたらよいのでしょうか? コピー元ワークブックのシート数とシート名が不明なので、まずコピー元のシート名を取得しました。 しかし文字列だと、上記Arrayの中に埋め込むことができません。 どなたかご存知でしたら教えてください。
- ベストアンサー
- Visual Basic
- 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(エクセル)
お礼
ありがとうございます。 無事出来ました