• ベストアンサー

エクセル複数シートの検索とVBA

エクセルVBA初心者です。 今エクセル2007で、下画像の上段・中段のような売上げシートを ブックの中に複数シート作成しています。 シートは売上げのあった日毎に作成しており、シート名は「1.1」のように日付にしています。 売上日はシートの左上のA1セルに入力しています。 ここでしたい処理なのですが、画像の下段のように検索用の シートを1枚作り、そこに売上内容を入力し、マクロコードを実行すれま、自動的に 該当するデータ(売上内容から支払い方法まで)を表示するコードはあるのでしょうか。 今は手作業で、シートを目視で確認しているので大変になってきました。 よろしくお願いします。

この投稿のマルチメディアは削除されているためご覧いただけません。

質問者が選んだベストアンサー

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

sub macro1()  dim w as worksheet  dim w0 as worksheet  dim res as range  dim h as range  dim c as string ’初期化  set w0 = worksheets("検索シート")  w0.range("E2:H999").clearcontents  set res = worksheets("検索シート").range("E2") ’シートの巡回  for each w in worksheets   if w.name <> "検索シート" and isdate(w.range("A1")) then  ’マンゴーの検索   set h = w.cells.find(what:=w0.range("B2"), lookin:=xlformulas, lookat:=xlwhole)   if not h is nothing then    c = h.address    do       ’転記     res.offset(0, 2).resize(1,2).value = h.offset(0, 1).resize(1,2).value     res.offset(0, 1) = w.range("A1")     res = w0.range("B2")     set res = res.offset(1)     set h = w.cells.findnext(after:=h)    loop until h.address = c   end if  end if  next end sub #F列には事前に日付の書式を取り付けておくこと ## あるのでしょうかって,そりゃそういうプログラムを書けば良いだけでしょう。一体何が聞きたかったのですか?

関連するQ&A

  • エクセル内でのVBAの質問です。

    閲覧ありがとうございます。 エクセルの作業ファイルにてVBAのコードを作成しているのですが、中々思う通りに実行できないので、ご教授願います。 実行したい内容については以下の通りです。 ボタン1を押すと(添付画像上段のブック)、マイドキュメント内にある「データ転送ソフト2」という名前のブックを開き、そのブックのシート「A」内(添付画像下段)の、ボタン1を押したシートのF1セル(添付画像上段のブック)と同じ文字(日付)の列と"う"と入力された行の交差したセルの数値(添付画像下段の紫色のセル)をコピーして、ボタン1を押したシートのT4のセル(転送値1:の右隣にある薄緑のセル)に貼り付ける作業が行えるコードをご教授願いたいです。 要約しますと、作業しているシートのボタン1を押すと、別の場所にあるブックを開き、そのシート内の条件に沿った数値をコピーして、作業しているシートの指定されたセルに貼り付ける作業が行いたいです。 とても分かりにくい文章で申し訳ございませんが、お願いします。 可能ならば、コードの解説もつけてくださると嬉しいです。

  • エクセルとVBA

    こんにちは。 エクセル勉強中です。 今、エクセル2007で下の画像のような、売上と支店別 のシートを作成しました。 A2セルからA9に売上金額が入力されており、B2セルからB9 セルに支店名が入力されています。 A10セルとB10セルは合計額です。 ここでしたい処理なのですが、それぞれ支店別に 金額を合計して、画像の右のようなメッセージボックスを VBAで出すコードなんてあるのでしょうか。 今は目視で計算しているので大変です。 よろしくお願いします。

  • エクセルVBA

    エクセル初心者です。 今、下画像上段のようなデータをエクセルで作っています。 内容は売上表みたいなものです。 表のD列とH列に売上があれば、売上金額が入ります。 ただし、両方ともない場合は、D列とH列に金額は入らず 空白になります。 そこで、「D列とH列が両方空白の場合、その行を非表示にする」 というVBAを作りたいのですが、 コードが分からず困ってしまいました。 データ量がかなり多く、今は1行づつ非表示にしているので 時間がかかってしまいます。 完成版は画像下段です。 何かいいコードはあるのでしょうか。 よろしくお願いします。

  • エクセル データベースと検索

    エクセル初心者です。 今データベースの検索の勉強のため 以下のような2枚のシートを作成しています。 上段がデータベースの元データで在庫の商品と 支店名です。 商品の種類は全部で1000個位の種類があります。 下段が商品を備蓄している支店名と支店コードです。 そこで今回したい処理なのですが、 下段の支店コードの横の列に以下のように 検索フォームをつくり、支店名(さらに言えば支店コードだけ) を入力すれば、その支店で持っている商品名を すべて表示したいのです。 現在、目視でしているためたいへん時間がかかります。 関数やVBAで抽出することはできるのでしょうか。 よろしくお願いします。

  • エクセルで別ブックを検索するマクロ、VBA

    エクセルで以下の処理を行えるマクロを作成したいです。 当方、マクロについてほとんど知識がありません。 恐縮ですが、教えていただけると嬉しいです。 ・主にしたいこと  [検索]ブックで一致するコードを探して、  [結果]ブックの対応するコードの行にそれぞれの項目を返したい。 ●ブック1 [検索]  シートが12個あります(それぞれ、1、2、3…12というシート名=1~12月分)  ↓各シートの内容    A    B    C    D 1  氏名  数値  コード  内容 2  abc   111  SS1234 あいうえお 3  bcd   123  SS3456 かきくけこ ・ ・ ・ といった感じです。 12個のシートの中身はそれぞれ似たようなものですが、 「コード」や「内容」などは少しずつ違います。 ●ブック2 [結果]  ↓シートの内容    A    B    C    D 1  氏名  コード  内容  数値 2      SS3456 3      SS1234 ・ ・ ・ といった感じです。 (注)検索用ブックとは列の並びが異なっています。 ここでやりたいことの詳細ですが、 ・[結果]ブックの「コード」(B列)にコードを入力すると、  [検索]ブックで一致するコードを検索し、  A列「氏名」、C列「内容」、D列「数値」に、[検索]シートの内容を  自動的に表示させたい。  (ただし[結果]ブックに入力した「コード」は、[検索]ブックの1~12のうち、   どのシートにあるかわからない) ・入力したコードが見つからない場合は何も表示しない。 ということです。 最初VLOOKUP、MATCH等の関数で表示することを考えましたが、 シートが複数にまたがっているのと、 列の並び方が[検索][結果]ブックで違うのでわかりませんでした。 長くなってしまい申し訳ありませんが、どうかおしえてください。 よろしくお願いします。

  • EXCELで複数のシートの日々の累計

    初めて投稿いたします。 とても困っているので、どうぞ宜しく御願いします。 エクセル2000で、1つのBOOKに一ヶ月分の日報のシートを作成しました。 各シート名は、6月1日、6月2日、6月3日~6月30日となっています。 例えば、 この6月2日のシートのC1に6月2日の売り上げを手入力すると、このシートの E1に前日(6月1日)の売り上げ(6月1日シートのC1)+今日(6月2日)の売り上げ =累計が計算されるようにしたいのです。 月によって、営業日数が違うので、もう一枚シートを作成して、そのシートのA列に 営業日数分のシート名(6月1日、6月2日・・・)を縦に羅列し、それを読んでその名前のシートの売り上げ(C1)を読んで、当日の売り上げと累計していきたいのです。 初日は、当日の売り上げが累計値となり、 2日目は、1日目+2日目の値 3日目は、1日目+2日目+3日目の値となるようにしたいのです。 似たような質問をされているのを探して、いろいろと試してみましたが、 関数もVLOOKUPやIF等の簡単なものした使用したことがなく、うまくいかないのです。 どうか、詳しく教えていただけると、助かります。 宜しく御願いします。

  • エクセル:複数のブック間で1つのシートを共有する方法を探しています

    エクセルを使って単語帳(英語)を作っています。 仕事用、プライベート用…と複数のブックを立ち上げたのですが、 どのブックでも「単語帳」シートの他に 全く同じ内容を入力したシートを作成していた事に気がつきました。 (発音記号などを先に入力したもの。コピー&ペーストで使用。) そこで、ブック間で1つのシートを共有できたらと思うのですが、 そのためにどんな方法がありますか? 教えてください。よろしくお願いします。

  • エクセル 照合とオートフィルについて

    エクセル 照合とオートフィルについて エクセル2007で以下のようなシートが2枚できています。 上段が1枚目(シート1)で下段が2枚目(シート2)です。 2枚のシートの内容は同じなのですが、それぞれ数字と件数が 同じかどうか目視ではなく、関数と条件付き書式で処理できればと 思いました。 シート2の書式だけをシート3に作って、IF関数で処理しようと したのですが、シート3の最初の5行目にすべて数式を入力して それを7行目、8行目にコピーしたのですが、シート1が横に値があるのに対して シート2はとびとびに値があるのでうまくいきません。 1月31日までびっしりデータがあるので、いいやり方があれば教えてください。

  • VBA での複数シートに渡る複数条件検索

    こんにちは 都内でNWエンジニアをしているものです。 VBA全くの初心者ですが、今まで自分で調べてきて 欲しい情報がなかなかえられていない状態なので、 皆様からのヒントを頂きたく投稿させて頂きました。 内容を下記いたします。 【概要】 ・Excelにて10以上のシートに渡ってIPアドレス(数字)を管理しているブックがあります。 ・IPアドレスは1~4オクテット各別々のセルに記載されています。 (※例:画像「Ex1」をご参照ください※) 【やりたいこと】 ・既存のIP管理ブックに「検索」シートを挿入し、その中に「検索」ボタンを1つ作成します。 ・VBAにて検索フォームを作成し、  ユーザーフォーム中にテキストボックスを4つ、コマンドボタンを1つ作成します。 ・シート内に作成した「検索」ボタンを押すと、「検索」フォームがポップアップする  ように「検索」ボタンにマクロを登録します。 (※ここまではなんとかできました※) ※以下の部分がどのようにしたらよいのか困っています※ ・ポップアップされてきたユーザーフォーム中の  各4つのテキストボックス中にIPの数字を入力した上で、  ユーザーフォーム中のコマンドボタンを押すと検索を開始し4つのテキストボックス中の  数字に全て合致したセルまたは行へシートを跨いで移動する。  ということを行いたいのです。 どのような構文が必要になってくるのかが まったく見えていないのが現状です。 何卒皆様のご助力を頂きたくお願い申し上げます。

  • エクセル 複数シート まとめる

    過去の質問で似たような内容はあったのですが、印象が違ったのでここで改めて質問させていただきます。 複数シートが30枚程度あります。 例えば、売上表4月…売上表12月,売り上げ内容4月…売り上げ内容12月,関連業者1…関連業者12といった具合です。 これらのシートを全て表示させておくと,選択するために時間がかかり,また,選択すべきシートを間違えて入力する人も多いので,なんとか簡素化したいと考えています。 表紙のシートを作成し,ハイパーリンクを貼ることも考えたのですが,各シートはすでにいろいろ作り込んで完成しており,表紙に戻るハイパーリンクを各シートに貼る共通セルのスペースもない状態です。 例えば,シートの「売り上げ表」を選んだら,売り上げ表4月~12月までのシートだけを表示させたり,「売り上げ内容」を選んだら,売り上げ内容4月~12月までのシートだけを表示させたりすることなどは可能でしょうか? イメージとしては,「売り上げ表」「売り上げ内容」「関連業者」のメインシートの3枚のみが表示されてあり,それらのシートを選択すると,「売り上げ表4月~12月」が表示されたり,「売り上げ内容4月~12月」が表示されたりし,他のシート(メインシートと表示されているシート)以外は非表示になっている…といったようなものです。 ご教授いただけると嬉しいです。

専門家に質問してみよう