Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4706 / 13644 ツリー ←次へ | 前へ→

【55004】別のファイルのシートをコピーしたいのですが、、 しげ 08/4/11(金) 11:48 質問[未読]
【55005】Re:別のファイルのシートをコピーしたいの... BB 08/4/11(金) 11:56 発言[未読]
【55006】Re:別のファイルのシートをコピーしたいの... しげ 08/4/11(金) 12:24 質問[未読]
【55008】Re:別のファイルのシートをコピーしたいの... テト 08/4/11(金) 12:32 発言[未読]
【55024】Re:別のファイルのシートをコピーしたいの... しげ 08/4/11(金) 15:17 質問[未読]
【55026】Re:別のファイルのシートをコピーしたいの... テト 08/4/11(金) 15:43 発言[未読]
【55027】Re:別のファイルのシートをコピーしたいの... VBWASURETA 08/4/11(金) 15:47 発言[未読]
【55028】Re:別のファイルのシートをコピーしたいの... しげ 08/4/11(金) 15:57 お礼[未読]

【55004】別のファイルのシートをコピーしたいので...
質問  しげ  - 08/4/11(金) 11:48 -

引用なし
パスワード
   初めて投稿させて頂きます。

今回、あるエクセルファイル(.xls)の
ユーザーフォームのコマンドボタンを押したとき、
別のファイル(.csv)のシートひとつを丸ごとコピーしたい
のですが、調べてもソースコードの書き方がまったくわかりませんでした。

調べ方が足りないのかもしれないので調べ方でもかまいませんし、
ヒントでも実際のコードでもかまいません。

よろしくお願いいたします。

【55005】Re:別のファイルのシートをコピーしたい...
発言  BB  - 08/4/11(金) 11:56 -

引用なし
パスワード
   ▼しげ さん:
>初めて投稿させて頂きます。
>
>今回、あるエクセルファイル(.xls)の
>ユーザーフォームのコマンドボタンを押したとき、
>別のファイル(.csv)のシートひとつを丸ごとコピーしたい
>のですが、調べてもソースコードの書き方がまったくわかりませんでした。
>
>調べ方が足りないのかもしれないので調べ方でもかまいませんし、
>ヒントでも実際のコードでもかまいません。
>
>よろしくお願いいたします。

マクロの自動記録をやればイイんじゃないですかね?
[ツール]−[マクロ]−[新しいマクロの記録]
これをやって、マクロ化したい処理をすればVBAのコードを自動的に作成してくれますよ。
作成されたコードを調べれば分かると思います。

【55006】Re:別のファイルのシートをコピーしたい...
質問  しげ  - 08/4/11(金) 12:24 -

引用なし
パスワード
   BBさんありがとうございます。

試してみて、以下のようになりました。

Sheets.Add
Sheets("Sheet2").Select
Sheets("Sheet2").Name = "newSheet"
Cells.Select
Selection.ClearContents
Windows("ファイル2.csv").Activate
Columns("A:I").Select
Selection.Copy
Windows("ファイル1.xls").Activate
ActiveSheet.Paste

新しくシートを作成し、そのシート名を「newSheet」
と変更し、そのシートにデータをコピーしたいのですが、
毎回名前が変わってしまうため、参照できません。

解決方法はありますでしょうか?

【55008】Re:別のファイルのシートをコピーしたい...
発言  テト  - 08/4/11(金) 12:32 -

引用なし
パスワード
   Sheets.Add
MsgBox ActiveSheet.Name

【55024】Re:別のファイルのシートをコピーしたい...
質問  しげ  - 08/4/11(金) 15:17 -

引用なし
パスワード
   テトさん、ありがとうございます。


ActiveSheet.Name を利用して以下のようになりました。

  Selection.Clear
  Sheets.Add
  Sheets(ActiveSheet.Name).Select
  Sheets(ActiveSheet.Name).Name = "newSheet"
  Workbooks.Open TextBox1
  Windows("ファイル2").Activate
  Columns("A:I").Select
  Selection.Copy
  Windows("ファイル1").Activate
  ActiveSheet.Paste

しかし、このままだと、二回目に同じ名前をつけられないので、
新規のシートを作る前に今までのシートを消そうと思っています。

いい方法はありませんでしょうか?

【55026】Re:別のファイルのシートをコピーしたい...
発言  テト  - 08/4/11(金) 15:43 -

引用なし
パスワード
   処理の最初に

――――――――――――――――――――――――――――――
Application.DisplayAlerts = False
On Error Resume Next
ActiveWorkbook.Worksheets("newSheet").Delete
On Error GoTo 0
Application.DisplayAlerts = True
――――――――――――――――――――――――――――――

でシート削除すれば良いと思うけど、そういうこと?

【55027】Re:別のファイルのシートをコピーしたい...
発言  VBWASURETA  - 08/4/11(金) 15:47 -

引用なし
パスワード
   こんにちは。

それってシートがあるかの存在チェックしてあれば
シート削除ってだけで済む話と思いますけど?

わからなければ過去にもあるので一度検索してから質問しましょう。

//www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=33731;id=excel

【55028】Re:別のファイルのシートをコピーしたい...
お礼  しげ  - 08/4/11(金) 15:57 -

引用なし
パスワード
   テトさん、VBWASURETA さん ありがとうございました。

そうですね、できるだけ自分で調べないといけませんね。。
頼ってばかりになってしまいました。

解決しました、ありがとうございました。

4706 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free