
タイトルにあるとおりダイアログボックスで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も見ています
-
【Excel VBA】データ貼り付け先のシート名選択
Excel(エクセル)
-
VBA 別ブックからコピペしたいのですが、軽くしたいです
Visual Basic(VBA)
-
WorkBooksをオープンさせずにシートにコピーしたい【EXCEL VBA】
Excel(エクセル)
-
-
4
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
5
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
6
VBA EXCELファイル選択⇒指定セルコピー
Excel(エクセル)
-
7
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
8
【VBA】特定の値が入った行をコピーして別シートに貼り付ける方法をおしえていただきたいです。
Excel(エクセル)
-
9
特定の文字を含むシートだけマクロ処理をしたい
Visual Basic(VBA)
-
10
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
11
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
12
【Excel VBA】任意のファイルだけでなく、シートまで指定する方法?
Visual Basic(VBA)
-
13
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
14
VBA 存在しないシートを選択した時にエラーメッセージを表示するには?
Visual Basic(VBA)
-
15
マクロ 新しいシートにデータをコピペしてシートの名前を変更したい
Excel(エクセル)
-
16
複数の条件に合う行番号を取得するには
その他(Microsoft Office)
-
17
【VBA】特定列に文字が入っていたらそのセル行をコピーしてマスターブックの同じ行に貼り付けたい
その他(Microsoft Office)
-
18
エクセルVBA Ifでシート名が合致したら別ファイルから転記する場合のElse IfとForの書き方
Visual Basic(VBA)
-
19
エクセルVBAでファイル・シート名を指定して、現在のブックのシートにコピーしたい
Visual Basic(VBA)
-
20
Excel VBAで同じフォルダ内のファイルを開くには?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別ブックをダイアログボックス...
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
VBA 別ブックからコピペしたい...
-
【Excel VBA】書き込み先ブック...
-
VBAで別ブックのシートを指定し...
-
VBA コードを実行すると画面が...
-
ワイルドカード「*」を使うとう...
-
vbaでvbaProjectのパスワード解...
-
VBS Bookを閉じるコード
-
【ExcelVBA】zip圧縮されたCSV...
-
Excelマクロ 該当する値の行番...
-
VBA 実行時エラー 2147024893
-
Excel2013 ウインドウサイズの固定
-
2つ目のコンボボックスが動作...
-
シートをコピーする下記記述で...
-
Dir関数で複数ブックへ行いたい...
-
VBAで別のブックにシートをコピ...
-
[Excel]ADODBでNull変換されて...
-
VBA 特定のユーザーのみパス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
別ブックをダイアログボックス...
-
VBA 別ブックからコピペしたい...
-
エクセルVBAが途中で止まります
-
ワイルドカード「*」を使うとう...
-
VBA コードを実行すると画面が...
-
VBAで別のブックにシートをコピ...
-
VBAで別ブックのシートを指定し...
-
【Excel VBA】書き込み先ブック...
-
Excelマクロ 該当する値の行番...
-
【ExcelVBA】zip圧縮されたCSV...
-
[Excel]ADODBでNull変換されて...
-
【ExcelVBA】インデックスが有...
-
Excel2007VBAファイルの表示に...
-
VBAで複数のブックを開かずに処...
-
vbaで他のブックに転記したい。...
-
エクセルマクロで、他ブックか...
-
vbaでvbaProjectのパスワード解...
-
VBA 実行時エラー 2147024893
-
【マクロ】違うフォルダにある...
おすすめ情報