• 締切済み

excel2003 VBAマクロの作成

すいません、下記のような条件を満たすマクロのサンプルコードをお願いします。 ■前提条件 ・「検索元データ」はマクロ.xlsの中にある ・「検索先ファイル」は管理ファイル.xlsである ・マクロ.xlsファイルのA列にはデータがn個ある(セル範囲A2:A(n+1)まで) ・C:\one\two\three\管理ファイル.xls のフォルダ位置である(絶対パスで指定する) ・管理ファイルの中にはSheet1,Sheet2,Sheet3・・・・Sheet10の10コのシートがある ■マクロでしたいこと (1)A列のデータが管理ファイル(ブック内)に記載されているかチェックする (2)A列のデータをチェックしたら、下記の通りに列にチェック情報を記載する B列 データがいくつあったか(管理ファイルに記載されていない場合は0と表示) C列 データが記載されているシート名(B列が0の場合は0と表示) (3)次のデータへ (4) (1)-(3)をA列のデータがなくなるまで繰り返す (5)データがなくなったら終了(保存せず閉じない) 以上です。 よろしくお願いします。

みんなの回答

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

sub macro1()  dim myRng,mySht,n  workbooks.open filename:="C:\one\two\three\管理ファイル.xls"  n = worksheets("マクロ.xls").worksheets("シート名").range("A65536").end(xlup).row  for each myRng in worksheets("マクロ.xls").worksheets("シート名").range("A2:A" & n)  for each mySht in workbooks("管理.xls").worksheets   if application.countif(mySht.usedrange, myRng) > 0 then    myRng.offset(0, 1) = myRng.offset(0, 1) + application.countif(mySht.usedrange, myRng)    myRng.end(xltoright).offset(0, 1) = mySht.name   end if  next  next end sub >コピーして動作する状態でいただけますでしょうか? それならそうと,サンプルとか言わないで丸投げしますから作ってくださいお願いしますと書けば良いんですよ。乗りかかった船なのでどうぞウマウマ持ってってくれて構いませんが,最初からそう書いておけばもっと親切な人がさっさと答えをオシエテくれましたよ。 と言っても既にお話ししておいた内容で(ほぼ)全部ですが,どうせ寄せられたアドバイスを理解しよう自分でやってみようとする気もまるで無さそうなんですから。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

サンプルが欲しいのはどこなんでしょう。 ・マクロ.xlsファイルのA列にはデータがn個ある(セル範囲A2:A(n+1)まで) for each myRng in worksheets("マクロ.xls").worksheets("シート名").range("A1:A" & n) ’作業を記入 next のような格好で巡回して調べるのが定石です ・C:\one\two\three\管理ファイル.xls のフォルダ位置である(絶対パスで指定する) workbooks.open filename:="C:\one\two\three\管理ファイル.xls" のようにしてブックを開いて調べます ・管理ファイルの中にはSheet1,Sheet2,Sheet3・・・・Sheet10の10コのシートがある for each mySht in workbooks("管理.xls").worksheets ’作業を記入 next のような格好で巡回して調べるのが定石です (1)A列のデータが管理ファイル(ブック内)に記載されているかチェックする if application.countif(mySht, myRng) > 0 then 対象のシートに記載があります end if (2)A列のデータをチェックしたら、下記の通りに列にチェック情報を記載する 対象のシートに記載があったら myRng.offset(0, 1) = myRng.offset(0, 1) + application.countif(mySht, myRng) myRng.end(xltoright).offset(0, 1) = mySht.name などのように記入してください

testdb1
質問者

補足

サンプルが欲しいのは「マクロでしたいこと」の部分です。 前提条件というのは現在こういう状態(フォルダやファイル・フォルダ構成などを仮定した場合)で、マクロの動作で(1)-(5)をして欲しいということです。 できれば、サンプルコードはコピーして動作する状態でいただけますでしょうか? まだまだ理解が足りず、断片的なものを組み合わせるとどうもデバッグに時間がかかりすぎてしまいます。 お手数ですが、ご教授お願い致します。

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.1

検索範囲は、シート全体?特定の列? データが複数のシートにあることはないの? データが複数のシートにある場合、C列にはどのように表記するの?

testdb1
質問者

補足

データが複数のシートにあることはありません 1つのシートに同じデータが複数あることはあっても そのデータが異なるシートにはないというのが現状の条件でお願いします!

関連するQ&A