|
試行錯誤した結果、解決しました!
最終的に以下のような形でできるようになりました!
マクロを叩いているブックの指定方法が違ったんですね。
ありがとうございました。
これからエラー処理を付け足して、使わせていただきます!
Private Sub sample()
Dim OpenFileName As String
OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls*")
Workbooks.Open OpenFileName
Application.Workbooks(Dir(OpenFileName)).Worksheets(Sheets(1).Name).Cells.Copy _
Application.ThisWorkbook.Worksheets("指定シート").Cells(1, 1)
Workbooks(Dir(OpenFileName)).Close
End Sub
>すいません。
>VBAに触った事がない者なのですが、
>どうしてもやりたい事があり、現在調べています。
>
>環境はExcel2003です。
>
>やりたいことは、
>「Aのブックのシート1枚からBのブックへシートの中身を全てコピーすること」です。
>
>AのブックとBのブックは同じパスに存在します。
>
>Aのブックの名前はランダムなので、
>こちらでGetOpenFilenameで取得したものを使います。
> →今はその方法しか知りません。
>Aの一番左側にあるシートを取得(コピー)します。
>最終的にAのブックを閉じます。
>
>Bのブックの名前は固定です。
>Bのコピー先シート名は固定です。
>
>現在、訳も分からず以下ようなプログラムでとまっています。
>
>
>Private Sub CommandButton1_Click()
> Dim OpenFileName As String
>
> OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls*")
> Workbooks.Open OpenFileName
>
> Application.Workbooks(OpenFileName).Worksheets("Sheets(1).Name").Cells.Copy _
> Application.Workbooks("b.xls").Worksheets("Sheets(1).Name").Cells(1, 1)
>
> Workbooks("OpenFileName").Close
>End Sub
>
>
>ステップインで調べていると、
>「インデックスが有効範囲内ではありません。」
>とでて、とまっています。
>
>Aのブックを開いた後、コピー
>Bのブックへペーストが出来ていないようです。
>
>今、構文などが全く理解していないので、
> Application.Workbooks(OpenFileName).Worksheets("Sheets(1).Name").Cells.Copy _
> Application.Workbooks("bb.xls").Worksheets("Sheets(1).Name").Cells(1, 1)
>について調べています。
>
>よろしくお願いします。
|
|