アプリ版:「スタンプのみでお礼する」機能のリリースについて

現在開いているシートからセルに入力参照からファイルを開き、開いたファイルの中の指定したシートにCSVデーターをコピーしたいのですが、指定したシートにコピーできません。
ちなみに現在開いているシートにはA1にはファイル名、A2にはシート名入力する形としてます。
指定したシートをアクテイブにするところがわかりません。
宜しくおねがいします。
以下構文
Workbooks.Open Filename:="C:\AAA\" _
& Range("A1").Value & ".xlsm"

Windows("AAA.xlsm").Activate
Dim str As String
str = Worksheets("メインメニュー").Range("A2")

ActiveWindow.ActivateNext


'Workbooks.Open "C:\AAA\A.csv"

'Range("A3:R159").Select
'Selection.Copy

'ActiveWindow.ActivateNext
'ActiveSheet.Paste



'Range("R1").Select
' Windows("A.csv").Activate
' ActiveWindow.Close

'ActiveWorkbook.Save
'ActiveWindow.Close





End Sub

A 回答 (1件)

こんにちは



ご提示のコードのほとんどがコメントアウトされているので、なさりたいことがよくわかりませんが・・・
 『指定したブックに(固定の?)CSVファイルの内容を写したい』
のようなことをなさりたいのかなと解釈しました。

具体的な位置関係や環境がわからないので、とりあえず
『指定したブックを開いて、その最後に新規シートを作成し、CSVファイル(←固定と仮定)の内容をコピーする』
というものを作成してみましたので、ご参考にでもなれば。

※ 指定されたブックやCSVファイルが既に開かれているかのチェックは行っていません。
 (開いている場合は「2重に開くと~」の警告表示がでると思います)
※ 新規作成のシートは、変数shtに取得されていますので、後で操作する場合に利用可能です。

>指定したシートをアクテイブにするところがわかりません。
以下のサンプルでも行っていますが(一番最後のところ)、シートをアクティブにするなら、
 シートオブジェクト.Activate
で可能です。
(上記の「シートオブジェクト」のところを「指定したシート」のオブジェクトにすればよろしいかと思います)


Sub Sample()
Dim filePath
Dim wb As Workbook, csvb As Workbook, sht As Worksheet

'Const defaultPath = "C:\AAA" '←必要ならデフォルトパスを指定
'ChDir defaultPath

Const csvPath = "C:\AAA\A.csv" '←CSVファイルのパス

filePath = Application.GetOpenFilename("Excel ファイル,*.xls?")
If VarType(filePath) = vbBoolean Then Exit Sub

Application.ScreenUpdating = False
Set wb = Workbooks.Open(Filename:=filePath)
Set sht = wb.Worksheets.Add(after:=wb.Worksheets(wb.Worksheets.count))
Set csvb = Workbooks.Open(Filename:=csvPath)
ActiveSheet.Cells.Copy Destination:=sht.Cells
csvb.Close SaveChanges:=False
Application.ScreenUpdating = True

sht.Activate

End Sub
    • good
    • 0
この回答へのお礼

説明不足ですいませんでした。やりたいことはほぼあっていましたので参考になりました。ありがとうございました。

お礼日時:2018/07/12 22:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!