
タイトルにあるとおりダイアログボックスでcsvファイルを選択して、そのファイル内のシートをコピーして持ってくるマクロを作ってみたのですが、思っていた動きと違っています。
csvファイルは開くのですが、そのシートをコピーしておらず、どこから持ってきたのかわからないシートが挿入されてきます。
どこが間違っているかお教えいただけると幸いです。
Sub
Dim wb As Workbook
Set wb = ActiveWorkbook
Dim OpenFileName As String
OpenFileName = Application.GetOpenFileName(“Microsoft Excelブック,*.csv”)
Workbooks.Open OpenFileName
ThisWorkbook.Sheets(1).Copy After:wb.Sheets(1)
End Sub
よろしくお願いいたします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
ご存知のとおり、ActiveWorkbookは今開いていてアクティブになっているWorkbookを指します。
3行目に、Set wb = ActiveWorkbook とありますが、この時点でアクティブになっているのは自分(このブック)だけなので、wb の中身は自分(このブック)です。Workbooks.Open OpenFileName の後にこのコードを移動してください。
>ThisWorkbook.Sheets(1).Copy After:wb.Sheets(1)
シートをコピーするときは、左側にコピー元、右側にコピー先を指定します。また、シートの挿入位置は After: ではなく After:= で指定します。
まとめると、こうなります。
wb.Sheets(1).Copy After:=ThisWorkbook.Sheets(1)
下は修正後のコードです
---------------------------
Sub test()
Dim wb As Workbook
Dim OpenFileName As String
OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.csv")
Workbooks.Open OpenFileName
Set wb = ActiveWorkbook
wb.Sheets(1).Copy After:=ThisWorkbook.Sheets(1)
End Sub
No.2
- 回答日時:
こんにちは
>どこから持ってきたのかわからないシートが挿入されてきます。
実行時の状況がイマイチわかりませんが、コードに記載されている通りに処理されているものと思います。
>ThisWorkbook.Sheets(1).Copy After:wb.Sheets(1)
なので、ThisWorkbook(=マクロの記述されているブック)の最初のシートが、wb(=実行時のアクティブブック)の2番目のシートとしてコピー追加されていませんか?
もしかすると、ThisWorkbookとwbは同じブックになっているかもしれませんね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
VBA 別ブックからコピペしたいのですが、軽くしたいです
Visual Basic(VBA)
-
【Excel VBA】データ貼り付け先のシート名選択
Excel(エクセル)
-
WorkBooksをオープンさせずにシートにコピーしたい【EXCEL VBA】
Excel(エクセル)
-
-
4
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
5
VBA EXCELファイル選択⇒指定セルコピー
Excel(エクセル)
-
6
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
7
【VBA】特定の値が入った行をコピーして別シートに貼り付ける方法をおしえていただきたいです。
Excel(エクセル)
-
8
特定の文字を含むシートだけマクロ処理をしたい
Visual Basic(VBA)
-
9
【VBA】特定列に文字が入っていたらそのセル行をコピーしてマスターブックの同じ行に貼り付けたい
その他(Microsoft Office)
-
10
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
11
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
12
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
13
【Excel VBA】任意のファイルだけでなく、シートまで指定する方法?
Visual Basic(VBA)
-
14
マクロボタンを押すと、ファイル名を“日付(年月日)_文字.xlsx”にして指定ファイルに保存したいの
Excel(エクセル)
-
15
VBA 存在しないシートを選択した時にエラーメッセージを表示するには?
Visual Basic(VBA)
-
16
excelのマクロで該当処理できなければ飛ばして進むにはどうすればよいのでしょうか
Visual Basic(VBA)
-
17
VBAでセルに入っている日付をシート名にする
Excel(エクセル)
-
18
【VBA】2つのシートの値を比較して条件一致したら、同じ行の隣の値を別ブックへ転記したいです。 VB
Visual Basic(VBA)
-
19
VBA ファイルを開くダイアログでの初期表示にファイルサーバーを指定
Excel(エクセル)
-
20
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別ブックをダイアログボックス...
-
VBA シートをコピーする際に Co...
-
VBA 別ブックからコピペしたい...
-
VBAで別のブックにシートをコピ...
-
Excelマクロ 該当する値の行番...
-
エクセルVBAが途中で止まります
-
VBA コードを実行すると画面が...
-
VBAで別ブックのシートを指定し...
-
vbaで他のブックに転記したい。...
-
VBS Bookを閉じるコード
-
Workbooks(workbooks.count)に...
-
【Excel VBA】書き込み先ブック...
-
教えて下さい!VBAで複数Excel...
-
リソース不足を解消したい
-
Excel2007VBAファイルの表示に...
-
エクセルVBAでテキストボックス...
-
ACCESSでExcelにデータ出力、高...
-
マクロを使って不特定のファイ...
-
VBAで複数のブックを開かずに処...
-
ワイルドカード「*」を使うとう...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数のエクセルファイルとシー...
-
VBA シートをコピーする際に Co...
-
別ブックをダイアログボックス...
-
VBA 別ブックからコピペしたい...
-
エクセルVBAが途中で止まります
-
ワイルドカード「*」を使うとう...
-
VBAで別のブックにシートをコピ...
-
VBA コードを実行すると画面が...
-
VBAで別ブックのシートを指定し...
-
【ExcelVBA】zip圧縮されたCSV...
-
【Excel VBA】書き込み先ブック...
-
2つ目のコンボボックスが動作...
-
[Excel]ADODBでNull変換されて...
-
Excelマクロ 該当する値の行番...
-
VBA 実行時エラー 2147024893
-
Excelのマクロコードについて教...
-
Excel にて、 リストボックスの...
-
【ExcelVBA】インデックスが有...
-
VBA アプリケーション定義また...
-
【Excel VBA】表の列の値毎に分...
おすすめ情報