Excel VBA質問箱 IV

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

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


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

【42909】複数ファイルの選択 素人 06/9/25(月) 11:22 質問[未読]
【42912】Re:複数ファイルの選択 パン 06/9/25(月) 12:31 発言[未読]
【42919】Re:複数ファイルの選択 素人 06/9/25(月) 13:42 質問[未読]
【42921】Re:複数ファイルの選択 パン 06/9/25(月) 14:01 発言[未読]
【42923】Re:複数ファイルの選択 素人 06/9/25(月) 14:13 お礼[未読]
【42920】Re:複数ファイルの選択 パン 06/9/25(月) 13:48 発言[未読]

【42909】複数ファイルの選択
質問  素人  - 06/9/25(月) 11:22 -

引用なし
パスワード
   VBAに詳しくなく初歩的で申し訳ございません。
同じフォルダ内にある複数のファイルを選択して、結果集計ファイルにデータをコピーしたいのですが、複数のファイルを選択する場合にはどのように行えばよいのでしょうか?

1つめのファイル名:testA.xls
2つめのファイル名:testB.xls
3つめのファイル名:testC.xls

とありましたら、ファイル名にtest A〜C.xlsを選択して入力することで、各A〜Cのファイルの該当箇所のデータをコピーしたいということです。
手順としては、以下のようになります。
1.testA.xlsのファイルを開いてデータを入手してきて、testAのファイルを閉じる
2.testB.xlsのファイルを開いてデータを入手してきて、testBのファイルを閉じる
3.testC.xlsのファイルを開いてデータを入手してきて、testCのファイルを閉じる

お手数お掛けいたしますがご教示願えますでしょうか?お願いいたします。

【42912】Re:複数ファイルの選択
発言  パン E-MAIL  - 06/9/25(月) 12:31 -

引用なし
パスワード
   ▼素人 さん:
方法は色々ありますが、コピーしたデーターはどちらにすればいいのでしょうか?
結果集計ファイルの同一シート(SHEEt1)に3つとも張り付け、別々のシートに
新しいシートを作り貼り付け。
単純に行くなら下でも良いですけど。


dim A(2) as string
A(0)="testA"
A(1)="testB"
A(2)="testC"
for X=0 to 2
With Workbooks.Open(A(X) &".xls") '''''コピーデーター
   
    .Sheets(1).Range("A1:BZ300").Copy  ’’’範囲
     ThisWorkbook.Activate
     Sheets(1).Select      ’’’’左から1番目のシート
     Range("A1:BZ300").PasteSpecial Paste:=xlPasteAll
     Application.CutCopyMode = False
      .Close SaveChanges:=False
  End With

next x
>VBAに詳しくなく初歩的で申し訳ございません。
>同じフォルダ内にある複数のファイルを選択して、結果集計ファイルにデータをコピーしたいのですが、複数のファイルを選択する場合にはどのように行えばよいのでしょうか?
>
>1つめのファイル名:testA.xls
>2つめのファイル名:testB.xls
>3つめのファイル名:testC.xls
>
>とありましたら、ファイル名にtest A〜C.xlsを選択して入力することで、各A〜Cのファイルの該当箇所のデータをコピーしたいということです。
>手順としては、以下のようになります。
>1.testA.xlsのファイルを開いてデータを入手してきて、testAのファイルを閉じる
>2.testB.xlsのファイルを開いてデータを入手してきて、testBのファイルを閉じる
>3.testC.xlsのファイルを開いてデータを入手してきて、testCのファイルを閉じる
>
>お手数お掛けいたしますがご教示願えますでしょうか?お願いいたします。

【42919】Re:複数ファイルの選択
質問  素人  - 06/9/25(月) 13:42 -

引用なし
パスワード
   パンさん

ありがとうございます。
コピーしたデータは、結果集計ファイルの同一のシートに貼り付けたいと思っておりました。
ファイル名のtest A・B・Cは、固定ではなく自由に変えられればと思っております。(例えば、test A9月25日版 等)その際には、
A(0)=”test A”
というのをどのように変更すればよろしいのでしょうか?
初歩的な質問で申し訳ございません。

▼パン さん:
>▼素人 さん:
>方法は色々ありますが、コピーしたデーターはどちらにすればいいのでしょうか?
>結果集計ファイルの同一シート(SHEEt1)に3つとも張り付け、別々のシートに
>新しいシートを作り貼り付け。
>単純に行くなら下でも良いですけど。
>
>
>dim A(2) as string
>A(0)="testA"
>A(1)="testB"
>A(2)="testC"
>for X=0 to 2
> With Workbooks.Open(A(X) &".xls") '''''コピーデーター
>   
>    .Sheets(1).Range("A1:BZ300").Copy  ’’’範囲
>     ThisWorkbook.Activate
>     Sheets(1).Select      ’’’’左から1番目のシート
>     Range("A1:BZ300").PasteSpecial Paste:=xlPasteAll
>     Application.CutCopyMode = False
>      .Close SaveChanges:=False
>  End With
>
>next x

【42920】Re:複数ファイルの選択
発言  パン E-MAIL  - 06/9/25(月) 13:48 -

引用なし
パスワード
   ▼パン さん:
修正です。
左から1、2、3のシートに貼り付けられます。


Dim A(2) As String
A(0) = "testA"
A(1) = "testB"
A(2) = "testC"
For x = 0 To 2
With Workbooks.Open("テスト1" & ".xls") '''''コピーデーター
  
    .Sheets(1).Range("A1:BZ300").Copy  '’’範囲
     ThisWorkbook.Activate
     Sheets(x + 1).Select     '’’’左から1番目のシート
     Range("A1:BZ300").PasteSpecial Paste:=xlPasteAll
     Application.CutCopyMode = False
      .Close SaveChanges:=False
 End With

Next x

>▼素人 さん:
>方法は色々ありますが、コピーしたデーターはどちらにすればいいのでしょうか?
>結果集計ファイルの同一シート(SHEEt1)に3つとも張り付け、別々のシートに
>新しいシートを作り貼り付け。
>単純に行くなら下でも良いですけど。
>
>
>dim A(2) as string
>A(0)="testA"
>A(1)="testB"
>A(2)="testC"
>for X=0 to 2
> With Workbooks.Open(A(X) &".xls") '''''コピーデーター
>   
>    .Sheets(1).Range("A1:BZ300").Copy  ’’’範囲
>     ThisWorkbook.Activate
>     Sheets(1).Select      ’’’’左から1番目のシート
>     Range("A1:BZ300").PasteSpecial Paste:=xlPasteAll
>     Application.CutCopyMode = False
>      .Close SaveChanges:=False
>  End With
>
>next x
>>VBAに詳しくなく初歩的で申し訳ございません。
>>同じフォルダ内にある複数のファイルを選択して、結果集計ファイルにデータをコピーしたいのですが、複数のファイルを選択する場合にはどのように行えばよいのでしょうか?
>>
>>1つめのファイル名:testA.xls
>>2つめのファイル名:testB.xls
>>3つめのファイル名:testC.xls
>>
>>とありましたら、ファイル名にtest A〜C.xlsを選択して入力することで、各A〜Cのファイルの該当箇所のデータをコピーしたいということです。
>>手順としては、以下のようになります。
>>1.testA.xlsのファイルを開いてデータを入手してきて、testAのファイルを閉じる
>>2.testB.xlsのファイルを開いてデータを入手してきて、testBのファイルを閉じる
>>3.testC.xlsのファイルを開いてデータを入手してきて、testCのファイルを閉じる
>>
>>お手数お掛けいたしますがご教示願えますでしょうか?お願いいたします。

【42921】Re:複数ファイルの選択
発言  パン E-MAIL  - 06/9/25(月) 14:01 -

引用なし
パスワード
   ▼素人 さん:
ファイル名を指定することをセルでするなら
A(0)=RANGE"A1")とかA(0)=cells(1,1).valueとなりますしもしフォームを使えば別の指定になります。
自由にとなりますが入力をするのか?今日より3日さかのぼるかでも違います、
簡単に表現すればA(0)〜A(2)へ”〜〜”と代入すればよいです。
また、Range("A1:BZ300").PasteSpecial Paste:=xlPasteAllとありますが、これをループでまわすと同じところへ張り付けされますのでもし別の位置へ貼り付けなら
Range("A1:BZ300")を選択できるようにした方が良いです。
その後の処理とデーター量で変わりますので流れが解ればコードもかわってきます。


>パンさん
>
>ありがとうございます。
>コピーしたデータは、結果集計ファイルの同一のシートに貼り付けたいと思っておりました。
>ファイル名のtest A・B・Cは、固定ではなく自由に変えられればと思っております。(例えば、test A9月25日版 等)その際には、
>A(0)=”test A”
>というのをどのように変更すればよろしいのでしょうか?
>初歩的な質問で申し訳ございません。
>
>▼パン さん:
>>▼素人 さん:
>>方法は色々ありますが、コピーしたデーターはどちらにすればいいのでしょうか?
>>結果集計ファイルの同一シート(SHEEt1)に3つとも張り付け、別々のシートに
>>新しいシートを作り貼り付け。
>>単純に行くなら下でも良いですけど。
>>
>>
>>dim A(2) as string
>>A(0)="testA"
>>A(1)="testB"
>>A(2)="testC"
>>for X=0 to 2
>> With Workbooks.Open(A(X) &".xls") '''''コピーデーター
>>   
>>    .Sheets(1).Range("A1:BZ300").Copy  ’’’範囲
>>     ThisWorkbook.Activate
>>     Sheets(1).Select      ’’’’左から1番目のシート
>>     Range("A1:BZ300").PasteSpecial Paste:=xlPasteAll
>>     Application.CutCopyMode = False
>>      .Close SaveChanges:=False
>>  End With
>>
>>next x

【42923】Re:複数ファイルの選択
お礼  素人  - 06/9/25(月) 14:13 -

引用なし
パスワード
   パンさん

ありがとうございます。Range(“A1”)を使ってできました。
コピーも無事できました。

ありがとうございました。勉強せず初歩的なことばかりを聞いてしまいすみませんでした。自分でも勉強します。

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