【2022年、 VBA 対 Python】Excel自動化はじめるならどっち?→圧倒的にVBAがおすすめの理由を本の著者が解説
Тәжірибелік нұсқаулар және стиль
▼【無料特典!】マクロVBAに入門できる100ページ以上の「電子ブック」の無料プレゼントはこちら。
bit.ly/vba-ebook
【今回の概要】
初心者にはVBAとPythonどちらがおすすめか?
・ 【結論】VBAがおすすめ
・ Pythonがおすすめなタイプの人
・ VBAとPythonの違い5ポイント
1 コンセプトの違い
2 Excelを動かしてる実感
3 情報収集しやすさ
4 環境構築しやすさ
5 コーディングが簡単か
※ Pythonの方がいいところ
※ もしPython×Excelを学ぶなら?
▼VBAの学習にはこちらの動画もおすすめです。
【完全版】Excelマクロ 本の著者が教える、2時間で12の入門講座。忙しい人のための速習コース
• 【完全版】Excelマクロ 本の著者が教える...
==
▼【書籍販売中!】VBAの本を、特典付きで購入
マイナビ出版(著:たてばやし淳)
「Excel VBA脱初心者のための集中講座」
excel23.com/vba-book/tokuten
==
▼【有料】世界最大級のオンライン教育「Udemy」
で4万人に向けて講座をさせていただいてます
www.udemy.com/user/555c9e22ec...
#マクロ入門100ページ電子ブック説明欄でプレゼント
Пікірлер: 107
業務改善ならVBA、業務分析はVBAからpythonへ移行って感じです。勉強するなら最初にVBAやってからPythonにいく方が学習効率いいと思います。
pythonの方が実用の幅は広いし、excel以外の部分でも応用が効く しかし、最大の欠点は、環境構築が難しい…特に会社等だと、勝手に環境構築をする事が出来ない事が殆ど ソフトの定期的なversion upも必要など、面倒な部分が多い 一方vbaでは、excelさえあれば環境構築が不要 直ぐに始められて、vbaが出来れば意外と他のプログラミング言語を学ぶことになっても 案外直ぐに覚えられることが多い。(基本的な考え方が同じ) …強いて言えば、classがvbaだと使う機会が少ない為、classになれる必要があるかな程度
VBAから学び始めて、Pythonも学んでいます。VBAから学んだ方が初学者には入りやすかったです。両方学ぶのがいいと個人的には思っています。
はじめまして。 今、業務でVBAとPythonを併用してます。 会社勤めなので、VBAの方が環境構築不要で共有しやすく、将来的に共有しそうな場合はVBAにしてます。 (Pythonも面白いので、自分の業務にはガンガンPythonも使います。) 日本の会社は当分MSを使い続けそうですし、VBAの方が業務に生かしやすいように思います。
めちゃ良いテーマですね。業務効率化目的ではVBAも侮れない。 見た目を良くしたり、ちょっと関数追加して目的に沿ってデータを利用したり、そういうのはエクセルの方が便利。 でもVBAでデータ処理のプログラミングが面倒でわかり辛いと感じたら、Python勉強するタイミングてすね。 データの加工、抽出、分析を一連で行うのはPythonが結果的に楽という印象です。
VBAなら自動コード作成がExcel内にあり、そこから自分で工夫という一番ハードルが楽なのにPythonを利点で出てくるのがよくわからない社会ですよね。Pythonも便利なのは重々わかるが、VBAで勉強して自動化の利点を知ってからPython勉強した方がいいような気がします。
そうなんです。 Excelでの作業を簡略化したいだけなので、pythonとかはインストールや環境設定の手間が入り、まずはそこの調整をしなければならず本当にやりたいことが中々できないのです。 VBAは本当に私みたいな初心者にとってはありがたい存在です。
VBAも充分プログラマー。ただ、Office内の世界だけということ。 pythonは「簡単」というより「簡潔」です。 それでもって、膨大なライブラリから必要な関数を見つけるのが大変。見つかれば楽('_')。(一般なものは本で紹介されてますけど) VBAも、ちょっと離れてたら忘れてるし。ハハッ。 まぁ、どう考えてもエクセルの初心者が自動化でまずpythonの選択肢はないでしょ。 WindowsでもMacでも汎用的にExcel文書を処理したいとなれば、pythonでしょうけど、ただその「やる気と時間がある人ならば」ということですね。
私は、一冊もVBAの本を買わないで、VBAを覚えました。VBAのネットの情報は、素晴らしいです。10年以上VBAで、実務に使用しながら、今は、pythonも習得しつつあります。Excelは癖がありpythonのライブラリを使う方が良い場合はあります。pythonは、書籍や動画で学ばないとかなり難しいです。
@jun_tate
3 жыл бұрын
VBAは古くから仕様があまり変わらないことで、むしろ過去の膨大なネット資産が活かされることにつながっていますよね。ありがとうございます。
@user-ps9fd8sz4g
2 жыл бұрын
てかVBAのYahoo知恵袋班がマジで優秀
配列を使ったVBAの高速化技術は良いですよね。 私は、Dim HAI( 5 to 10000 , 2 to 10 ) みたいに、最初から貼り付けたい始点と範囲を限定するやり方がイメージしやすく、後から補正しなくていいのでよく採用します。 あとは、業務では文字列をキーにすることが多いので、連想配列を採用することが多いです。 (連想配列は、最初取っつきにくかったですが、慣れるとメチャクチャ便利なので、今では多用しています) 基本VBAユーザーですが、Pythonも興味が出てきたので、最近勉強し始めました。
@jun_tate
3 жыл бұрын
なるほどですね!その宣言方法は、セルとの対応づけをイメージしやすくするためのテクニックなんですね? 連想配列も使われてるとはだいぶ使いこなしてますね!Pythonでも「辞書」としてよく使われるのを見受けられるので、どちらでも役に立ちそうですね。 コメントありがとうございます!
@user-qk8bq1pe7c
3 жыл бұрын
はい。最終的に一括入力するセル範囲をイメージしやすくするためにやっています。(Offsetで最後に入力範囲を調整するのも面倒ですし)
同意ですが、キャリアにとって有効なのはPythonでしょうねえ。
ExcelVBAは勉強したことをすぐに実務に活かせるので最高だと思います!! 即効性があるので学び始めの頃は楽しくてしょうがなかったです^^
@jun_tate
3 жыл бұрын
なんと!動画拝見したことあります!ありがとうございます!😂 「VBAはすぐに実務に活かせる」→全くその通りですね!重大なことを動画で言えてませんでした!しまった!ありがとうございます!
私事ですが、同じタイミングで似たような主張の動画を投稿することができてなんか嬉しかった。(レベルは全然違いますが…)
@jun_tate
3 жыл бұрын
ありがとうございます、光栄です。 おすすめされてるPython×Excel本についての動画、僕もあの2冊が良いと思っていました!
Python慣れしてるからPythonで良いですw 近いうちExcelにデフォでPython入る話聞きましたし😁
セルに書き込まないで配列を使って処理する方法は、私もよく使っています。 最初に配列を作ってそこにデータを入ておき、そのデータを使って計算した結果を配列に入れるだけなので、とても簡単に作ることができました。 あまりの処理の速さに驚いたことを思い出しました。
自分のパソコンだとPythonもつかえるけど、会社のパソコンには開発環境構築できないので、結局VBA一択になっている。 実はマクロも禁止されているみたいだが、自己ツールなので勝手に使ってる
VBAに慣れてきたり色々調べているとPythonのことも取り上げてる方がいて、私がどうなんだろうと思ってたことや、こういうことかなと思ってたことが全て納得行きました。 めちゃくちゃわかりやすかったし、私みたいな人がどうなのかなって思う所を んーそういうことじゃなくてーとか、で?!と思うものが多い中 全て説明されていて完璧な動画でした。 ありがとうございました!
仕事先のPCを使わせてもらうなら勝手に環境構築できないのでVBAになっちゃいますね
@jun_tate
3 жыл бұрын
そういう事情もありますよね。インストールしない手段として、Google ColaboratoryというWebサービスを使えば、ブラウザ上でPythonが使えますよ!
@user-oq5sb6rt4v
3 жыл бұрын
googleアカウントも利用できない&インストールは何もできないセキュリティ環境なのでVBAオンリーになってしまいます。。日本最大手の企業だから仕方無いんですが。。古い体質の企業はエクセルに絶大な信頼を置いてまっせ。
xlContinuousは点線や破線でなく実線という意味で、全部に線が引かれるのはBordersコレクションで()つけてメンバーを指定しないためだと思います。 ただ、他のコレクションで()を付けないとメンバー全部になるのにBordersだと斜め線が引かれず、メンバーの一部を指定した事になるのは有り難いけどなぞの仕様ですね
@jun_tate
3 жыл бұрын
確かにですね。こちらのリンク紹介で失礼しますが、「Bordersコレクションは引数を省略すると、格子状罫線全体を返します」という仕様のようなのです。 officetanaka.net/excel/vba/cell/cell07.htm
VBAに1票!!pythonは環境構築が初学者には難しい。私は結構困りました(リテラシー低めなんで)また、VBAはエクセルを動かす実感があるし、マクロ記録も使い方次第で有効。
@jun_tate
3 жыл бұрын
環境構築で躓きましたか!僕もその苦い経験があります。😅そこを乗り越えられる自走力のある人ならもちろん良いのですが、初学者にとっては困る事態ですよね。一票ありがとうございます!
@tile_shirokuro
2 жыл бұрын
anacondaがあるぞ!!!!
参考になります。ぷろのプログラマーにならないのならばVBA。
ただExcelの自動化だけならVBAでしょう。Pythonを使うならPandasも使いましょう。私はPandasを使って7個のExcelファイルを組み合わせて意味のある情報を生み出すスクリプトを書きました。多分VBAだけでも書けるとは思いますがすごく面倒くさくなると思います。
@jun_tate
3 жыл бұрын
VBAでもそれはできますが、そういう処理はPythonの方が簡潔かもしれませんね!
@yukky474
2 жыл бұрын
パワークエリでできないモノなんでしょうか?
@user-nj5st3ho9t
2 жыл бұрын
@@yukky474 Power Queryでもできますよ。ただものによってはGUIだけでは生成できない処理もあるので、その場合はPower Query Mを使ってコードをAdvance Editorで書かなくてはならないので難易度がグンと上がります。
ワードもパワポも使わないエクセル一本で!、という精神がもっとも効率的だと思うようになってきました(笑) 自分はパーソナルマクロをVBAのデータベースにするような感じでやってるので、エクセルで作業しながらすぐに編集にも移れるVBAがいいと思っています!
マクロはとりあえず日常を楽にしたい人向け、pythonはそもそものプログラムを動かすから用途が違う。一部機能としてエクセルを動かせるに過ぎない。が、pythonだとエクセルだけじゃなくその他も動かせるため、マクロで完結できない部分を含む場合には一括でpythonでやった方がいい。 ここでは「初心者に」がテーマなので正しいが(VBAの方がコードが一見すると分かりやすい)、実際ちゃんとプログラミングを学ぶと15:20のコードぐらいはなんてことない寝起きレベルに思えるようになるので、これから学びたい人はそれほどハードルを感じなくてもいい。
プログラミング初心者ですが、ひとつプログラミングの言語を覚えて、その後他の言語を覚えるのって形が少し違うだけなのですぐに頭に入ってくるっていうイメージがあるのですが、その認識で合っていますか?💡
@jun_tate
Жыл бұрын
いいと思います!英語の次にスペイン語を勉強したら仕組みが似てるから勉強しやすいみたいな話に似てますね!
facebookに投稿したものをlineのタイムラインにも投稿することはできますか?pythonなど使って iftttやzapierなどの自動化ツールを調べたのですができないみたいなので
アーカイブに残していただけると助かります
@jun_tate
3 жыл бұрын
残りますよ!
職場で使う場合 officeは全PCに入っているので 作ったマクロがネットワーク経由で苦労せずだれでも使える Python だと 各PCにPyton install したあと、使用する ライブラリを インストールしなければいけないため 難易度が高くて無理 今同様に IEがなくなり EDGE を操作するのに webdriver を全PCに入れる難易度が高いので webdriver 使わずに操作する方法を講習してくれると嬉しいです
わかりやすい。 VBAもpythonもPowershellも使ってるけど、用途で使い分けるのがベストですわな
モチベーションという点でPython。Rubyのほうが書くの楽だけど。
質問です。セル内に文字列があり、折り返しされて表示されているとします。その文字列の折り返しされている回数をカウントすることは、VBAで可能でしょうか?
@jun_tate
2 жыл бұрын
セルの幅に収まらない文字列が入った場合に、自動的に折り返される機能が使われているセルのことですよね? いま思いつく限りでは、回数をカウントするのはなかなか困難だと思います。 なぜ折り返し回数をカウントしたいのでしょうか? もし行数を推定したいなら、たとえばセルの行の高さを取得することで行数を推定するのではダメですか?
git SQL api 便利で覚えたいのがいっぱい過ぎてどこから手をつけたいいか迷います。
マイクロソフトはvbaの開発環境をもっと考えてほしいと思いました
インストールのくだりめっちゃわかります
業務アプリ化して配布するのであれば、実行環境構築が不要なVBA一択ですね。 個人作業でデータ分析をしたり、大量データを扱ったりする場合は、Pythonの方が開発も実行も早くていいですね。動作が軽快。
どっちも使えるけどpythonはエラーメッセージがわかりにくい
最近PowerShellを使い始めたけど、そっちでも自動化できる気がしてきた。
Pythonは基本的にマウスポインタ―の位置を動かしたりすることができるので、そう考えると直感的にもPythonはできるところはありますね。 あと、VBAはプログラミングに慣れてきた人からすると少し使いずらいところがあるので、そうゆう人からするとPythonのほうが扱いやすかったりします。 ですがやはり、VBAはExcelやWordなどで効率化をするためだけに作られてるので、効率化をしたいだけならVBAのほうがいいですね。 どちらにもいいところはありますし、悪いところもあります。そして、プログラミング始めるなら、Pythonのほうがいいですね。(というかVBAでプログラミング始める人とかいないでしょ) まあ僕はわざわざPythonで効率化とかめんどくさいことしないで、VBAでやりますかねw Pythonはあくまでもプログラミング言語としてのものなのでわざわざ効率化をするためにPythonは作られてないので、途中で行き詰ると思いますし、 ExcelやWordの効率化をするならVBAのほうが圧倒的に向いてます。ただ、VBAをさらに簡単に使えるツールを作りたいのであればPython一択ですねw これに関してはもう好みでいいと思います。 あと、環境構築に関しては少し難しいのはわかります。自分だってJavaで死ぬほどつまずきました。 なので、Pythonなどの環境構築でつまずいたらバージョンを少しずらしてみるといいと思います。
いまどき自由にパイソンをインストールできる会社の方が少数派でしょうね。 VBAなら普通の会社でも継承して行くことは可能でしょうけど、パイソンで書きましたなんて言ったらメンテする気なくされそうです。
Pc上で人間が処理を起動するならvba。サーバに流れてくる大量のエクセルファイルを展開してデータ処理するとか、定期的にdb上にあるデータを元に綺麗なエクセル資料に加工して偉い人にメールするとかのバッチ処理ならPythonかな。僕はjavaでバッチ処理を実装したけど。こういう内容ならpythonの方が手軽ですね。pythonはwindows以外の実行環境でも動かせるのが強みですね。
いつもわかりやすくありがとうございます この動画のような どっちがいいのかを シリーズかしてほしいです 例えばExcelとGoogleスプレットシートです 私はExcelを使っているのですが 知り合いからは良くGoogleスプレットシートの方が良いよ、と言われます Excel慣れているのでExcelを使っているのですか? だいたいGoogleスプレットシートは何が良いのでしょうか? ExcelのマクロやVBAみたいな自動化の機能はあるのでしょうか? Excelの関数のような機能はあるのでしょうか?
@jun_tate
3 жыл бұрын
リクエストありがとうございます。Excelとスプレッドシートの比較ですね。 スプレッドシートを愛好するユーザーは非常に多いですし、僕も一部の仕事はスプレッドシートで行っています。理由としては、インターネットブラウザさえあれば(ソフトをインストールしなくても)使えるという気軽さですね。また、インターネットを通じて簡単にシートを共有できます。それゆえ、他の人と共同作業するときの選択肢としてExcelよりもスプレッドシートが選びやすいという理由があります。 (実はExcelも現在は「Excel Online」といって、オンライン上でExcelを使えますし、無料版でもかなりの機能を利用できます。)(フル機能はインストール版のExcelでしか使用できませんが)そういう意味ではExcel OnlineでもGoogleスプレッドシートでも、ほぼ同様の機能があります。ですが、Excel Onlineは全然一般には認知されてませんね。(スプレッドシートに対抗してオンライン化するのが遅すぎたため、認知が広がってません。) ・関数については、Excelにある関数と同様の関数がスプレッドシートでも使えます。 ・ただし、他の機能についてはExcelのPC版の方が充実しています。スプレッドシートは最低限というところですね。 ・マクロについては、スプレッドシートにもマクロのような機能があります。 ExcelのマクロはVBAという言語で書きますが、スプレッドシートのマクロはGoogle Apps Script(略称GAS)という言語で書きます。これはJavaScriptという言語をベースにデザインされています。 難易度はExcelマクロの方が簡単だと感じます。(慣れの問題もあると思いますが) このあたり、ちゃんとまとめることができたら動画でも解説してみたいと思います。
@user-yx2to4re5y
3 жыл бұрын
@@jun_tate わかりやすいお返事ありがとうございます。 GoogleスプレットシートもGASのような 自動化できるものがあるのですね
@yossiah
3 жыл бұрын
こんにちは、altキーなどショートカットキーをせっかく覚えたのにGoogle スプレッドシートでは覚えなおしになりますか?
@jun_tate
3 жыл бұрын
@@yossiah さん AltキーなどのショートカットはExcelに限定なので、残念ながらGoogleスプレッドシートだと使えないんですよね… スプレッドシートはあまりショートカットキー技がないのがたまに傷です。(汗
pythonが入れられない環境もあるんやよ
他言語プログラマは、vbaエディタの貧弱さでやる気がなくなる。
参考になりました。 VB🅰️のほうが業務に直結するので、VBAからはじめたいと思います
長年VBAを使っていて最近Pythonを始めたのでopenpyxlを使ってみました。 絶望しました。 エクセル自動化は圧倒的にVBAの方が簡単でした。 ただPythonはデータの扱いが簡単なので場合によってはPythonの方が良い場合もあるかも。 欲を言えばエクセルにPythonを実装してほしいです。
Pythonは興味あるけどVBAをマスターしていないからVBA優先かな、自分の目的では。 根拠なしですが、Excelの機能を100%使うならVBAオンリーではないでしょうか。openpyxlがExcelの機能をすべて持っているとは思えない。
どっちでも良いと思うけどvbaはエディタがどうしてもきつい、というか個人的に合わない。
Caracas, entendi foi nada kkk
Access
質問です。 Office365(online)でエクセルをメイン使用している場合にはどちらでしょうか。
chatGTPにこれしたい、あれしたいのVBAを教えてもらう方が今風と思います。 もちろん、自分が賢くなることはできないと思いますが、chatGTPが大脳の一部って考え(ホリエモンの意見)もあるし、あるものは利用すればいいと思います。
@jun_tate
Жыл бұрын
はい、そのような本を書きました! 【新刊Excel本】ChatGPTでマクロを作るVBA書籍。5つの見どころを徹底解説! kzread.info/dash/bejne/aZhhya2bl8uuYbg.html
@issyonioruyorouba
Жыл бұрын
@@jun_tate 素晴らしい本です。
VBAとPythonとかはどうでもいい たてばやしさん、イケメンすぎ!!
@jun_tate
3 жыл бұрын
👀💦
内容に関係ありませんが、プレゼンにまさかの神エクセルを使うのが驚きです。 なにか利点があるのですか?(VBAで自動的にパワポ形式におとしこめるとか?)
@jun_tate
3 жыл бұрын
すいません、一度返事を書いたのですが書き直します。「なぜ、ただのメモをするのにWordでなくExcelを使ってるか?」というのが主な論点ですかね?特に理由はなくて、Excelの方が自由にレイアウトできるし、神エクセルのようなシートになるとしても誰かに共有するわけではなく使ったら捨てるシートなので、自分の書きやすいExcelを使用しているという事情になります!
@kskj5672
3 жыл бұрын
@@jun_tate アイデアノートを作るときもExcelですか? マイクロソフトはOneNoteを推してますが
@jun_tate
3 жыл бұрын
もちろんOne noteも使いますよ! ただKZreadではExcelを解説することが多いため、説明の中でとっさに関数を入力したりExcelの機能を使ったりすることが多いため、レジュメを作るときにExcelの方が都合が良いためExcelを使ってるに過ぎなかったりします!
この手の質問者、学習コストがかかるからか一本槍にしたがるけど 道具ごとに得意不得意あるので、当たり前ですが引き出しは多い方がいいですよ。 初学者はどっちから?、と言われるとぱっと見で取り付きやすそうと感じた方でいいんじゃないですか。
BGMうるさすぎ! 内容が良いのにもったいない。
@jun_tate
3 жыл бұрын
すみません!音量ミスしました
VBAを悪者みたいに言う人がいますが、VBAの何が悪いんですかね
VBAはExcel専用のものなんだから、それでPythonの方が良かったら何のためにあるのかわからない。 逆に言えばExcel以外はPythonの方が良いでしょう。
てっきりパイソン推しだと思ったらまさかのVBA。会社のPCだとインストールできないし、エクセルファイルとセットで保存できるからVBA一択ですね。VBAの言語仕様は古臭いので、いい加減バージョンアップして欲しいけど
どちらでもいいと思うよ。だってどちらもフローチャート書けないとどんな言語もできないよ。VBA、python云々よりもフロー書けるようになった方がいいって。
@jun_tate
3 жыл бұрын
フローチャート大事ですよね〜
始めるにあたっての基本環境が全く違う。同じ土俵に上げること自体が間違い。
VBAでもPythonでも、Excelを使わなければ全て解決する。 ソースはテキストで、出力だけExcelファイルにすればいい。 世の中の会社は、Excelファイルへのデータ保存が多すぎる。自動化できるワケが無いし、センスが無い。
@jun_tate
3 жыл бұрын
まぁ確かに世の中の会社がExcelベースで動いてるのでなければそうですよね…
@hamuhamu6966
3 жыл бұрын
納得!!
断固VBA! ExcelやVBAが分からなければPythonでもExcelを操れない。 だって、PythonはExcelやVBAの機能を利用しているのだから。 Windowsの自動化も同じこと。 Python教のサイトや書籍などのキャッチコピーに騙されないように。
BGMがいらない、内容に集中したいのに邪魔してくる
@jun_tate
3 жыл бұрын
すいません、音量ミスでした。
Python の専門家じゃないんかい!
そもそも、Excel操作だけで両者を比較するのがおかしいでしょう。VBAは、それ専用なんだから。
@jun_tate
3 жыл бұрын
そうです。そういう話をしてるのがこの動画なんですよね
@user-vn2wk7uy2o
3 жыл бұрын
早い話し、両方とも、使いようってことですよね。
配布するならVBA、パーソナルならpython一択だろ。
VBAはダメ。 コードインテリセンスも効かないし、エラーコードも意味不明なものが多い。ライブラリも貧弱なものしかない。
@Arashi_goro
3 жыл бұрын
キャラメルのオマケに本格ホビー期待すると頭の足らない人に思われるよ w。ビジネス目線でマイクロソフトの販売戦略調べればすぐにVBAのコンセプトがわかる。