- ベストアンサー
エクセル複数シートの検索とVBA
エクセルVBA初心者です。 今エクセル2007で、下画像の上段・中段のような売上げシートを ブックの中に複数シート作成しています。 シートは売上げのあった日毎に作成しており、シート名は「1.1」のように日付にしています。 売上日はシートの左上のA1セルに入力しています。 ここでしたい処理なのですが、画像の下段のように検索用の シートを1枚作り、そこに売上内容を入力し、マクロコードを実行すれま、自動的に 該当するデータ(売上内容から支払い方法まで)を表示するコードはあるのでしょうか。 今は手作業で、シートを目視で確認しているので大変になってきました。 よろしくお願いします。
- aidorumary
- お礼率5% (16/297)
- オフィス系ソフト
- 回答数1
- ありがとう数0
- みんなの回答 (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を押すと、別の場所にあるブックを開き、そのシート内の条件に沿った数値をコピーして、作業しているシートの指定されたセルに貼り付ける作業が行いたいです。 とても分かりにくい文章で申し訳ございませんが、お願いします。 可能ならば、コードの解説もつけてくださると嬉しいです。
- ベストアンサー
- Visual Basic
- エクセル データベースと検索
エクセル初心者です。 今データベースの検索の勉強のため 以下のような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等の簡単なものした使用したことがなく、うまくいかないのです。 どうか、詳しく教えていただけると、助かります。 宜しく御願いします。
- ベストアンサー
- Windows系OS
- エクセル:複数のブック間で1つのシートを共有する方法を探しています
エクセルを使って単語帳(英語)を作っています。 仕事用、プライベート用…と複数のブックを立ち上げたのですが、 どのブックでも「単語帳」シートの他に 全く同じ内容を入力したシートを作成していた事に気がつきました。 (発音記号などを先に入力したもの。コピー&ペーストで使用。) そこで、ブック間で1つのシートを共有できたらと思うのですが、 そのためにどんな方法がありますか? 教えてください。よろしくお願いします。
- 締切済み
- Windows XP
- エクセル 照合とオートフィルについて
エクセル 照合とオートフィルについて エクセル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つのテキストボックス中の 数字に全て合致したセルまたは行へシートを跨いで移動する。 ということを行いたいのです。 どのような構文が必要になってくるのかが まったく見えていないのが現状です。 何卒皆様のご助力を頂きたくお願い申し上げます。
- ベストアンサー
- Visual Basic
- エクセル 複数シート まとめる
過去の質問で似たような内容はあったのですが、印象が違ったのでここで改めて質問させていただきます。 複数シートが30枚程度あります。 例えば、売上表4月…売上表12月,売り上げ内容4月…売り上げ内容12月,関連業者1…関連業者12といった具合です。 これらのシートを全て表示させておくと,選択するために時間がかかり,また,選択すべきシートを間違えて入力する人も多いので,なんとか簡素化したいと考えています。 表紙のシートを作成し,ハイパーリンクを貼ることも考えたのですが,各シートはすでにいろいろ作り込んで完成しており,表紙に戻るハイパーリンクを各シートに貼る共通セルのスペースもない状態です。 例えば,シートの「売り上げ表」を選んだら,売り上げ表4月~12月までのシートだけを表示させたり,「売り上げ内容」を選んだら,売り上げ内容4月~12月までのシートだけを表示させたりすることなどは可能でしょうか? イメージとしては,「売り上げ表」「売り上げ内容」「関連業者」のメインシートの3枚のみが表示されてあり,それらのシートを選択すると,「売り上げ表4月~12月」が表示されたり,「売り上げ内容4月~12月」が表示されたりし,他のシート(メインシートと表示されているシート)以外は非表示になっている…といったようなものです。 ご教授いただけると嬉しいです。
- ベストアンサー
- Excel(エクセル)