VBAボタンを押すと別シートの2行を抽出表示

このQ&Aのポイント
  • VBAボタンを押すことで、別シートの2行を抽出して表示する方法について教えてください。
  • 業務でエクセルでボタンを作成し、特定のシートの2行を抽出する機能が必要です。1つ目のボタンはSheet1、Sheet2、Sheet3のA行とB行のセルを順番に配置し、2つ目のボタンはSheet1、Sheet2、Sheet3のC行とD行のセルを順番に配置します。3つ目のボタンはSheet1、Sheet2、Sheet3のE行とF行のセルを順番に配置します。
  • 上記の操作を行った後もう一度1つ目のボタンを押すと、クリアされた状態から操作を行うことができるマクロが知りたいです。この機能がないと業務に支障が出るため、プログラムを教えてください。知っている方、ご教示いただけないでしょうか。
回答を見る
  • ベストアンサー

VBA ボタンを押すと別シートの2行を抽出表示

どなたかおしえてください。 業務の関係で エクセルで3つほどボタンを作成しました。 (1)のボタンを押すと Sheet1、Sheet2、Sheet3 のそれぞれの シートの「A行」「B行」セルをボタンがあるシートの A行セルから横に順番にはりつけていきます。 (2)のボタンを押すと、今埋まってる内容をクリアして、(例えば(1)のボタンを押した後など) Sheet1、Sheet2、Sheet3 のそれぞれの シートの「C行」「D行」セルをボタンがあるシートの A1セルから順番にはりつけていきます。 (3)のボタンを押すと、今埋まってる内容をクリアして、(例えば(1)や(2)のボタンを押した後など) Sheet1、Sheet2、Sheet3 のそれぞれの シートの「E行」「F行」セルをボタンがあるシートの A1セルから順番にはりつけていきます。 (1)ボタンも何かうまっていればクリアした後にこの操作ができるマクロをくみたいのですが、 どなたかプログラムをおしえてください。 業務上これができないと大変困る内容なので。 知っているかたがいましたら教示ねがいます。

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

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

A行セルとかB行セルって、何のことですか? A行全体とかB行全体っていう意味ですか? でもそれだと「A行セルから横に順番に」という文章が理解できなくなります。 「エクセルで3つほどボタンを作成しました」とのことですが「エクセルで3つボタンを作成しました」ということでいいですね? その3つのボタンは、どのシートにあるのでしょうか?

isa_isa
質問者

お礼

申し訳ありませんでした。なんとか考えてみたいと思います。ありがとうございました。

isa_isa
質問者

補足

不足の内容ですいませんでした。申し訳ありません。 3つのボタンは同じシートにあります。 A行セルと書いたは、「A行」のA1~A20までを意味します。 説明不足でした。すべてにおいてA1~A20やB1~B20までです。 ですのでボタンを押すとSheet1、Sheet2、Sheet3 のそれぞれの シートの「A行の20番目」「B行の20番目」までをそれぞれ抽出    ↓ それをボタンがあるシートの A行、B行、C行、D行、E行、F行 に貼り付けるという内容になります。 すいません。お力をかしてください。

その他の回答 (4)

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

>マクロの記録機能はしっているのですが、今後膨大な数のボタンが必要になってくるので、マクロのプログラムの方が利便性が多いので、どうしてもプログラムが必要で・・・・すいません。 意味がわかりずらくて 本当に知ってるのですか? そういう名称の機能が存在することを知っているだけで、どんな機能なのかまでは知らない・理解していないんじゃないですか? あなたが必要としている「プログラム」が、まさしく「マクロの記録」で記録されるマクロです。 そして、今後膨大な数のボタンになろうが、3個のボタンだろうが、やることは同じです。 アドバイスされてことをやろうともせず、できません、作ってください、では、得られる回答も得られませんよ。

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

>今後膨大な数のボタンが必要になってくるので、マクロのプログラムの方が利便性が多いので 私はエクセルで、こういう設計方針に異を唱えます。エクセルやシステムが、よく判った人が言うならともかく、エクセルのシートやフォームに、沢山のボタンを設けるなどは、エクセルの使い方を間違っていると思います。 少し前にも同じことに関連して質問しませんでしたか。私はそこでも書きました。 エクセルの使い方について、質問者のやりたいこと(質問者の我流のプログラムレベルでなく)もっと大きく、上の見地から、 したいことを文章で説明し、出来ればシステムに詳しい人に聞く、いないだろうから、この質問コーナーでも仕方がない。質問を出したら。 ーー 本件質問だけについては、言っていることは、コマンドボタンのクリックイベント(ボタンごとになる)に、初歩的に、セルの数だけ所定のセルに対応別セルの値を代入するコードを書けば仕舞いで、VBAを何も知らない人が効いているような内容だが。

  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.3

> マクロの記録機能はしっているのですが、今後膨大な数のボタンが必要に > なってくるので、マクロのプログラムの方が利便性が多いので、 マクロの記録機能でマクロのプログラムができるので何を言っているのやら? ボタンが増えた時にあまりプログラムを修正しないような仕組みを考えたいなら それは全く別問題。少なくともボタン3個程度の動きは自分でプログラムできて 同じような処理を共通化、関数化する上で自分が考えた案を説明でき、更なる 助力を請うなら理解できるけど、次元の違う話をごちゃまぜ、自分では何も できません、仕様も整理できません、ルールの説明では揺らぎがありますでは、 会話が成立しないです。

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

最初の質問では、(1)も(2)も(3)も、A1セルから順番に貼り付けることになっていますが、補足では「それをボタンがあるシートのA行、B行、C行、D行、E行、F行に貼り付ける」ことになっています。 仕様がよく解りません。 ところで、「マクロの記録」という機能をご存知でしょうか? あなたがやろうとしていることは、状況によって範囲が変わるわけでもなさそうですし、繰り返し処理が必要なわけでもなさそうです。 やりたいことを手動でおこない、それを「マクロの記録」で記録して、記録したマクロをボタンに登録すれば良いです。

isa_isa
質問者

補足

Sheet1に2つの行、Sheet2に2つの行、Sheet3に2つの行があるので、 貼り付ける際は、トータル6列になるので「それをボタンがあるシートのA行、B行、C行、D行、E行、F行に貼り付ける」と書きました。 マクロの記録機能はしっているのですが、今後膨大な数のボタンが必要になってくるので、マクロのプログラムの方が利便性が多いので、どうしてもプログラムが必要で・・・・すいません。 意味がわかりずらくて

関連するQ&A

  • エクセル VBA 特定文字がある行を別シートに移動

    ソフト excel2003 I列(赤枠部分)に文字列が入力された表があります。 マクロ実行時下記のようにするには、VBAのコードをどのように記入すればよろしいでしょうか? 『 △ 』ボタンをクリックすると シート1の赤枠内のセルに△が入力されている行を切り取りしシート2に貼り付け (下の行は上方向にシフト) 『 × 』ボタンをクリックすると シート1の赤枠内のセルに×が入力されている行を切り取りしシート3に貼り付け (下の行は上方向にシフト) ※ シート1の内容は日毎に更新されますので、更新後、『 △ 』ボタンをクリックするとその時点で△が入力されているものはシート2のリストへ追加され、『 × 』ボタンをクリックすると×が入力されているものはシート3のリストへ追加されるようにしたいです。 急ぎの仕事なので、困っています。 宜しくお願い致します。

  • エクセルのVBAマクロで検索と結果表示(抽出)

    エクセルのVBAマクロで検索と結果表示(抽出)を行いたいです。 業務で使用している膨大なリストデータから、特定のキーワードで情報の絞り込みを行いたいのですが、上手くマクロが組めません。 機能としては、シート1で特定のキーワード(テキストボックスに)を入力し検索ボタンを押下すると、 シート2のリストデータから検索に引っかかったセルの"行"を、シート1にリストアップ(貼り付け)していくようなマクロを作りたいのです。 シート2にはB列~AH列xn行のリストデータがあり、シート2のK列のセル内から「シート1のテキストボックスで入力したキーワードを含む」検索を行い、 HITした行をシート1のA9の行から結果として表示を行いたいんです。 簡単に言えばオートフィルタ機能の部分一致版を作りたいのですが・・・。 (オートフィルタでは完全一致でしか抽出が出来ないので) そして、検索ボタンを押下すると前回結果はクリアしたいです。 ネット上のサンプル等も参考にしながらやってみたのですが上手く行きません。。。 どなたか上記のマクロ文をご教授願えないでしょうか。 必要な情報(シート2の特定の列)のみ表示させたいとも思いましたが、むずかしくて断念・・・。 もし可能でしたらこちらもお願い致します。 よろしくお願いいたします。

  • エクセル ボタンを押したら別シートへ同じものを入力

    Excelで表を作りました。 その表には、(1)名前(2)生年月日(3)住所(4)備考 という欄を作成してあります。 一行で一人分の入力になっています。 そこで、一人分の横一行の入力がなされ、その行に対する何かしらの決定ボタンを押したら シート2にの指定する箇所 (1)はセルA1 (2)はB1セル (3)はセルC1 (4)はセルD1 に同じものを入力させたいのですが、どうしたらよいでしょうか? マクロでも普通の入力する関数でもいいので どのようにすればいいかわかる方がいましたら教えてください! 本当に困っていてどうすればいいかわからいません。

  • VBA 今日の行にあるセル コピー 別シートへ

    (1)sheet1にボタン button1 があり、そのボタンを押すと、マクロが起動する。 (2)データは sheet2 貼り付け先は sheet3 sheet2 F列に日付が入っています。   F列は、日付(過去~本日まで ※未来の日付はありません)か、空白の場合があります。 F列の日付が本日のとき、 sheet2 A列のセルの値を sheet3 B列へ。  A列には連番。 sheet2 D列のセルの値を sheet3 C列へ。 sheet2 G列のセルの値を sheet3 D列へ。 sheet2 F列のセルの値を sheet3 E列へ。 それぞれ、Sheet3の各行の一番下に貼り付ける形をとりたいのです。 こちらでマクロはどうしたらよいのでしょうか。

  • Sheet1のデータを条件で行ごと抽出するVBA

    ExcelのVBAについて質問です。 Sheet1  | A | B |  C  |  D | E 1| 5/12|青森|出荷済|11個|りんご 2| 5/12|静岡|準備中|10缶|お茶 3| 5/12|愛媛|未出荷|21個|みかん 4| 5/12|新潟|未出荷|99粒|おこめ 5| 5/12|栃木|出荷済|15個|巨峰 こんなシートがあります。 これを、シート状のボタンをクリックしたときに、 「C列が"出荷済"または"準備中"の行だけ抽出して、列を入れ替えながらSheet2に並べる」 というVBAを組みたいです。 ボタンを押した後Sheet2がこんな感じになるようにしたいです。 Sheet2  | A  | B | C |  D | E 1|りんご|11個|5/12|青森|出荷済 2|お茶 |10缶|5/12|静岡|準備中 5|巨峰 |15個|5/12|栃木|出荷済 列の入れ替えはこのような感じです (Sheet1⇒Sheet2) E列⇒A列 D列⇒B列 A列⇒C列 B列⇒D列 C列⇒E列 行はSheer1の順番をSheet2でも抽出されない行を詰める形で維持したいです。 また、ボタンを押されるたびSheet2が全て上書きされる形で構いません。 抽出と入れ替えのヒントだけでもお教え頂ければ自分でやってみたいと思います。 よろしくお願いいたします。

  • 複数のシートからデータを抽出し別シートに纏める

    業務で毎日エクセルを使っています。 予め用意された表にデータを入力し、決まった時間にメールに添付して報告しています。 月に一度、毎日入力したデータを別のシートに纏めるのですが、1日分ずつコピペしており、マクロを使って時間短縮できないかと考えるようになりました。 なにぶん最近マクロという言葉を覚えたのでマクロを組むにまでは至っておりません。 どなたか良いアドバイスをいただければと思い、質問させていただきました。 【前提】 業務で使うPCはWindowsXPでExcelは2003です。 入力する表は決まった形式であり、セルの位置も同じです。 1日最大で5シート程使いますが、日によっては1シートの時も2シートの時もあります。 毎報告時に表が全て埋まることはなく、さっき報告した時は5行だったけど次の報告の時は1行だったりします(逆の場合もあります) 月に最大で110シートほどになりますが、先月は70シート程でした。 【やりたいこと/欲しい結果】 ・表のセルからデータがある行を抽出し、別シートに纏める 具体的なセルは、(1)D5~M14の範囲と、(2)D17~M26の範囲です。 ・シート1からシート100の(1)を日付順にまとめて別シート(例:まとめ1)に ・シート1からシート100の(2)を日付順にまとめて別シート(例:まとめ2)に 不慣れな上、質問を頂いてもすぐに返答できないかもしれませんが、よろしくお願い致します。

  • (VBAにて)日付でデータを抽出するやり方

    一度質問をしたのですが言葉足らずで説明不足でしたので、再質問させて頂きます。 (一度見た方も、もう一度お付き合い願います。) 全くマクロを知らないのですが、上司にマクロ作成を依頼され困っています。(無茶な...。) 下記に内容を記しますので、教えて下さい。 お願いします。 (概要) Excelで「元データシート」にて管理している障害管理表のデータを、 「まくろシート」を作成して「元データシート・D列:発生日時」をキーにして 任意の「開始月:yyyy/mm」と「終了月:yyyy/mm」をそれぞれ指定したセルに入力して、コマンドボタンを押したら、「sheet3」シートにその指定した範囲内のみのデータを表示するようにして欲しい。 ・sheet1について →・「元データ」にシート名を変更しています。  ・「元データ」には障害を管理しているデータが入力されています。    (管理表はこんな感じです)→項目名:3行目・データ:4行目~  ・セルA3~Y3が項目名(セルD3の項目名→発生日時)     ・セルA4~Y303がデータ(セルD4~D303→yyyy/mm/dd hh:mm:ss) ・sheet2について →・「まくろ」にシート名を変更しています。  ・ セルA2(開始月)とセルB2(終了月)に任意の年月(yyyy/mm)を入力してセルA5にある「コマンドボタン」を押す  ・ キーは「元データシート・D列:発生日時」のデータ部分です。      ・sheet3について →・コマンドボタンを押した結果、「sheet3」にマクロの実行結果を反映する。 (A1~Y1行目に項目名が・A2行目~Y(X)行目にデータが表示される) ・A4で印刷するのでA4用紙のサイズに設定する。 以上です。 宜しくお願いします。

  • EXCEL VBA マクロ 別シートの空白行へのコピー

    すみません、、いくらやってもできません。どなたかわかるかた助けてください。 <質問内容> エクセルのsheet1、Sheet2があり、 Sheet2にあるデータをSheet1のA列の空白行に貼り付けするというマクロを組みたいです。 BVAを使って、Sheet1の任意のデータ(データが入っているところのみ)をコピーすることまではできましたが、Sheet2へのA列空白行へペーストができないでいます。 ※Sheet2は別会社で作成のため、シート保護されていますが、貼り付けたい場所はロックされていません。 保護されているがゆえにCtr+Gのセル選択は使用できない状態です。 すみませんが、明日までになんとかお願いいたします!明日中に作成、上司に渡す予定です。

  • 別シートへ飛ばす

    エクセルの関数またはマクロでどうしたらできるのでしょうか? 内容ですが、元データはsheet1にA4に整理番号があり、B4に識別番号があり、C4に名前があり、D4にフリガナがあり、E4に区分があります。 ここでE4セルにある数種類(1~6)の区分から、1と2であれば、その左のセルの情報A4B4C4D4がsheet2のA4~E4へ上から順番に埋まっていくように飛ばすにはどうしたらいいでしょうか? たくさん羅列してあるデータから条件を満たしている人が別シートの上から順に埋めていきたいのです。 宜しくお願いします。

  • VBAで行コピーして挿入

    1行目の内容をコピーして、他の場所に指定数分だけ 挿入するマクロを作りました。 そのマクロ自体は、正しく動いたのですが、コピー元の1行目に 他のシートを参照する関数が入っていた場合、想定どおりの 結果を得ることができません。 [SHEET1:データのみを記載] 省略 [SHEET2] A1セル:   =SHEET1!$A1 ←コピー元の行 [マクロ:一部抜粋] myR = Application.InputBox("挿入する行数を入れてください", , "1") For i = 1 To myR   Rows("1:1").Copy   Cells(ActiveCell.Row, 1).Select   Selection.Insert Shift:=xlDown   Selection.EntireRow.Hidden = False Next i どういう結果を求めたいかというと、たとえば、 SHEET2のA10セル上で、このマクロを実行し、 "挿入行 = 3" と指定したら A10:   =SHEET1!$A10 A11:   =SHEET1!$A11 A12:   =SHEET1!$A12 となってほしかったのですが、結果は、 A10:   =SHEET1!$A10 A11:   =SHEET1!$A10 A12:   =SHEET1!$A10 となってしまいました。 どうにか、求める結果を得られるようにできないでしょうか?

専門家に質問してみよう