ExcelVBA【実践】選択したデータを別シートに自動で抽出(転記)するシステム!データベースから必要データのみを出力!【解説】

Поделиться
HTML-код
  • Опубликовано: 12 окт 2024

Комментарии • 36

  • @chanryo_eff
    @chanryo_eff  3 года назад +2

    【配布あり】こちらでExcel講座をまとめています!
    it-yobi.com/course/?pageNo=1&orderNo=2&categoryNo=10&link=4
    ●---Excel【基礎】---●
    Excelを始めるにあたり、必要な知識をまとめています!
    詳しくは再生リストにて!
    ruclips.net/p/PLuUrleRMhKDc1thXw-EmZAU34vhLrKnm3
    ●---Excel【実践】---●
    実際に開発しながら解説しています!
    詳しくは再生リストにて!
    ruclips.net/p/PLuUrleRMhKDf4BrAPNt5lfJ7bGCcgCQUw
    ●---Excelその他---●
    他にもデータベースなど再生リストを用意!
    ruclips.net/channel/UCy5cpoeTKqZ2cDzWX8NB3Ggplaylists
    ●---Googleスプレッドシート【基礎】---●
    Googleスプレッドシートを始めるにあたり、必要な知識をまとめています!
    詳しくは再生リストにて!
    ruclips.net/p/PLuUrleRMhKDe5kCiV88fRUuxsMvZ5asJC
    00:00​ 挨拶
    00:20​ 完成イメージ
    01:05​ 準備
    01:29​ 作成(データの入力規則)
    02:27​ 作成(抽出関数)
    02:37​ 作成(抽出関数:結果の削除)
    06:11​ 作成(抽出関数:対象の抽出)
    10:26​ 作成(ボタン)
    10:55​ 完成
    11:38​ プログラムの全体
    12:46​ まとめ

  • @山本ケンチャン
    @山本ケンチャン 2 года назад +1

    VBAを少しずつ勉強しています。プログラムもダウンロードできて学べるのでうれしいです。

    • @chanryo_eff
      @chanryo_eff  2 года назад

      コメントありがとうございます😊

  • @yeongmi07
    @yeongmi07 3 года назад +2

    これはまさに先日私がやろうとして挫折したやつですね!
    やっぱり必要な行だけこうやって選択してから転記したほうが速そうですし、抽出するように修正したいと思います。ありがとうございます!

  • @dasa-hs9io
    @dasa-hs9io Год назад +1

    色んなサイトを見ていましたが、1番分かりやすいです!!

    • @chanryo_eff
      @chanryo_eff  Год назад

      そう言っていただけて嬉しいです!
      ありがとうございます😆

  • @慶史篠原
    @慶史篠原 10 месяцев назад +1

    すごく参考になりました。一覧の中で抽出がすぐにできるので大変楽になりました。
    1点教えていただきたいです。
    例えば一覧のAの列に1・2・3の3つの数字を打ち込んでいき、1の数字の方のみ
    抽出の一覧に出したい場合は、どの式をどのように変更すればよいか教えていただけないでしょうか。

    • @chanryo_eff
      @chanryo_eff  10 месяцев назад

      コメントありがとうございます!
      参考: 8:14
      こちらは文字が入力されているかどうかで判断しているので、この条件文を「1」の場合というように書き換えることで実現できます。

    • @慶史篠原
      @慶史篠原 10 месяцев назад +1

      できました!😂
      ありがとうございました!

  • @あゆ-q5n
    @あゆ-q5n Год назад

    最近マクロ作成を始め、色んな方の動画を拝見させて頂いたのですが、ものすごく参考になりました!!!
    質問なのですが、、、
    抽出結果を履歴のように残す、というコメントに返信されていましたが、私の理解力が乏しくどこを消してどこに足して打てばいいのか、色々試しましたが正解が分かりません😭
    ご面倒だとは思うのですが、
    最終的な正解を教えて頂きたいです!

  • @shhsshhs177
    @shhsshhs177 Год назад +1

    とても参考になりました。ありがとうございました。

    • @chanryo_eff
      @chanryo_eff  Год назад

      そう言っていただけて何よりです!

  • @kaiketu999
    @kaiketu999 Год назад

    エクセル初心者です。ご教授下さい。
    抽出シートの方に列を一列、行を二行足して、そこに必要項目を手入力したいと考えています。列や行を増やした場合、抽出を行うとズレてしまいます。どこを修正すればよろしいかご教示いただければ幸いです。

  • @keifujimoto5473
    @keifujimoto5473 11 месяцев назад

    ちゃんりょうさん、参考になる動画を作成して頂きありがとうございます。
    ちなみに、このデータの列が仮にFまであり、必要なデータのみ取得したい場合でも作成することができるのでしょうか。また、このようなデータをスプレッドシートでも同様に作成することが可能でしょうか。
    ご回答お願いします。

    • @chanryo_eff
      @chanryo_eff  11 месяцев назад +1

      コメントありがとうございます!
      貼り付けを行っているFor文を修正することで、列の拡張や特定のデータのみを取得することができます。
      Googleスプレッドシートの場合は、VBAではなくGASという言語になりますが、同じように実現することができます。
      以下の動画が参考になるかと思います!
      ruclips.net/video/myNOZvdg1Ik/видео.html

    • @keifujimoto5473
      @keifujimoto5473 11 месяцев назад +1

      @@chanryo_eff
      ちゃんりょうさん、スプレッドシートの動画をすでに作成されてたんですね。知りませんでした。この動画は凄く参考になりますので、これを活用して作成しようと思います。ありがとうございます。

  • @隆介近藤-h9y
    @隆介近藤-h9y 2 года назад +1

    ちゃんりょうさんの動画でいつも勉強させてもらってます!
    有意義な動画ありがとうございます。
    質問なのですが、行ではなく列に●をつけて対象の列を転記させたいのですがご教授頂けたらありがたいです。

    • @chanryo_eff
      @chanryo_eff  2 года назад +1

      ありがとうございます!
      こちらの内容が行を基準に繰り返しているため、行と列を入れ換えて書き直せばできるかと思います!

    • @隆介近藤-h9y
      @隆介近藤-h9y 2 года назад +1

      ありがとうございます!
      これからも参考にさせて頂きます

  • @forzanapoli794
    @forzanapoli794 3 года назад +2

    いつも勉強させて頂いております。
    ご質問ですが
    複数シートの抽出対象を今回の動画の様に
    1つのシートにまとめたい場合はどの様にすればよろしいでしょうか?

    • @chanryo_eff
      @chanryo_eff  3 года назад +1

      いつもありがとうございます!
      With Worksheets("一覧")から、End Withまでで、一覧シートの内容を抽出シートに書き出す流れになっているので、これと同じものをEnd Withの下に追加して、With Worksheets("別のもの")のようにシート名を変えて書いていけばできるかと思います!
      ※Withの前にi=2とリセットする必要はあるかもです。

    • @forzanapoli794
      @forzanapoli794 3 года назад +1

      ありがとうございました!
      さっそくやってみます。

  • @ろったいら
    @ろったいら 2 года назад +1

    すごい参考になり、ツールの完成も間近になってきました。ありがとうございます。
    ひとつ質問なのですが、シートの指定をシート名ではなくオブジェクト名から指定するにはどうしたら良いですか?

    • @chanryo_eff
      @chanryo_eff  2 года назад

      ありがとうございます!
      オブジェクト名で指定する場合は、Worksheets()などとやらずオブジェクト名が既にオブジェクト(既にシートの情報を保持している)のため、オブジェクトを直接指定すれば大丈夫です。

  • @鈴木雅美-r9o
    @鈴木雅美-r9o 2 года назад

    VBAを習得したくて、勉強させていただいてます。いつも有難うございます。
    「抽出」シートを空白にしないで、都度「一覧」シートから抽出して、「抽出」シートに追加していきたい場合はどうなりますか?
    教えてください。よろしくお願いします。

    • @chanryo_eff
      @chanryo_eff  2 года назад +1

      こちらこそありがとうございます!
      こちらのプログラムの場合、抽出の開始位置が「j=2」と初期化されているので、この2の部分を常に最終行にして「抽出結果の削除」の内容を削除することで実現できるかと思います。
      最終行の取得方法は、動画の前半でも触れていますし、他の方法でも取得することができます。
      ※別の方法については以下の動画でも解説しています。
      ruclips.net/video/_rpdOG3GfWw/видео.html
      参考までに!

  • @ネコ黒-q4c
    @ネコ黒-q4c Год назад +1

    いつも動画お世話になっております、質問なのですが一覧表の中から抽出する際、抽出先シートを指定して抽出したいのですがそういったことは可能でしょうか?
    例えば一覧表シートの中から抽出先シート1には○○抽出
    同じ一覧表シートの中から抽出先シート2には○○抽出と言ったような説明が下手くそで申し訳ありません。宜しくお願いします。

    • @chanryo_eff
      @chanryo_eff  Год назад

      抽出元にシート名をどこかしらに記入して参照するなどしたらできるかと思います!

  • @muncini3923
    @muncini3923 3 года назад +1

    参考にさせてもらっています。
    抽出結果のシートに上書きではなくて、
    抽出結果を履歴のように残したく
    最後の空白行から、ボタンを押す毎に、下にどんどん追加していきたいです。
    別の動画の追加ボタンの方法も参考にして、コメントをくっつけてみたりしたのですが、いまのところうまくいきません。
    2日間考え中です(笑)
    どうか教えて頂けませんか。

    • @chanryo_eff
      @chanryo_eff  3 года назад +1

      ありがとうございます!
      今回の場合は、抽出シートを削除してから、2行目から書き出しているかと思います。
      なので、履歴を残した状態で、下に追加する場合は、抽出シートの削除をなくして2行目を最終行からにしてあげれば実現できるかと思います!
      最終行の求め方は、今回のプログラムの中にある削除範囲の指定時にも使われていますので、そのまま活用できるかと思います。
      修正するとしたら、
      '抽出結果を削除 内の「.Range(.Cells(2,1)…).Value = ""」を削除して、
      '抽出 内の「j = 2」を「j = x + 1」で実現できるかと思います!
      ※補足です
      最終行の求め方は、
      Do While .Cells(x,1).Value ""
      x = x + 1
      Loop
      ではなく、
      x = .Cells(.Rows.Count,1).End(xlUp).Row
      の方が処理が早くなります!
      抽出の
      Do While .Cells(i,"B").Value ""

      Loop
      に関しても、
      Dim lastRow As Long: lastRow = .Cells(.Rows.Count,"B").End(xlUp).Row
      For i = 2 To lastRow

      Next i
      にした方が処理が早くなりますので、
      慣れてきましたら参考程度に😊

    • @muncini3923
      @muncini3923 3 года назад +1

      おはようございます
      夜遅いのにご返信頂きありがとうございました!
      まさかすぐに返信くださるとは😂
      「.Range(.Cells(2,1)…).Value = ""」を削除だと、どうもうまくいかなかったので、削除の文をx = .Cells(.Rows.Count,1).End(xlUp).Rowで最終行の指定と
      抽出のJ=2からJ=x+1に変更したら、できました~(めっちゃうれしい✨)
      ありがとございます!!
      たぶん一人で考えていたら、あと一週間はできなかったと思いますww
      基本をすっ飛ばして、動画だけみて、見よう見まねで作成していましたが、やはり基礎は大事ですね。
      逆に動画を見るだけで、いきなりVBAが動かせるわけですから、すごいわかりやすいのだと思います!
      答えがわかれば、なるほど~ですが、それが出てこないですよね
      メカトロ設計者ですが、VBAにも興味を持ちましたので、
      今後も参考にさせて頂きます 
      もちろんチャンネル登録させて頂きます

    • @chanryo_eff
      @chanryo_eff  3 года назад

      無事できたみたいでよかったです!
      これからもよろしくお願いします😊

    • @あゆ-q5n
      @あゆ-q5n Год назад

      突然ごめんなさい🙏
      「.Range(.Cells(2,1)…).value=“”」を削除だと上手くいかなかったので、とありますが最終的に「.Range…」の部分を「x=.Cells…」に差し替えたのか、付け足したのか、「x=.Cells…」をどこかに入れたのか教えてください😢😢😢

  • @かえこあおり
    @かえこあおり 3 года назад +2

    勉強になるが、説明が早すぎます。付いてけない。

    • @chanryo_eff
      @chanryo_eff  3 года назад

      貴重なご意見ありがとうございます。
      ゆっくり話すよう気をつけます😂

    • @umiunie5789
      @umiunie5789 2 года назад

      再生速度遅くできますよ!