こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

EXCEL VBA複数ブックからの貼り付け

複数のブックにあるデータを一つのシートに繋げるマクロを作っています。
元となるブックのフォーマットは全て一緒の為下記の様なコードを書きました。
Dim OpenFileName As Variant, tmp As String, i As Long
'複数のブック巣を選択
OpenFileName = Application.GetOpenFilename(FileFilter:="Microsoft Excelブック,*.xls", _
MultiSelect:=True)
'名前の取得
If IsArray(OpenFileName) Then
For i = 1 To UBound(OpenFileName)
tmp = tmp & OpenFileName(i) & vbCrLf
Next i
MsgBox "選択したファイルは " & vbCrLf & tmp & " ", vbInformation
Else
MsgBox "キャンセルされました。", vbInformation
End If
'選択したブックを開く
For i = 1 To UBound(OpenFileName)
Workbooks.Open OpenFileName(i)
Next i

'最初のファイルをコピーをし、DataSheetに貼り付ける
Workbooks(OpenFileName(1)).Worksheets("元帳").Cells.Copy _
Destination:=Workbooks("在庫表BETA.xls").Worksheets("DataSheet").Range("A1")

'2個以降のファイルを下に貼り付ける
For i = 2 To UBound(OpenFileName)
Workbooks(OpenFileName(i)).Worksheets("元帳").Range("A9:V54").Copy _
Destination:=Workbooks("在庫表BETA.xls").Worksheets("DataSheet").Range("A65536").End(xlUp)
Next i

'最初のファイルをコピーをし、DataSheetに貼り付ける
Workbooks(OpenFileName(1)).Worksheets("元帳").Cells.Copy _
Destination:=Workbooks("在庫表BETA.xls").Worksheets("DataSheet").Range("A1")
上の部分で『インデックスが有効範囲にありません。(Error 9)』の
エラーが発生してしまい、困っております。
また、該当箇所をコメントアウトしても『2個目以降のファイルを貼り付ける』の箇所でも同様のエラーが発生してしまいます。

無知な私ですが、宜しくお願い致します。

投稿日時 - 2009-03-15 21:19:16

QNo.4799665

困ってます

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

Sub try()
Dim OpenFileName As Variant
Dim WB_Name As Variant

'複数のブック巣を選択
OpenFileName = Application.GetOpenFilename(FileFilter:="Microsoft Excelブック,*.xls", _
MultiSelect:=True)

WB_Name = Split(OpenFileName(1), "\")

Debug.Print OpenFileName(1), WB_Name(UBound(WB_Name))
End Sub

イミディエイトウインドウで違いがわかるかも。

投稿日時 - 2009-03-15 21:31:01

お礼

n-jun殿
有難う御座います。
OpenFileNameはパスを含むために、エラーが出てしまったのですね。
助かりました、有難う御座います。

投稿日時 - 2009-03-15 21:51:41

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問