• 締切済み

はじめて質問させていただきます。VBA初心者です。

はじめて質問させていただきます。VBA初心者です。 ファイルA、ファイルB、ファイルC、ファイルDと計4つのファイルから必要なデータをファイルDのシートに入れたいと思っております。 ただしAからDのファイルの中には複数の同じフォーマットのシートが存在し、シートの数は随時増えていきます。 こういった条件なのですが、どのようにマクロをくめばいいんでしょうか? よろしくお願いいたします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

質問が具体的でない。少数の場合の例に絞って、質問文章を書けないようでは、質問課題を考えるレベルではない。 これでは課題丸投げで、コードを作ってください、ということにならざるを得ないでしょう。 ーー >必要なデータを 抽象的。これでは親切な回答者もコードをかけない。質問者は文章・言葉のヒントぐらいで、後はやれるレベルとは思えない。 具体例を少数化し、実態を隠したいなら、表現を少し変えて、模擬例を作る力が質問するには必要です。 見てる立場からすると、「>はじめて質問させていただきます。VBA初心者です。」は質問表題として、意味をなさない。表題は質問内容を表すものにすべきで、忙しい読者・回答者が答えようと振り向かせるものでないと損。 「必要なデータ」はコンピュタープログラムにはどう判別させるのか? ーー (1)別ブック エクセルは 同一シート 別シート 別ブック 別フォルダの(当然別)ブック になるに従ってVBAも難しくなる。コードにレベルがあるというよりも理解の面で。 (2)シート数が変動する これが難しくする点。 全体に、初心者がやるには難しすぎる課題だと思う。 ーーー プログラム的には A「必要なデータ」を決めるプログラム部分 固定セル 固定範囲 固定列変動行範囲 条件検索結果(内容による) など推測するが。 B。各(ブックの全)シートを扱う方法 多分For Each利用 C。他ブック(この場合ブックD)へデータを写す(この場合は代入で良いと思う)方法 などが必要だと思う。 ーー Cに関して参考コード 必ずXXX,XXXBのブックは同時に開いて実行しないといけない。 XXXBブックの標準モジュールに Sub test01() Dim sh1, sh2 As Worksheet Set sh1 = Workbooks("XXX.xls").Worksheets("Sheet1") Set sh2 = Workbooks("XXXB.xls").Worksheets("Sheet1") sh2.Range("C15") = sh1.Range("B2") End Sub ブックxxxのSheet1のB2セルの値を、XXXBブックのSheet1のC15に入れるコード例。 こういうのも、あまりVBAの解説書では見つけにくいと思う。 ーー Bに関して参考コード Sub test02() Dim sh As Worksheet For Each sh In Workbooks("XXX.xls").Worksheets sh.Activate 'テストではそのシートShのA1セルを見えるようにするためで、実際は省く MsgBox sh.Range("A1") Next End Sub XXXブックの各(全)シートのA1セルの値を順次表示。

04145198
質問者

お礼

すいません。 質問するレベルではなかったみたいですね。 もう少し質問がまとめれるレベルまで勉強してから、また質問させていただきます。 また、わかりにくいにも関わらず回答していただいてありがとうございます。

関連するQ&A