Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


58437 / 76732 ←次へ | 前へ→

【23023】シートのコピーがうまく出来ません。
質問  hiro kun  - 05/3/10(木) 9:08 -

引用なし
パスワード
   はじめまして。VBA初心者です。
過去ログを検索して見てやっているのですがうまく出来ないのでお助けください。
したい事はA.xlsにB.xls C.xlsの全てのシートをコピーしたいのです。
1.コピーされるエクセルはエクセル名も一定でなくシート数も一定ではありません。
2.コピーしたシートにS1.S2みたいにコピー順にシート名を付けたいと思ってます。
下記のものを作ってみました。
Function GETFF()

  On Error Resume Next
  
  GETFF = Application.GetOpenFilename(FileFilter:="Excel;Csv ファイル (*.xls;*.csv), *.xls;*.csv", Title:="対象ファイルを選んで下さい")

End Function

Sub S()
Dim filem, filem_2
Dim shtnm, SN, sht As String
Dim a%, b%, c%, d%, e%, f%, g%, h%, i%, j%, k%, l%, n%


'確認メッセージ
clicked = MsgBox(PROMPT:="シートをコピーします。", Buttons:=1 + 16, Title:="シートのコピー")
If clicked = 2 Then Exit Sub

'処理を隠す
Application.StatusBar = "処理実行中"
Application.ScreenUpdating = False

 
'加工するブックを開く
On Error Resume Next
 filem = GETFF()
 Workbooks.Open Filename:=filem
 filem_2 = activebook
If Err.Number = 1004 Then
  MsgBox "ファイルが指定されてません。"
  
End If
 On Error GoTo 0
 
bkname_1 = ActiveWorkbook.Name
shtnm = ActiveSheet.Name
Windows("A.xls").Activate
Sheets("MENU").Select
Range("B100").Value = bkname
Range("B101").Value = shtnm
bkname = ActiveWorkbook.Name

'シートのコピーを始める
Windows(bkname_1).Activate
For i = 1 to Worksheets.count
Sheets(i).Copy Before:=Workbooks(bkname).Sheets(1)
next i
Windows(bkname_1).Close
'ステータスバーの表示解除
  Application.StatusBar = False
  
End Sub

コピーは出来ますが同じシートをシート数だけコピーしてしまいます。
宜しくお願いします。

2 hits

【23023】シートのコピーがうまく出来ません。 hiro kun 05/3/10(木) 9:08 質問
【23030】Re:シートのコピーがうまく出来ません。 G-Luck 05/3/10(木) 13:18 発言
【23031】Re:シートのコピーがうまく出来ません。 hiro kun 05/3/10(木) 14:32 お礼

58437 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free