考えてみたんですが、正しいかどうかご教示いただきたいと思います。 オートフィルターの動画を見てたところ、下記のような流れになるのかなと思ったんですがいかがでしょうか。 for ステートメントで繰り返しの指示をする オートフィルターの解除と設定をし、コピーする 新しいブックを立ち上げ、そこに新しいシートを追加する その追加したシートにコピーしたデータを貼り付ける 名前をつけて保存し閉じる next
Janne Da Arc さん コメントありがとうございます! 最初のlastRowは不要ですね^_^; ご指摘ありがとうございます! あとJanne Da Arc さんのコードでも記述可能ですね!コード行数が減りますよね。 可読性か行数を減らすか 好みで使い分けてもらえたら嬉しいです^ ^ 今後ともよろしくお願いいたします☺️
大いに参考になりました。ありがとうございました。
ありがとうございます😊
とても勉強になり、ありがとうございます。
一つ質問なのですが、全く同じように作ったのですが、『ファイルがあるなら実行』の後データがありませんになってしまうのですが、何が原因かわからず、陥りやすいミスとかありますか? 6:46
そうなんですね!もし可能ならコード載せていただけますか?
drive.google.com/file/d/1E8J6v5fS1mSAhhsnJGooT1kjXNYfrzxV/view?usp=drivesdk
分かりますか?
workbooks.openをそのまま変数に入れるところと、rows.countが勉強になりました。
お役に立てれて嬉しいです☺コメントありがとうございます!
以前から複数ファイルを一つにまとめるVBAが知りたかったのですありがとうございます。 何回も視聴してやっとなんとかできました。 完全には理解しきれていませんが自分でも動かせることが出来ました。 便利に使えそうです。
ありがとうございます!VBA便利ですよね!あとパワークエリも凄くおすすめですので是非見てみてください♪
恐ろしく丁寧な説明ですね😂
3年前に知りたかったです。
ありがとうございます😂
ありがとうございます!
モチベーション上がります!
もっと良い情報を届けられるよう頑張ります!
一つのブックを分割し指定したフォルダに指定した名前で保存するマクロの動画を視聴したいです。
既に作成されているのかもしれませんが、うまく見つけることができませんでした。
検討させていただきます!コメントありがとうございます!
@@メンタエクセル
ありがとうございます。
是非よろしくお願い致します
考えてみたんですが、正しいかどうかご教示いただきたいと思います。
オートフィルターの動画を見てたところ、下記のような流れになるのかなと思ったんですがいかがでしょうか。
for ステートメントで繰り返しの指示をする
オートフィルターの解除と設定をし、コピーする
新しいブックを立ち上げ、そこに新しいシートを追加する
その追加したシートにコピーしたデータを貼り付ける
名前をつけて保存し閉じる
next
そうですね!おっしゃる通りです!
@@メンタエクセル
そうなんですね!
わかりました!ありがとうございます
とても丁寧で分かりやすかったです。
ありがとうございます😊
最近VBAを始めた40代中盤の頭が固くなった男です。
それでも非常にわかりやすかったです。
さて、本件の応用でしょうか?、1ブックに複数シートがありそれもすべて別のブックにまとめる場合です。
今回のお題に即すなら、データ元の各ファイル名が「1組」ではなく「1年」「2年」で各ファイルのシート名が
「1組」「2組」となっている状況です。
一旦1つのシートに纏める、各シートをバラしてブック化する、という方法ではなく「ブックを開き、1シートずつ処理して
次のシートへ移動し全シートを終えたらブックを閉じ次のブックへ移動」をループという流れです。
すでに動画を出されていたら申し訳ありませんがご教授お願い致します。
とても参考になりました。ありがとうございます。1点質問ですが、開くファイルにパスワードが掛かっている場合(パスワードは知っている)どのように開くのでしょうか。
こんな感じでいけます!
Sub パス付ブック開く()
Workbooks.Open Filename:="C:\User~\開くブック.xlsx", Password:="angoudesu"
End Sub
途中から よろしいですかよろしいですねよろしいでしょうかの三段構えの口癖が気になって何も入ってこなかった
そうですよね!そこに気付いてからは気をつけてます!
説明がわかりやすく大変ありがたかったです。
因みにこれのサンプルデータ等はありますでしょうか?
すみません用意しておりません🙇♂️
まさに今知りたかったvbaです。初心者ですが、繰り返し作業に役立てたいと思います!ありがとうございます。
コピーした後、貼付けの形式を「値」と「リンク付き」でする方法を試しているのですがどうしても分かりません。
ご教示頂けますでしょうか。
宜しくお願いします。
ご視聴ありがとうございます😄
また動画にする機会がありましたら解説させていただきますね♪
コメントもありがとうございます!
@@メンタエクセル さん
返信有り難うございます!
社員数が増えてきたので、コピー・ペーストの手作業に限界を感じております。
是非動画をお待ちしています。
宜しくお願いします!
初歩的な質問ですみません。ループは「まとめ」のブックは自動的に含まれずに処理されるのでしょうか?
同じフォルダだと含まれるのでIFなどでスキップさせたりして処理してますよ😄
@@メンタエクセル ご返信ありがとうございます。
何度か動画見返しましたが、スキップさせてるところがわかりませんでした。Dir関数でファイル名でワイルドカード使う場合、マクロを作成してるブックは以外が返されるのでしょうか?
ありがとうございます。私のやりたいことを教えていただけて感謝しています。
ほぼ毎日お客様から届く注文書を共有ファイルの管理簿へ転記する作業があり、一つにまとめるやり方をさがしていました。ネット検索して調べていると説明がはしょっていたり、変数がw r とか一文字で分かり難いものが多く挫折してきました。
メンタエクセルさんのコードを参考にして業務に取り組んで参ります。
まさひろさん
いつもコメントいただきまして感謝です!☺️
お役に立てる情報をお届けできて嬉しいです!
結構業務では使うコードだったりしますよね。管理簿への転記でも使えそうで良かったです😊
変数などは「解読しやすさ」が大切になりますよね!確かに一文字だど分かりにくかったりします。
内容が理解しやすく伝わっておりましたら嬉しいです😄
丁寧、簡潔、非常に分かり易い動画でした。
普段の業務に応用で色々活用出来そうで、早速試しに作成してみようと思います。
マクロは業務で色々作ってきましたが、普段使用しない内容が多く、全ての動画の
説明が分かりやすいので、非常に助かります
最近、メンタエクセルさんの動画を見つけ、一気に視聴しておりますがUP数が多く
毎晩遅く迄動画を見るのが日課になってきました
これからも、どうぞ色々な便利な動画のUPを楽しみにしております!!!!!!
mickeynb6cさん
コメントありがとうございます!
そういっていただけるととても嬉しいです😊
動画は多いですが、見るほどスキルが上がっていくと思います♪無理のない程度のペースでご覧くださいね☺️
お役に立てれば嬉しいです!
本当これが出来たらどんなにいいか…今日ネットで検索してやってみたけど難しくて出来なかった。リベンジで習得したくてたどり着きました。わかりやすいです!
ご視聴ありがとうございます😄
お役立てくださいますと嬉しいです♪
遅くなりましたが、ようやくこの回の処理を、実務利用まで辿り着きました。感謝、感謝です。今後も復習も兼ねて、何度も見直しますね。
nobinobiさん
コメントありがとうございます😊
良かったです!
今後も何か業務改善のヒントになるような動画をUPしていければと思います。
今後ともよろしくお願いします♪
お世話になっております。とても勉強になりました。
一つ質問なのですが、マクロ有効ブックもまとめるためにfilenameの"¥*.xlsx"の部分を"¥*.xlsm"や"¥*.xls*,"や"¥*.xls?"とエラーになってしまいます。(正確には、全面グレーの画面になり、強制的にファイルが閉じられます)マクロ有効ブックを含めてまとめるためにはどのようにすればいいのでしょうか。よろしくお願いいたします。
大切なエッセンスが濃縮されてるプロシージャですね!素晴らしい動画ありがとうございます。
早川正昭さん
コメントありがとうございます😄
そういっていただけまして嬉しいです!
また企画して役に立つ動画を作っていければと思います☺️
複数ブックのデータから「抽出表示」(ドロップボックスなど)させるとき、必ず今回の内容とおりに 「複数ブック→1つのブック」にまとめてから行うしかないでしょうか? 実用的には、複数のフックから 自由に 見たい情報を抽出する時が多いので、毎回導入しなければいけないのでしょうか?
H.I.Cさん
ご質問内容に回答させていただきます😄
結論からお伝えしますと、個別のファイルからデータを抽出することも可能です。
VBAは基本的になんでもできてしまうのですが、ただその場合、コードの記述は変わってきます。
ここでは述べませんが、やり方次第で個別のシートのデータを抽出して一つのExcelファイル上に表示させることもできますよ😊
@@メンタエクセル ご回答ありがとうございます。個別の抽出使用するのと、1つに抽出して使用するのとスピード的にはどちらが早いのでしょうか?また、個別のシートに数式が入ったものでも抽出可能でしょうか?
ここ半年くらいでVBAを始めたので、動画をよく参考にさせてもらってます。
ファイル名を打ち込む事なく大量の転記できたらいいなと思ってはいたものの、知識がなくて実現できていませんでした。
今回の動画を参考に、コードを書いてみようと思います!
K I さん
コメントありがとうございます^ ^
お役に立てれば嬉しいです!
今回のコードは使える場面も多いかなと思いますのでご活用いただければ幸いです☺️
とてもわかりやすいです
Jsuke AgeSage さん
嬉しいコメントありがとうございます😊
今後もわかりやすく伝えていけるように努めます^ ^
説明がわかりやすいですね。
ファイルコピーの際は、別の方法で統合という機能があります。
応用版では1行目の見出しが違っていてもひとつにまとめてくれるのでお勧めですよ。
とてもわかりやすく勉強になります
貼り付けの際なんですが値で貼り付ける方法などありますか?
黒坂さん
コピーメソッドだけではなく、PasteSpecialをご使用いただければ可能です😊
ただ、詳細はMenta VBAスクールの講座内容と被っておりますため、大変申し訳ございませんが、こちらで詳しく解説ができません💦
予めご了承いただけますと幸いです💦
簡単に説明いたしますと、
コピーメソッドではコピーのみ
Paste Specialで数値貼り付け
その後もう一度フォーマット貼り付けでできます!
@@メンタエクセル
とてもわかりやすいVBAの解説で
参考にさせて頂いてます。
値貼り付けをしたいのですが
どうにも上手く行きません。
スクールの講座はどこで見れますか?
詳細知りたいです。
PasteSpecialを使用してみても
コードにエラーが出てしまいます。
何が間違っているのかがわからないです。
PasteSpecialは
rng.Copy sh.Cells(lastRow + 1,1).PasteSpecial …
では間違っているのでしょうか?
Do Loop前のlastRowの取得は必要あるのでしょうか?
それ私も思いました。
なんならそもそもlastRow自体不要で、コピペの行をrng.Copy matomeSh.Cells(Rows.Count, 1).End(xlUp).Offset(1)でいい気がしますがどうなんでしょうか…
N. Y さん
ご指摘いただきありがとうございます^ ^
確認させていただきました!
おっしゃる通りでございます。
最初のlastRowの一行は不要ですね^_^;
すみませんがその一行は不要という解釈で動画をご視聴いただけますと幸いです。
今後ともよろしくお願いします(^^)
Janne Da Arc さん
コメントありがとうございます!
最初のlastRowは不要ですね^_^;
ご指摘ありがとうございます!
あとJanne Da Arc さんのコードでも記述可能ですね!コード行数が減りますよね。
可読性か行数を減らすか
好みで使い分けてもらえたら嬉しいです^ ^
今後ともよろしくお願いいたします☺️
ご回答ありがとうございます。
参考になります。
@@メンタエクセル 横からすいません、最初のLastrowの定義を残して、Do~Loop内のLastrowの定義を削除しても動きますか?
記載忘れがありました。
Dir関数の使い方がとても良いです。
今までファイルを取得して、リストを作成し、
リストに基づいて実行するという作り方をしていました。
なので、もっと長いコードになっていました。
今回、短くコードで済んで楽ちんでした。
とても参考になりました。複数のサブフォルダ内のExcelファイルを集計するツールを作成したいのですが、この動画のコードを応用することでできるでしょうか?Dir関数でやろうとしているのですがなかなかうまくいきません。。
本当にわかりやすいです。会社で、作成するマクロに役立ててます。ありがとうございます。
寺田かすさん
コメントありがとうございます😊
本当ですか!実際にお伝えしたマクロを役立てていただいていることが僕にとって最高の褒美です♪
お知らせいただき感謝します!
これからも出来る限り分かりやすくお届けしていきますのでよろしくお願いします☺️
良いプログラムありがとうございます。楽しく勉強できる動画はここが一番良いと思います
またまた質問ばかりで申し訳ないですがシュートカットのエクセルファイルでも同じ処理は可能ですか?
たぬ吉茶屋 さん
コメントありがとうございます😊
ショートカットがフォルダに入っている場合は厳しいですね(^^;
高度な操作が必要になります。
今回のコードは大元のExcelデータが複数フォルダ内に入っている場合に限られますね!
なるほどなー
ショートカットは都度都度パス探す必要があるから、複雑な操作になるのか
とても勉強になりました!こちらのサンプルエクセルはないのでしょうか?
mh mhさん
コメントありがとうございます😊
すみませんこちらはサンプルデータはございません😭
申し訳ございません。
最近独学で始めたばかりなのですが、複数のcsvを1つのブックにまとめたいです。まとめるブックには項目名は入っています。csvは一週間分で7個あります。ご教示願います。
列の並びが違う場合も可能ですか?
withさん
コメントいただきましてありがとうございます😄
列の並びが違うと、可能かと言えば可能かもしれませんが、そうなるとコード量がかなり増えて難易度、ツール作成の作業量も比例して増えてしまいますのであまりお勧めはしておりません。
基本的には同じ形が前提となりますね。
返信ありがとうです。ショートカットが無理でしたか、まだまだ勉強不足ですみますん、
よしエクセルのハイパーリンクならいけるかななんて、考える頭がグルグルまわってきました。色々チャレンジしてみますね。
横から失礼します。
フォルダ内のデータファイルが、データファイルそのものではなくデータファイルのショートカットだった場合でしたら、
fileName = Dir(ThisWorkbook.path & "\*.xlsx")の部分を、fileName = Dir(ThisWorkbook.path & "\*.xlsx*")に変えるだけで出来る気がしますが、どうでしょうか?
違う話でしたらすみません。
いつも拝見させて頂いております。
とても助かっています。
fileNameの拡張子(ファイルタイプ)をマクロ有効bookの.xlsmにするとだんまりになります。
.xlsxマクロのないタイプですと問題なく動きます。
マクロ有効book間のコピーはできないのでしょうか?1週間いろいろ試しましたが改善できずコメント欄に書かせて頂きました。
仕事でこの作業が本当に多いので、動画を参考にツール作成できました。いやほんと出来るようになってよかったわぁ。
ちなみに、まとめたブックを特定条件でフィルタ→各グループ毎に別ブック保存する、というvba に四苦八苦してます。。そんな動画、あるといい…なぁ。。
ありがとうございます。
動画を参考にさせてもらいました。
教えていただきたいのですが、抜き取るエクセルのシート名がバラバラな場合、作業を可能にするにはどう変えたら良いですか?
仕事でこの手の作業を改善したいと思っていて、
参考にさせていただきました!
質問なのですが、コピー元ファイルのA列にNo、B列に値があるとき、
B列に値がある場合のみA列もコピーしたいのですが
どのようにしたらよいのでしょうか?
カレントリージョンだと表全体となり、
B列に値が入っていなくてもA列にNoが
入っていればコピーされてしまいます。
いいね!!
お世話になります😊
いつも丁寧に構文を説明してくださってるのでとても勉強になります😀
大変な時期なのでお家にこもって勉強するにはピッタリですし…😅
直接的には難しいのですが、応用して使わせて頂こうと思います🤔
たくやさんもどうぞお身体に気を付けて下さい🤗❗
Miro Miro さん
コメントありがとうございます😊
この時期はスキルアップに最適ですよね!
少しでもヒントになれば嬉しいです!
Miro Miro さんも体調にはお気をつけてくださいね^_^
僕は鼻うがいとかやってます!
この動画は本来お金を払って学ぶレベルの質ですね。大変助かりました。ありがとうございます。
mao mukaiさん
コメントいただきましてありがとうございます😊
そういっていただけると本当嬉しいです。
たくやさん
ありがとうございます。
完全コピーで直ぐに動きました。
ただ、読込ファイルに空データがあり、エラー停止しました。
で、少しだけ、変更しました。
空データは飛ばすためのに読み込んだシートのlastRowを求め、「1」なら実行しない。
そんなif文を加えました。
○ lastRow = sh.Cells(Rows.Count, 1).End(xlUp).Row
○ If lastRow 1 Then
lastRow = matomeSh.Cells(Rows.Count, 1).End(xlUp).Row
Set rng = sh.Range("A1").CurrentRegion.Offset(1, 0).Resize(sh.Range("A1").CurrentRegion.Rows.Count - 1)
rng.Copy matomeSh.Cells(lastRow + 1, 1)
○ End If
3行加えただけで済む。
ちょうど、こういのを作ろうと思っていたタイミングでしたので、助かりました。
これをベースにアレンジしていきます。
列を増やす。(ファイル名など)
今後も参考にさせて貰います。
hiroshi enishi さん
コメントありがとうございます😊
動いてよかったです!
たしかに空データの場合はエラーになりますね!
ご丁寧に補足までしていただきましてありがとうございます^ ^
色んなパターンに対応するコードを書くことが大切ですね!
今後もお役に立てる動画を作れるように頑張ります!
あと、他の方からのご指摘で気づいたのですが、最初のlartRowの一行は不要でした!
申し訳ないのですが最初のlartRowの一行は無しでお願いいたします。
いやー
とても綺麗なコードですね
無駄なところがない(笑)
使わせていただきます
かつとんさん
ありがとうございます😊
そういっていただけますと嬉しいです♪