【Excel】【VBA】初心者向け解説~VBA100本ノック 1本目~【ゆっくり解説】
Summary
TLDRこのスクリプトは、ExcelのVBAを使用してシート間のデータをコピーするプロセスを説明しています。ビデオでは、マクロの記録とVBAのコードを比較し、VBAの柔軟性と実践の重要性を強調しています。問題は、Sheet1のA1からC5の範囲をSheet2のA1以降にコピーすることです。スクリプトでは、Selectメソッドの禁止と、列幅のコピーに関する問題が触れられており、シンプルさとコードの読みやすさを重視することが示唆されています。最後に、初心者向けにVBAの学習方法が提案されており、チャンネル登録を呼びかけています。
Takeaways
- 📘 VBAの学習には実践が肝要です。単なる知識では実戦での使いこなしが難しいとされています。
- 🚫 問題の条件でSelectメソッドは禁止されていたため、マクロの記録だけでは問題を解決できないことがわかります。
- 📋 Excelのシート操作をする際には、オブジェクト変数を用いることで、より柔軟で効率的なコーディングが可能になるというアドバイスがあります。
- 💡 VBAのコードは、問題解決に必要なスタート地点とゴール地点をイメージし、シンプルさを重視することが推奨されています。
- 🔍 解説では、同じ問題に対する3つの異なる解答方法が提示されており、それぞれの方法の理解が深められます。
- 🎨 列幅のコピーに関する問題が指摘され、問題文に列幅はコピーしなくても良いと明記されていたことが重要です。
- 📝 コードの書き方には個人差があり、最適な方法は状況や好みによって異なるとされています。
- 🛠️ 初心者には、マクロの記録以外のVBAの使い方が難しいと感じられるかもしれませんが、ビデオやサイトを通じて学ぶことが推奨されています。
- 📈 問題解決の過程で、コードを実行しながら1行ずつ進めて問題点を特定し、解決策を見つけることが大切です。
- 📊 今回のVBAの100本ノックは、実践的な問題に取り組むことで、自分のスキルを向上させることができると示唆しています。
- 🔄 最後に、チャンネル登録を呼びかけ、今後も興味を持っていただけることを期待しているというメッセージがあります。
Q & A
動画で紹介された「VBA 100本ノック」とは何ですか?
-「VBA 100本ノック」とは、VBA(Visual Basic for Applications)を使って100個の問題を解くことを目指したプロジェクトのことです。VBAは、Microsoft OfficeのExcelなどにあるプログラミング言語で、自動化やカスタマイズに使われます。
マクロの記録とVBAプログラミングの違いは何ですか?
-マクロの記録は、Excelの操作を記録して自動化することができる機能ですが、柔軟性が低いです。一方、VBAプログラミングは手動でコードを書くことで、より高度な自動化を実現できます。マクロは記録された操作を繰り返しますが、VBAは複雑なロジックも記述できます。
動画で説明された「Select メソッド禁止」の課題とは何ですか?
-「Select メソッド禁止」の課題では、VBAのSelectメソッドを使ってセルを選択することは禁止されています。代わりに、WorksSheetオブジェクトやRangeオブジェクトを直接操作して、セルの範囲を指定する必要があります。これは、コードをより効率的で簡潔に保つためのルールです。
オブジェクト変数とは何ですか?
-オブジェクト変数は、Excelのオブジェクト(例えば、Worksheet、Rangeなど)を参照する変数です。オブジェクト変数を使うことで、コードが読みやすくなり、また、オブジェクトを繰り返し参照する際にパフォーマンスが向上します。
動画で使われた「トゥデイ関数」とは何ですか?
-「トゥデイ関数」とは、VBAのToday関数の誤読です。Today関数は、現在の日付を返すVBAの関数です。動画では、その関数を使って、日付をセルに入力するという説明がありました。
列幅をコピーしない理由は何ですか?
-列幅をコピーしない理由は、問題の条件に「列幅はコピーしなくても良い」と明記されていたためです。また、VBAでセルの内容をコピーする際には、デフォルトで列幅はコピーされないため、手動での操作が不要です。
動画で説明されたVBAの書き方の違いはなぜ存在しますか?
-VBAの書き方の違いは、プログラマーの好みや経験、また問題に対する解き方によって異なります。自動化のプログラムはスタート地点とゴール地点が決まっており、その間の道のりはプログラマーによって様々です。シンプルで読みやすいコードを書くことが、他の人がコードを理解しやすくするために重要です。
動画で提案された学習方法は何ですか?
-動画では、マクロの記録以外のVBAの使い方を知りたい人に対して、動画やサイトでの学習を提案しています。また、本やサイトで学ぶことで、より深くVBAを理解し、実践的なスキルを身につけることができます。
動画で使われた「戦闘せる」とは何を意味しますか?
-「戦闘せる」は、動画の文脈から推測すると、「貼り付ける」の誤読または方言表現の可能性があります。VBAのコードでセルの範囲をコピーし、別のシートに貼り付ける操作を意味していると解釈されます。
動画で紹介されたVBAのコード例は何を目的としていますか?
-動画で紹介されたVBAのコード例は、ExcelのSheet1のA1からC5の範囲をSheet2のA1以降にコピーすることを目的としています。これはVBA 100本ノックの1つとして、VBAでのシート操作を学ぶための課題として提示されています。
動画で触れられた「シンプルさ」とは何を意味しますか?
-「シンプルさ」とは、コードが簡潔で読みやすい状態を意味します。シンプルなコードは、他の人が理解しやすくなり、またバグが発生しにくいため、メンテナンス性も高まります。動画では、初心者がコードを書く際にはシンプルさを意識することが重要だと強調されています。
Outlines
😀 Excel VBA 100本ノックの挑戦
この段落では、かゆっくり霊夢がExcelのVBAマクロを使って100本ノックを挑戦することを紹介しています。彼女は、プログラミングのレベルが高くないと自覚しており、問題解決の過程が大切だと述べています。また、VBAを習得するには実践が必要だと強調し、真髄様のサイトとTwitterを紹介しています。最初の問題は、特定のセル範囲を別のシートにコピーするというもので、かゆっくり霊夢はマクロの記録を使わずにVBAコードを書く方法を模索します。
😓 VBAでのシート操作と問題解決
かゆっくり霊夢は、最初の問題を解く過程でいくつかの課題に直面しています。彼女は、列幅がコピーされないことに気づき、問題文を再度確認することで、列幅をコピーする必要がないことを学びます。その後、彼女は解説を見て、他の人の解答方法を比較し、シンプルさの重要性を理解します。彼女は、解答を試し、自分のコードとの違いを学び、シンプルで理解しやすいコードを書くことが大切だと結論づけます。最後に、彼女は初めてVBAを学ぶ人にとっての難しさについて語り、今後も興味を持ってもらいたいと述べています。
Mindmap
Keywords
💡かゆっくり霊夢
💡魔理沙
💡VBA
💡マクロ
💡シート
💡セル範囲
💡数式
💡書式
💡オブジェクト変数
💡シンプルさ
💡コメント
Highlights
かゆっくり霊夢がVBAの100本ノックに挑戦し、Excelの真髄様のサイトを参考にする
マクロの記録ではなく、VBAを直接使用してシート間のデータをコピーする問題に取り掛かる
Selectメソッドは禁止され、VBAのオブジェクト変数を使用してシートを操作することが求められる
VBAでシートを変数に定義し、その変数を使用してデータを操作する方法が解説されている
問題の説明を繰り返し読み、範囲と条件を理解することで、VBAのコードを書くための基礎を身につける
VBAのコードを書いて、シート1から2へのデータコピーを試みる
列幅がコピーされない問題に気づき、問題文の条件を再確認する
解説を見ることで、自分のコードと提供された解答のコードの違いを理解する
VBAの書き方には個人差があり、シンプルさと理解しやすさが重要であると気づく
解説ビデオでは3つの異なる解答コードが提供され、それぞれを試してみる
初心者にはVBAの基本的な使い方を学ぶことをお勧めし、自分の苦い過去を共有して励ます
VBAを学ぶ際には、実践を通じてスキルを身につけることが肝心であると強調する
真髄様のTwitterもチェックしてみることを提案し、面白いコンテンツを共有する
初心者がVBAを学ぶ際には、動画や書籍を活用して理解を深めることを提案する
チャンネル登録を呼びかけ、視聴者のサポートを感謝する
かゆっくり霊夢がVBAの学習者に対して励ましの言葉を述べ、今後も興味を持ってもらいたいと話す
Transcripts
かゆっくり霊夢ですよろしくお願いします
魔理沙ですよろしくね今日は excel の真髄様のサイトをお借りして vba
100本ノックをやってみるわ
vba 100本ノックすごそうですねああああ
めちゃくちゃすげーぞ正直私のレベルじゃ分からない
問題もあると思うわえそれでいいんですか
まあ vba て回答と合ってるか合ってないかより途中の考え方の方が大事だったり
するから
もし見て下さった人は一つの考え方程度に捉えて頂けますと幸いです
vba を習得するには実践あるのみ
そのまま読み上げましたね
えっ知識だけでは実戦で使いこなせません
その通りですね
そういや真髄さん twitter もやってて面白いからそっちもチェックしたほう
がいいぞ
ぜひ見てみてください
じゃ前置きはこの辺にして早速問題未定稿かなぁ
解けるかなぁ頑張ってください
1本目はヘルのコピー砂
コピーぐらいならできますかね
運動だろうなぁとりあえず問題読みます
出題 sheet 1の a 1から c 5のセル範囲を sheet 2の a 1
から c 後にコピーしてください
あこれくらいなら私にも出来そうですよ
マクロの記録で1回こんな感じの作業を自動化したことありますあいや待て早まるな魔
理沙
さすが真髄さんいきなり大多数のにわか vba あーをふるい落としにかかってるな
どういうことですか下の文章に注目だぜ
ただし select メソッドは禁止私には分かりませんが記録じゃダメってこと
ですかね
あああああああダメだな1問目でこれは
記録だけじゃダメだぞっていうメッセージなのかな
まあとりあえずやってみるわ
ん
[音楽]
よいしょ
よしまずはシートににコピーってことなのでシートにを作ります
shift + f 11 c とにが出来ましたね
お次は
[音楽]
a 1から c 後にとりあえず何か入れようか入れたい範囲を選択してなんか文字を
入れてコントロール enter
sheet 1のこいつらがシートににコピーされればいいんだな
あちょっと待って数式も書式持ってところ見落としてたわ
数式はとりあえずトゥデイ関数でいいかな b 列に打ち込みます
今日はクリスマスもうすぐ今年も終わりですね
寂しいな c 列は書式を変えとこうおーると
hh で背景の色を変えれます魔理沙色ですね
よし準備は整ったかなこいつらがシートににコピーできれば ok ですね vba
書いていきましょう
オールとプラス f 11
vbe が開きましたね
とりあえず標準モジュールを挿入
拡大します
一番上にはとりあえずオプションエクスプリ嫉妬
サブの後に名前を追加えちょもうついていけないんですが
記録しか使ってなかったらこのあたりでギブアップかもな
私も最初記録でできた気になってたんだけど今思うとマジでウンコだったわ
そうなんすかまあ今でもうんこだけどな今回のようなシート操作をする時は私は
オブジェクト変数を使うようにしてるわ
オブジェク
と変数は奥が深いんだけど使ってるところを見たらなんとなくはイメージできるんじゃ
ないかな
ふむ今のところさっぱりですがとりあえずどうやって使うのか見ときますこれで ws
1
ws にがワークシートですよって定義できました
次にセットを使って定義した奴らにに変数を格納します
なんでそんなめんどくさいことをまあ今日ぐらいの内容なら使うまでもないんだけど
今後処理が長くなってきた時なんかに使わないとちょっとしんどいんだよな
はぁ言ってることがほとんどわかりません
今日はとりあえず見ててくれたらいいかな
ここからがやっとコピーの処理だな
前置きがこんなに長いなんて問題文もっかい見ます
シート1から2にコピーですね
[音楽]
sheet 1つまり ws 市レンジ h から c 5
[音楽]
goo
続いて copy メソッド
その後に貼り付け先の範囲
sheet 2に貼り付けたいからこんな感じかな
[音楽]
貼り付け先は a 1で ok です
[音楽]
ん
よし多分これでいいんじゃないかな
ちなみに私はもう頭がパンクしそうです
1問目からすごくいろいろ詰まってると感じたぜ
見やすいようにインデントもしとこうカタカナが多い
よしじゃあ実際に動かしてみよう
sheet 1のこいつらがシートににコピーされれば ok だな
[音楽]
f 8で1行ずつ実行しますね
[音楽]
ん
を
[音楽]
あってんのかなーこれ分からんのかい
あそういや列幅がコピーされてないんだな
問題は b 列ですね
コピーを実行しても列幅はコピーされないから
b 列に数式入ってたら ok だな
[音楽]
アーちゃんと数式は入ってますねすごいです
ん
ま問題文に列幅はしなくて良いって書いてたから
まぁこれであってるでしょうよかったです
解説見てみましょう
[音楽]
書き方は全然違いますね
これってどういうことなんでしょうう霊夢のと何が違うんでしょう
なるほど私のはシートを変数にしたんだけどこの問題ぐらいならそれをするまでもない
って考えかな
うんそうなのか答えの方が簡単そうに見えるな
なんかれいむのはやたら難しく書いてて優しくないな
うそんなー解説すごい丁寧だな
コピー先は戦闘せるだけで良いって書いてくれてるな
そしてこれ解説も3パターン書いてくれてるな
答えのコードも試してみます霊夢のといいなんでそんなに書き方がいっぱいあるんだ
vba の書き方ってじき歯人によって本当にバラバラなんだよ
いわゆる自動化のプログラムだからスタートとゴールがあるイメージかな
東京をスタートして大阪がゴールとした時
新幹線でいく人もいれば飛行機で行く人もいるそんな感じかなーなるほど
コールは同じ
でも好みによって家庭が違うんですねああ何が正解ってのはその時々によって様々なん
だけど
一つだけ意識した方がいいのはシンプルさだな
シンプルラッキの例で言うと理想は新幹線とか飛行機なんだけどたまにいるんだよバス
に乗って乗り換えてと方挟んでまっ
電車に乗るような奴がなるほど過程がぐちゃぐちゃなんですね
シンプルに書かないと初めてコードを見た時に他の人がわかりにくいんだよなるほど
です
さて答えのコードも一度試してみますね
サイトの一番下にあったやつをコピーさせてもらったは f 8で1
8ずつ実行していきます
一番下の行で止めてみるわ
[音楽]
ココスな
これを忘れるとコピーの点検が残りますって書いてるけどそれを確認します
シート位置を見てみるわ
[音楽]
こんな感じだなあと1行進めると消えます
消えましたねさて今日はこれぐらいにしようと思うけど
マクロの記録しか行ったことがない人にとっては既に結構難しかったんじゃないかな
はいほとんどわかりませんでしたそもそも記録以外の使い方すら分かって
ません全くの初めての人は使い方とかは動画を見るのをお勧めします
本とかサイトとかで勉強して妥協した経験があるので苦い過去ですねなんとなく使い方
もわかるように
今何をしたとかも入っていこうと思うから興味がある人はこれからもよろしくお願いし
ます
ん
それでは今日はご視聴いただきありがとうございましたチャンネル登録もよろしくね
[音楽]
goo
5.0 / 5 (0 votes)