Placeholder Image

字幕表 動画を再生する

AI 自動生成字幕
  • Developing applications in Excel VBA is often full of challenges and frustrations, but it doesn't have to be that way.

    Excel VBAでアプリケーションを開発することは、しばしば困難やフラストレーションに満ちていますが、そうである必要はありません。

  • Hi, this is Randy with Excel for Freelancers, and in today's VBA basic training, we're going to go over VBA best practices so you can optimize and streamline your coding in order to create best applications you can in as little time with as little effort as possible and without those headaches.

    こんにちは、フリーランサーのためのExcelのランディです。今日のVBA基礎トレーニングでは、VBAのベストプラクティスについて説明します。

  • It's going to be a great training, so let's get started.

    素晴らしいトレーニングになるから、始めよう。

  • Just a note before, I do create these VBA basic trainings each and every Saturday, along with Tuesday complete application development, so make sure you do get subscribed and also turn on the notification icon.

    毎週土曜日、火曜日のアプリケーション開発とともに、VBAの基礎トレーニングを行っています。

  • That'll ensure that you do get these trainings each and every week.

    そうすることで、毎週確実にこれらのトレーニングを受けることができる。

  • I create additional training on our Patreon platform.

    私はパトロン・プラットフォームで追加のトレーニングを作成しています。

  • Make sure you join us on Patreon, and I also have 300 of my best Excel templates that you can download with a link down below, so that'll also help you create applications.

    Patreonに参加してください。また、私の最高のエクセル・テンプレート300を下のリンクからダウンロードできますので、アプリケーション作成にも役立ちます。

  • All right, so today I want to go over VBA best practices.

    さて、今日はVBAのベスト・プラクティスについて説明しよう。

  • We're going to go over what's the best way to write code, how to comment in, what are the correct names to use, how to develop programming modularly so you can easily view, edit, and update your code, and also what techniques on how to optimize your code.

    コードの書き方、コメントの付け方、正しい名前の付け方、コードの閲覧、編集、更新が簡単にできるモジュール化されたプログラミングの開発方法、そしてコードを最適化するテクニックについて説明します。

  • So let's get into it right away.

    では、さっそく本題に入ろう。

  • First thing we want to do is make sure that we get inside the actual VBA editor, and to do that, we're going to go into the developer and the visual basic here, and then what we're going to do, if we don't have the developer, of course, you can just simply right-click here, and then we're going to customize the ribbon, and then just make sure developer selected.

    まず最初にしたいことは、実際のVBAエディタに入ることを確認することです。そのために、開発者とビジュアル・ベーシックに入ります。

  • You can also use a shortcut key, Alt F11.

    Alt F11というショートカットキーを使うこともできる。

  • Once you're in the VBA, you will see something like this, and this is the VBA editor, and inside this VBA editor, we have our sheets.

    VBAに入ると、このように表示されます。これがVBAエディタで、このVBAエディタの中にシートがあります。

  • We only have one sheet right now, and we don't have any modules.

    今は1枚しかないし、モジュールもない。

  • So when we're writing our code, most of the time we're going to be writing our code inside a module.

    だからコードを書くときは、たいていの場合、モジュールの中にコードを書くことになる。

  • So the first thing we want to do is to make sure that we do add a module, and so we're going to right-click anywhere, and we're going to insert module.

    まず最初に、モジュールを追加することを確認します。任意の場所で右クリックして、モジュールを挿入します。

  • You can also, from here, insert the module, and the first thing you want to do, as far as best practices are concerned, is naming that module.

    また、ここからモジュールを挿入することもできます。ベストプラクティスに関する限り、最初に行いたいことは、そのモジュールに名前をつけることです。

  • When I first started developing, I didn't know how to name these modules.

    開発を始めた当初は、これらのモジュールにどのような名前をつければいいのかわからなかった。

  • I would have modules one, two, three, so if we insert another one here, and so now we have module two, and I didn't know what was inside each.

    モジュール1、2、3があって、ここにもう1つ挿入すると、モジュール2になる。

  • I would have to click on each just to know, so the first thing you want to do, especially if you're going to be developing a larger application with a lot of modules, is to name your module, and to do that, you can go into the properties here, or click F4, and it's going to launch this properties.

    特に、たくさんのモジュールを使って大規模なアプリケーションを開発しようとしている場合、最初にやっておきたいことは、モジュールに名前をつけることです。

  • Now this window may be snapped here, it may be down here, it may be somewhere, depending upon your screen, but what you want to do is you want to give it a name.

    さて、このウィンドウは、ここにスナップされているかもしれないし、下にあるかもしれないし、画面によってはどこかにあるかもしれない。

  • Whatever the application you're developing is, let's say a customer application, we might want to do customer macros, right?

    あなたが開発しているアプリケーションが何であれ、例えばカスタマー・アプリケーションであれば、カスタマー・マクロを使いたいだろう?

  • So we have different macros, maybe we have a scheduling macro, and then so the first thing you want to do is name your modules, and that's going to make things a lot easier, so let's just do something like scheduling macros.

    まず最初に、モジュールに名前を付けましょう。そうすることで、物事がとても簡単になります。

  • Now keep in mind that when we do naming, we can't have any spaces, so if we try to add a module name with space, it won't allow us, so we want to make sure we're going to use underscores for spaces, so something like this, and you can abbreviate as long as it's clear to you when you go in exactly what the names are and what the consistencies.

    モジュール名をスペースで追加しようとすると許可されないので、スペースにはアンダースコアを使うことを確認したい。

  • Now while we're on naming, let's say we're in the customer macros, we're inside this module here, we want to also name our subroutines clear and easily, we want to use consistency throughout.

    サブルーチンの名前もわかりやすくつけたいし、全体に一貫性を持たせたい。

  • If you're developing a large application, those names are going to come in handy.

    大規模なアプリケーションを開発しているなら、これらの名前は重宝するだろう。

  • When we need to then assign those names to different buttons and associates, we want to be able to quickly and easily remember them.

    その名前をさまざまなボタンやアソシエイトに割り当てる必要があるとき、素早く簡単に覚えられるようにしたい。

  • Also when you're naming, we want to make sure that we use a combination of capital letters and smaller letters, so let's say I'll do customer, something like add new, and then maybe we'll do customer, and then we'll do save or update.

    名前をつけるときは、大文字と小文字を組み合わせて使いたい。例えば、customer(顧客)としよう。

  • Now one of the things that I like, let's do the sub first, now when I want to add this new customer somewhere else, and if I'm in another module here, and I write sub schedule, and then add new, so maybe I want to add that new customer, and a good way if I want to remember it, I don't want to necessarily look over, using the combination of lowercase and uppercase is going to be really helpful, because it helps us let us know when we have the right one.

    もし別のモジュールで、サブスケジュールと書いて、新規追加と書いて、新規顧客を追加したい場合、小文字と大文字の組み合わせを使うと、正しい顧客を追加したときに知らせてくれるので、とても便利です。

  • So if I type in add new, you see how it automatically goes to the capital letters, the proper name here.

    新規追加と入力すると、自動的に大文字の固有名詞になるのがわかるだろう。

  • However, if I get anything wrong inside the name, something like this, and I go over, look how it doesn't change, that's going to tell me right there, I've got something wrong with the name, so it kind of helps us, we don't always have to look back, so that tells me right there, because it didn't go to capital letters, I know that I might have an issue with the macro, so that kind of avoids errors, and makes things really clear.

    しかし、もし名前の中に何か間違いがあった場合、このような場合、見てみると、名前が変わっていないことがわかります。

  • So when we actually create our macro names, we want to use a combination of upper and lowercase, and that way when we write them out, and we're on another module, we don't quite remember, we type in all lowercase, and we make sure that it goes to the proper.

    実際にマクロ名を作成するときは、大文字と小文字を組み合わせて使いたい。そうすれば、マクロ名を書き出すときに、別のモジュールにいるときに、よく覚えていなくて、全部小文字でタイプしてしまい、それが適切な場所に行くことを確認できる。

  • Now along the lines of naming, we've got naming the modules, we've got naming the macros, we also want to name our variables.

    モジュール名、マクロ名、そして変数名。

  • I see a lot when people program something like this, let's say we're going to do dimension

    このようなプログラムを組むときによく目にするのが、例えば、次のような次元のことをやるとする。

  • I as long, X as long, and then we'll do dimension C as string.

    Iをロング、Xをロング、そしてCをストリングとする。

  • For me, that doesn't really help me, I don't remember, maybe it's my memory, but when I get back into this application, I'm not going to remember what I is, or X is.

    僕の記憶力のせいかもしれないけど、このアプリケーションに戻ったときに、Iが何なのか、Xが何なのかを思い出せないんだ。

  • And then we'll do something like for I equals 1 to 10, next I.

    そして、Iが1から10に等しい場合、次のIのようにする。

  • So here we see a loop, but I don't understand what I is, what is it?

    ループが見えるが、それが何なのか理解できない。

  • Is it a row?

    列ですか?

  • Is it a number?

    数字ですか?

  • Is it a customer?

    お客さんですか?

  • I don't understand.

    理解できないよ。

  • So we want to make sure that when we're naming our variables, it's very, very clear to us and everybody else.

    だから、変数に名前をつけるときは、私たちにとっても、他の誰にとっても非常に明確なものにしたい。

  • Even if you're not teaching like I am, you want to make sure that when you come back to the application, we understand exactly the purpose of every variable.

    私のように教えていなくても、アプリケーションに戻ってきたときに、すべての変数の目的を正確に理解していることを確認したい。

  • And that's why naming variables is so critical.

    だからこそ、変数の命名は非常に重要なのだ。

  • I would do something like this, customer row, again, using the combination of capital and lowercase letters is going to really help us.

    このように、大文字と小文字を組み合わせて使うことで、顧客の列を作ることができる。

  • Customer row as long, and we'll do customer column as long.

    顧客の行を長くし、顧客の列を長くする。

  • And then we can do something like customer name as string.

    そして、顧客名を文字列として扱うことができる。

  • So it's very clear the purpose of our variables simply by looking at the variables.

    だから、変数を見るだけで、その目的がはっきりする。

  • And I think that's a really critical component because when we're looking at our code or somebody else is looking at our code, or even if we're looking at our own code, a few years later, we want it to be very, very easy.

    なぜなら、私たちが自分のコードを見るとき、あるいは誰かが私たちのコードを見るとき、あるいは数年後に私たち自身のコードを見るときでも、とてもとても簡単であってほしいからだ。

  • So once again, we can also use the variable.

    だからもう一度、変数を使うこともできる。

  • If I say for customer row equals 1 to 10, next customer row, again, see, I'm typing in small letters.

    顧客の行が1から10に等しい場合、次の顧客の行は、また、私は小さな文字で入力している、参照してください。

  • If it then goes to the upper, I know that I've got the right variable.

    もし、それが上に行けば、私は正しい変数を持っていることを知る。

  • So it's a great way.

    だから、素晴らしい方法なんだ。

  • So if I get it wrong, it's going to tell me right away that it hasn't changed the uppercase here.

    だから、もし間違ったら、大文字を変えていないことをすぐに教えてくれる。

  • So I know that there's something wrong with the variable.

    だから、この変数に何か問題があることは分かっている。

  • So not only using correct names, but using a combination of upper and lowercase to help us quickly understand that means as we're typing the code, we know that we've got an incorrect variable and that happens all the time.

    つまり、正しい名前を使うだけでなく、大文字と小文字を組み合わせて使うことで、コードをタイプしている最中に間違った変数があることをすぐに理解できるようになる。

  • So we want to use not only naming the correct names and clear names, but using a combination of upper and lowercase or using some type of a proper name so that we can quickly see when we type incorrect variables.

    そこで、正しい名前や明確な名前をつけるだけでなく、大文字と小文字を組み合わせたり、何らかの固有名詞を使ったりして、間違った変数を入力したときにすぐにわかるようにしたい。

  • And that happens to me a lot, even during while I'm recording, I'll type an incorrect variable.

    レコーディング中にも、間違った変数をタイプしてしまうことがよくあるんだ。

  • As soon as I moved to the lower line, I see that didn't move to uppercase.

    下の行に移った途端、大文字に移らなかったんだね。

  • So I know right away something is wrong with my variable.

    だから、私の変数がおかしいのはすぐにわかる。

  • So that's a great way to understand clearly how to properly name variables.

    つまり、変数名の適切な付け方を明確に理解するための素晴らしい方法なのだ。

  • We want to make sure that we're actually naming that properly.

    私たちは、そのネーミングが実際に適切かどうかを確認したい。

  • Now, whatever way you use, it's more of a personal effort.

    今は、どのような方法を使うにせよ、個人的な努力に近い。

  • I've seen people use things like a lowercase long as variable.

    小文字のlongのようなものを変数として使っている人を見たことがある。

  • So however you want to remember your variables is fine, but as long as it's very clear to you, and that when you return back to your code, you quickly, very quickly understand the purpose of those variables and how they fit within your macro and how those macros fit within your application.

    変数をどのように覚えても構わないが、それが非常に明確で、コードに戻ったときに、その変数の目的、マクロの中での変数の位置づけ、アプリケーションの中でのマクロの位置づけがすぐに理解できるものであればよい。

  • So notice here, I've got customer row and customer column as long variables and customer name.

    ここで、customer行とcustomer列を長い変数と顧客名にしていることに注目してほしい。

  • So everything is within a customer add new or customer saver update macro, which is within a module called customer macros.

    つまり、顧客マクロと呼ばれるモジュールの中にある顧客新規追加マクロまたは顧客セーバー更新マクロの中にすべてがある。

  • So everything is modular and everything fits together properly.

    だからすべてがモジュール化されており、すべてが適切に組み合わされている。

  • It makes reading your code and understanding your code a lot easier.

    コードを読むのも、コードを理解するのも、とても簡単になる。

  • So naming is a critical component.

    だからネーミングは重要な要素だ。

  • We also use named ranges inside our code, and that can be helpful too.

    また、コード内で名前付き範囲を使うこともあるが、これも役に立つ。

  • Another thing we want to make sure of, and let's just say, for example, we have application where we've got, let's say a customer list here and we go into the formulas name manager.

    もうひとつ確認しておきたいことがある。例えば、顧客リストがあるアプリケーションで、数式名マネージャに入るとしよう。

  • And let's say I have a, let's go ahead and cancel this.

    そして仮に、これをキャンセルするとしよう。

  • I'm just going to create a new sheet real quickly.

    さっそく新しいシートを作るよ。

  • And let's say we have a list of customer names here and I'll just put in customer names.

    ここに顧客名のリストがあるとする。

  • Fred will make his appearance and Lisa, and let's see Mary.

    フレッドとリサが登場し、メアリーが登場する。

  • So I've got a list of customer names.

    だから、顧客の名前のリストを持っている。

  • Now what we want to make sure of also is our named ranges that we possibly will use inside the code should also be named appropriately.

    ここで確認したいのは、コード内で使用する名前付き範囲にも適切な名前を付けるということだ。

  • So for example, if I create a brand new one, so let's say customer, and then we'll do names.

    例えば、私が全く新しいものを作ったとして、顧客とします。

  • Once again, we may have different variables under customer, let's say customer names or customer balances or customer address, different name range.

    顧客名、顧客残高、顧客住所など、顧客の下にさまざまな変数があります。

  • So we want to use that same modular type of programming, and then we can write a named range.

    そこで、同じモジュール型のプログラミングを使い、名前付きレンジを書くことができるようにしたい。

  • So it's something like offset.

    つまり、オフセットのようなものだ。

  • And then we'll start at the header row.

    そして、ヘッダー行から始める。

  • We'll move one row down.

    一列下げよう。

  • So that's just in case we don't have any data, no columns over, we're going to use count a.

    つまり、データがない、列がない場合に備えて、count aを使うのだ。

  • And then what we're going to do is again, using the header row and a large row, we're using the header row in case there's no data.

    そして、ヘッダー行とラージ行を使い、データがない場合に備えてヘッダー行を使う。

  • We want to make sure.

    確認したい。

  • I need to subtract one for the header row, a single column, and we're going to use the tab key out.

    ヘッダー行と1列のために1つ引く必要がある。

  • And we're going to use the shift tab key.

    そしてシフトタブキーを使う。

  • We're going to make sure that it's dancing outs around those.

    私たちは、その周囲でアウトが踊るようにするつもりだ。

  • So now I've got a name called customer names.

    だから今、私はカスタマーネームという名前を持っている。

  • If I edit that, I can copy it using control C. Now, if I want to refer to that inside the code for any reason, I can do something like this.

    これを編集すれば、コントロールCを使ってコピーすることができる。

  • We can dimension customer range, let's do name range as a range.

    顧客範囲、名前範囲を範囲としてディメンションすることができる。

  • And then we can also set the customer name range equal to, and then we can use brackets for that named range and we can paste it in there, which is customer names.

    そして、顧客名の範囲を等しく設定し、その名前付き範囲を括弧で囲み、そこに顧客名を貼り付けることもできる。

  • So here we've got a named range.

    だから、ここでは名前付きのレンジを用意した。

  • Now what we do want to make sure of is that we don't match the name.

    ここで確認したいのは、名前を一致させないことだ。

  • In other words, our named range called customer names should not match exactly any variable referring to that.

    言い換えれば、顧客名という名前付き範囲は、それを参照するどの変数とも正確に一致してはならない。

  • We want to keep them very, very different and very separate.

    私たちは、両者をまったく異なるもの、まったく別のものにしたいと考えている。

  • So here, what we've done is we've again created a dynamic named range and we're referring it to within the code.

    つまり、ここでもダイナミックな名前付き範囲を作成し、コード内でそれを参照している。

  • So that can be extremely helpful when we have clear names for one, our variables, clear names for our macros, clear names for our named ranges and clear names for our modules.

    変数の名前、マクロの名前、名前付き範囲の名前、モジュールの名前が明確であれば、非常に便利だ。

  • So naming is a critical component of any VBA application.

    つまり、ネーミングはVBAアプリケーションにとって重要な要素なのだ。

  • Next up, when we're writing code, we want to actually write it in a way that's readable for us and other people that might be looking at our code.

    次に、コードを書くときには、自分にとっても、コードを見る他の人にとっても読みやすいように書きたい。

  • And we do that with proper spacing and indentation.

    そして、適切な間隔とインデントでそれを行う。

  • So the best way to do that is when we're using for next loops or we're using any kind of a loop or if then statements, we want to make sure to indent properly.

    そのための最善の方法は、for nextループやif then文を使うときに、適切にインデントすることだ。

  • Notice that this is going to make it clear that anything we write in here is inside that for next loop.

    これで、ここに書くものはすべてfor nextループの中にあることが明確になる。

  • So no matter what, let's just do customer row.

    だから、どんなことがあっても、とにかくカスタマー・ロウをやろう。

  • We can do something like sheet one dot range a and customer row dot value equals customer row.

    シート1のドット範囲aと顧客行のドット値イコール顧客行のようにできる。

  • So in this code, we see that everything we write was within that.

    つまり、このコードでは、私たちが書いたものはすべてその中にあったということだ。

  • Now, if we do an if then statement, if customer row is less than five, then so notice now, once we're in the if then statement, we also want to indent everything within there.

    ここで、if thenステートメントを実行すると、もし顧客の行が5行以下であれば、if thenステートメントの中で、すべての行をインデントすることになる。

  • So that is clearly stated.

    そう明言している。

  • Let me go ahead and show you a little bit larger project that I did so we can see how that would be on a larger project.

    私が行ったもう少し大きなプロジェクトをお見せしましょう。

  • So I'm going to open up one of my recent projects.

    では、最近のプロジェクトのひとつを公開しよう。

  • Let's just do this one, this ERP software here.

    このERPソフトを使おう。

  • So this is a pretty good one.

    だから、これはかなりいいものだ。

  • And we can see some of the way that we do the code inside these larger applications.

    そして、これらの大規模なアプリケーションの内部でコードを実行する方法のいくつかを見ることができる。

  • Once this code opens up, now we see here inside this large code, we have lots of different sheets and those sheets also must be named too.

    このコードを開くと、この大きなコードの中にたくさんのシートがあり、それらのシートにも名前を付けなければならないことがわかる。

  • And inside these individual codes, let's go ahead and pull in one of those codes here.

    そして、これらの個々のコードの内部で、これらのコードのひとつを引っ張ってこよう。

  • We can take a look.

    見てみよう

  • So we've also got a list of modules and we notice that each individual module, customer macros, employee macros, logging out, everything is clearly labeled inside the customer macros.

    各モジュール、顧客マクロ、従業員マクロ、ログアウト、すべてが顧客マクロの中で明確にラベル付けされていることがわかります。

  • We can see that inside a macro, we also have proper indentation.

    マクロの中では、適切なインデントが行われていることがわかる。

  • Here we have inside the width, we've moved it over.

    ここでは、幅の内側に移動している。

  • We have inside our customer width, we have a width statement.

    顧客の幅の中にwidthステートメントがある。

  • Inside there, we have a for next.

    その中に次のものがある。

  • So everything has been properly indentated.

    だから、すべてが適切にインデントされている。

  • We also have, again, clear macro names.

    また、明確なマクロ名もある。

  • And another thing that I wanted to share with you is the ability to have sheet code names.

    そしてもうひとつ、シートのコードネームを設定することができる。

  • We'll take a look inside here and we see not only do we have the sheet names such as admin chart data customer, we also have a sheet code name.

    この中を見てみよう。admin chart data customerのようなシート名だけでなく、シート・コード名もある。

  • And that's a very, very helpful to when we're referring.

    そしてそれは、私たちが言及するときにとてもとても役に立つ。

  • Let's go back inside our original sample, which is right here.

    元のサンプルに戻りましょう。

  • Now maybe we want sheet one as a customer sheet.

    では、1枚目をカスタマーシートとして使うことにしよう。

  • We also want to make sure that inside that application, we clearly label the sheet name so we can do it from here.

    また、そのアプリケーションの中で、シート名を明確にラベル付けし、ここから実行できるようにしたい。

  • Customer if it's customers or whatever it is, customers, or maybe we'll just do customer form, make it a little clearer.

    顧客であれ何であれ、カスタマー、あるいはカスタマー・フォームとでもして、もう少しわかりやすくしましょう。

  • So the more clear now sheet names, we can use characters such as spacing and so on and so forth.

    シート名がより明確になったことで、スペーシングなどの文字が使えるようになった。

  • So that will help us identify the specific sheet.

    それで特定のシートを特定することができる。

  • But when we're inside the coding, we really want to also change the sheet code name.

    しかし、コーディングの内部では、シートコード名も変更したい。

  • So let's go ahead and take a look.

    では、さっそく見てみよう。

  • We're going to go into the properties here.

    これからプロパティに入る。

  • And we have both the sheet code name, which is currently sheet one.

    シートのコードネームは、現在シート1です。

  • And we have the sheet name, which is called customer form.

    そして、顧客フォームというシート名がある。

  • So the sheet code name, again, we can use a short but descriptive name for that.

    だから、シート・コード名には、短いが説明的な名前を使うことができる。

  • And again, once again, no spaces or special characters allowed.

    そして、もう一度言うが、スペースや特殊文字は使用できない。

  • Now why do we want to change this?

    では、なぜこれを変えたいのか?

  • We want to change it for several reasons.

    変更したい理由はいくつかある。

  • One, we can clearly see inside the code what our sheet does.

    ひとつは、私たちのシートが何をしているのか、コードの中ではっきりと見ることができること。

  • So we can refer to it inside the code.

    だから、コード内部でそれを参照することができる。

  • So for example, instead of sheet one, let's clear this up.

    例えば、シート1の代わりに、これをクリアにしよう。

  • We may want to use something like customer.

    私たちはcustomerのようなものを使いたいのかもしれない。

  • So I can then use customer form dot.

    だから、顧客フォームのドットを使うことができる。

  • And when I use the IntelliSense dot here, it's going to come up and that tells me I've got the right sheet name.

    インテリセンスのドットを使うと、正しいシート名が表示されます。

  • If I use the wrong one and I hit dot, it doesn't come up.

    間違ったものを使ってドットを押しても出てこない。

  • So being able to use those sheet code names within our code is not only helpful because

    そのため、コード内でこれらのシートコード名を使用できることは、単に便利なだけではありません。

  • I know exactly what the sheet doesn't say sheet one.

    シートにはシート1と書かれていないことがよくわかる。

  • If it says sheet one, I don't know what sheet one does.

    シート1と書いてあっても、シート1が何をするのかわからない。

  • If it says customer form, I know that exactly the purpose of that.

    顧客フォームと書いてあれば、その目的がはっきりわかる。

  • So naming those sheet code names can be helpful as well.

    そのため、シートコードに名前をつけることも有効だ。

  • And we see inside our larger project that we also have named both the sheet names and the code names in each instance.

    また、大きなプロジェクトでは、シート名とコード名の両方に名前をつけていることがわかります。

  • So we see here each one, customer database, customers, chart data, admin, everything has both the sheet name and a sheet code name.

    顧客データベース、顧客、チャート・データ、管理者、すべてにシート名とシート・コード名がある。

  • And again, once again, we see that everything is properly indented and properly spaced.

    そしてもう一度、すべてが適切にインデントされ、適切にスペースが空けられていることがわかる。

  • So that is also very helpful.

    だから、それもとても役に立つ。

  • One of the also most important aspects of coding is being able to comment out and commenting is simply adding an apostrophe and letting us know what a specific range does.

    コーディングの最も重要な側面のひとつは、コメントアウトできることであり、コメントアウトとは、単にアポストロフィーを追加して、特定の範囲が何をするのかを知らせることである。

  • So for example, let's say this one, we're going to say you will use an apostrophe set customer named range.

    例えば、このように、範囲という名前の顧客にはアポストロフィーを使用するとします。

  • So comments are both useful for you or anybody else that can view the code to remind us exactly what the code does.

    だからコメントは、あなたにとっても、コードを見ることができる他の誰にとっても、コードが何をするのかを正確に思い出させるのに役立つ。

  • So we could do something like for customer start customer loop.

    だから、for customer start customer loopのようなことができる。

  • So this is extremely helpful so that we understand exactly what's going on with the code at the time.

    だからこれは、その時のコードで何が起こっているのかを正確に理解するのに非常に役立つ。

  • Commenting is one of the most important and most common ways to clearly identify exactly what the code is doing at the time.

    コメントは、コードがその時点で何をしているかを正確に特定するための最も重要かつ一般的な方法のひとつである。

  • And like I said, even if nobody is going to see your code, it is helpful for you and yourself if you come back to your code over a period of time to understand exactly what the code is doing and will help you find errors and understand about the application development.

    そして、たとえ誰もあなたのコードを見ないとしても、一定期間コードを読み返すことで、コードが何をしているのかを正確に理解することができ、エラーを見つけたり、アプリケーション開発について理解したりするのに役立ちます。

  • So it's very, very important to do that.

    だから、そうすることがとてもとても重要なんだ。

  • Now we can use commenting at the end of a specific code or we can use commenting in its own line and we can use as many apostrophes as we want.

    これで、特定のコードの末尾にコメントを付けることもできるし、独立した行にコメントを付けることもできる。

  • We can use capital letters, start loop.

    大文字を使うこともできるし、ループを始めることもできる。

  • And also we can see that the colors here of that are in green.

    そして、その色が緑色であることもわかる。

  • However, of course you can change the colors.

    ただし、もちろん色を変えることはできる。

  • You can change anything you want.

    何でも変えることができる。

  • We see the dimensions are in a dark blue.

    寸法は紺色であることがわかる。

  • We can do that using our tools here.

    私たちのツールを使えばそれができる。

  • And then we have some options here.

    そして、ここにいくつかの選択肢がある。

  • If we go into the options, we go into the editor format.

    オプションに入ると、エディターのフォーマットに入る。

  • And from here you can change the colors of anything else.

    そして、ここから他のあらゆるものの色を変えることができる。

  • So we see the comment text is green.

    だから、コメント文は緑色なのだ。

  • If I were to change that to a different color and then click okay, we see that it's in pink.

    別の色に変えてから「OK」をクリックすると、ピンク色になっていることがわかる。

  • So we can automatically change the color however we want using the options.

    そのため、オプションを使って自動的に好きなように色を変えることができる。

  • So that's kind of a handy way to automatically set things up exactly the way that you might want to see it.

    これは、あなたが見たいように物事を自動的に設定する便利な方法です。

  • And it's going to help you identify and understand the code.

    そして、コードを特定し、理解するのに役立つだろう。

  • Also making for clear and speedy development inside your code.

    また、コード内を明瞭かつスピーディーに開発することができる。

  • So it can be quite helpful.

    だから、かなり役に立つ。

  • Okay.

    オーケー。

  • We'll return that back to the way it was.

    それを元に戻す。

  • So commenting and changing the look and feel of it.

    だからコメントしたり、見た目を変えたりしている。

  • Of course, if you want a larger size, you can also do that too.

    もちろん、もっと大きなサイズが欲しいなら、それも可能だ。

  • So we can also change the font size.

    そこで、フォントサイズを変更することもできる。

  • If it's too small for you or you want a different font, once again, we can go into the editor format here.

    小さすぎたり、別のフォントが必要な場合は、もう一度、エディター・フォーマットに入力することができます。

  • And if we have our normal, we can change the size.

    そして、もし私たちのノーマルがあれば、サイズを変えることができる。

  • We can change the font.

    フォントは変更できる。

  • So keep that in mind that we do have that ability for very clear code that you can understand and help review.

    だから、私たちには、あなたが理解でき、レビューに役立つ非常に明確なコードを書く能力があるということを覚えておいてほしい。

  • Another way to automate and speed up your code development and also increase accuracy is to use an automator, a code automator, or something like AutoHotKey that automatically allows you to type in code.

    コード開発を自動化してスピードアップし、正確さも増すもうひとつの方法は、オートメーター、コード・オートメーター、あるいはAutoHotKeyのような、コードを自動的に入力できるものを使うことだ。

  • For example, if you've seen any of my videos and you've seen me type code like this really, really fast, something like that, or something you see me do with sort here like this, notice how quickly it types out.

    例えば、私のビデオを見たことがある人は、私がこのようなコードを本当に、本当に速くタイプするのを見たことがあると思う。

  • What I use is something called AutoHotKey to automate my typing.

    私が使っているのは、タイピングを自動化するAutoHotKeyというものだ。

  • And I've got a few videos on that, including the VBA Code Automator.

    VBAコード・オートメーターを含め、それに関するビデオもいくつかある。

  • I've also got a few applications that I sell that incorporate this.

    これを組み込んだアプリケーションもいくつか販売している。

  • And so what this uses is a script.

    それで、これはスクリプトを使っている。

  • For example, let's take a look at this script.

    例えば、このスクリプトを見てみよう。

  • This is actually called Code Automator Script.

    これは実際にはCode Automator Scriptと呼ばれる。

  • It runs with AutoHotKey.

    AutoHotKeyで動作します。

  • Like I said, I got dedicated videos on this and we can create and automate anything.

    さっきも言ったように、専用のビデオもあるし、何でも作って自動化できる。

  • So for example, if I do double colons and I do TTT, and then we can do something like double colons one more time.

    例えば、ダブルコロンとTTTをやって、もう一回ダブルコロンみたいなことをやればいいわけだ。

  • Maybe we want to do if X is greater than Y, then X equals S or something like that.

    もしXがYより大きければ、XはSに等しいとか、そんな風にしたいのかもしれない。

  • Whatever you want.

    お好きなように。

  • I was just talking about variables.

    変数の話をしただけだ。

  • All right.

    分かった。

  • So let's do customer row is greater than 10, then customer row equals 10.

    つまり、顧客行が10より大きい場合は、顧客行は10に等しくなる。

  • Okay.

    オーケー。

  • So whatever you want to do, then let's type this in correctly.

    だから、何でもいいから、これを正しく入力しよう。

  • Make sure that if you want to use enter or new line, you can do something like this.

    Enterや改行を使いたい場合は、次のようにすればいい。

  • Enter like that.

    そのように入力する。

  • Make sure you close the brackets up.

    必ずブラケットを閉じてください。

  • So that is also important as you can see it here.

    だから、ここにもあるように、それも重要なことなんだ。

  • Also what we want to do then is then save our script.

    そして、スクリプトを保存する。

  • So we'll go ahead and save it.

    だから、先にそれを保存しておこう。

  • And I also want to reload the script.

    そして、スクリプトをリロードしたい。

  • That's an option on the AutoHotKey.

    それはオートホットキーのオプションだ。

  • So once it is reloaded, you can then use that inside your code.

    そのため、一度リロードすれば、コード内でそれを使うことができる。

  • So for example, if I do inside my code TTT, let's do not capitals, TTT, you see that it automatically types out.

    例えば、私のコードの中でTTTと大文字でなくTTTと書くと、自動的に入力されるのがわかるだろう。

  • So that's a great way to save time when you're coding, especially when you're doing common coding things.

    コーディング、特に一般的なコーディングをするときに、時間を節約する素晴らしい方法だ。

  • Now I've got a video on that.

    そのビデオを持ってきたよ。

  • I've also got an application called the Ultimate Developers VBAs.

    Ultimate Developers VBAsというアプリケーションも持っている。

  • We can see it here.

    ここで見ることができる。

  • Let's take a quick look at that.

    ちょっと見てみよう。

  • And here it is right here.

    そしてここにある。

  • In this application that I sell includes over 500 macros.

    私が販売しているこのアプリケーションには、500以上のマクロが含まれています。

  • We can assign a shortcut.

    ショートカットを割り当てることができる。

  • So if maybe we want to print the active worksheet, we can do something like PA print active worksheet, create a shortcut on that.

    アクティブなワークシートを印刷したい場合は、PA print active worksheetのようにショートカットを作成します。

  • Once we save this code, it is automatically going to be available very quickly inside our, so we just do PACT and it's automatically going to type out.

    一度このコードを保存すれば、あとはPACTを実行するだけで、自動的に入力されます。

  • That is called the Ultimate Developers VBA library.

    それはUltimate Developers VBAライブラリと呼ばれるものだ。

  • I've got over 500 macros.

    私は500以上のマクロを持っている。

  • I'll include the link down below in case you want to have a look at that.

    下にリンクを貼っておくので、よかったら見てほしい。

  • All right.

    分かった。

  • So those are some great ways to automate coding and that's going to help you save time also to increase accuracy and also optimize the code using the auto hotkey.

    これらはコーディングを自動化する素晴らしい方法であり、時間を節約し、正確性を高め、自動ホットキーを使ってコードを最適化するのに役立つ。

  • So that's something that I use all the time.

    だから、いつも使っているんだ。

  • Let's take a look back inside our code and go over some more samples.

    コードの中に戻って、もう少しサンプルを見てみよう。

  • We can also use error checking to help us out.

    また、エラーチェックを利用することもできる。

  • Now that's really important if we want to understand error checking along with debug.

    デバッグとともにエラーチェックを理解したいのであれば、これは本当に重要なことだ。

  • If we want to understand what's going on inside our code, we can do that too.

    コードの内部で何が起こっているかを理解したければ、それも可能だ。

  • Let's say we're going to loop through the customers one through 10 and we want to see what's going on inside.

    例えば、1番目から10番目までの顧客をループさせ、内部で何が起こっているかを見たいとしよう。

  • We can use the immediate window.

    即時ウィンドウを使うことができる。

  • I've got a training dedicated on that so we can do something like debug dot print and then customer row.

    ドットプリントのデバッグやカスタマーローのようなことができるように、専用のトレーニングを用意しているんだ。

  • Once we put that in there, we're going to look in view and then we're going to look in the immediate window.

    それを入れたら、ビューを見て、すぐ近くのウィンドウを見てみよう。

  • We can also use control G and what that's going to do is going to launch the immediate window and mine's a bit down here.

    コントロールGを使ってもいいし、そうすると即時ウィンドウが立ち上がる。

  • There it is.

    あれだ。

  • Let's just bring it up.

    それを持ち出そう。

  • I'll clear whatever's inside here.

    ここにあるものは何でも片付けるよ。

  • And so what we want to do now is we can now run the macro.

    そして今やりたいことは、マクロを実行することだ。

  • So we don't need this.

    だから、これは必要ない。

  • We can comment this out if we want to comment it out.

    コメントアウトしたければコメントアウトすればいい。

  • And so here what we're going to do is we're going to run our loop.

    これからループを実行する。

  • If it's less than five, then we want to show that customer row within the immediate window.

    もし5未満なら、その顧客行を即時ウィンドウ内に表示したい。

  • We can run it here, run it completely.

    ここで完全に走らせることができる。

  • And you see now that inside that has appeared.

    そして今、その内側が現れているのがわかるだろう。

  • So the immediate window is a great way to understand what's going on with our code and it's going to really help optimize it.

    つまり、インスタント・ウィンドウはコードで何が起こっているかを理解するための素晴らしい方法であり、コードの最適化に大いに役立つのだ。

  • So we know exactly step-by-step if we want to use F8, F8 is the step through.

    つまり、F8を使いたい場合、F8がステップ・バイ・ステップであることがわかる。

  • It is also this one right here.

    ここにもある。

  • We can see this step into and we can automatically see how it moves through the loop.

    私たちはこのステップを見ることができ、それがループの中をどのように動くかを自動的に見ることができる。

  • So understanding this is really going to help us optimize and it's a great practice to use the debug so that we can understand what's going on with our code.

    このことを理解することは、最適化に大いに役立つし、コードで何が起こっているのかを理解するためにデバッグを使うのは素晴らしい習慣だ。

  • We can also use error checking inside that to see if there's an issue and error checking will really help us understand without creating bugs.

    また、その内部でエラーチェックを使って問題があるかどうかを確認することもできるし、エラーチェックはバグを作らずに理解するのにとても役立つ。

  • So how would we use some error checking in that to help us understand?

    では、それを理解するために、エラーチェックをどのように使えばいいのだろうか?

  • So let's say we're going to look for a customer name inside the customer range.

    そこで、顧客範囲の中から顧客名を探すとしよう。

  • We can remove this for now.

    今のところ、これを削除することができる。

  • And then what we can do is I want to go inside and we'll set a customer.

    それから、中に入って顧客を設定することができる。

  • So the customer name is equal to let's do Fred Fretters who he makes an appearance here.

    だから、お客さんの名前は、彼がここで登場するフレッド・フレッターズにしよう。

  • First we will want to set our variable set customer name, right?

    まず、顧客名を変数に設定します。

  • You will customer names.

    お客さんの名前が出てくる。

  • Customer name is Fred Fretters.

    お客さんの名前はフレッド・フレッターズ。

  • Now we're going to look for that inside that.

    今度はその内側を探すんだ。

  • So customer named range dot I want to use the find on what am I looking for?

    では、顧客名の範囲ドットを検索したいのですが、何を探せばいいのでしょうか?

  • I'm looking for the customer name.

    顧客名を探しています。

  • There's a few ways to do that.

    それにはいくつか方法がある。

  • I'm going to look in Excel values and Excel whole and then what we're going to use is dot row.

    エクセルの値とエクセル全体を見て、ドット行を使うことにする。

  • I want to return the row.

    行を返したい。

  • Let's go ahead and make sure there's no error first, but I'm just going to return Fred here and we're going to look for that.

    まずはエラーがないことを確認しよう。ただ、ここでフレッドを返して、それを探すことにしよう。

  • We'll clear this out and then what I want to do is debug print in the customer row.

    これを消去し、次に顧客行の印刷をデバッグする。

  • So we're going to set the customer row is equal to whatever row it's found on.

    つまり、顧客行が見つかった行と等しくなるように設定するのだ。

  • We will do debug dot print and then customer row.

    デバッグ・ドット・プリントを行い、次にカスタマー・ロウを行う。

  • So we're going to run this here and we see that it's returned four.

    ここで実行すると、4が返されることがわかる。

  • So we can see that the customer row has been returned on row four.

    つまり、顧客の行が4行目に返されたことがわかる。

  • But what if it is not found?

    でも、もし見つからなかったら?

  • If we put in something like Fred Fretters, it's not going to be found and it's going to return an error.

    フレッド・フレッターズのようなものを入れると、見つからずにエラーを返してしまう。

  • And I really don't want it to return an error when it's not found.

    それに、見つからないときにエラーを返してほしくないんだ。

  • So let's take a look at this.

    では、これを見てみよう。

  • So we see that it returns the air object variable or with block variable not set.

    つまり、airオブジェクト変数が返されるか、ブロック変数が設定されていないことがわかる。

  • So we can't really have that.

    だから、それはできないんだ。

  • So we see that it ends up on this line.

    だから、この線で終わることがわかる。

  • So how do we deal with that?

    では、どう対処すればいいのか?

  • Well, we can write something like on error, go to, and then just do something like not found.

    まあ、on errorとか、go toとか、あとはnot foundとか書けばいい。

  • And what that's going to do is going to skip our debug and we can exit the sub out if everything performs correctly, exit sub.

    これでデバッグがスキップされ、すべてが正しく実行されればサブを終了することができる。

  • However, if it does not, we can do something like not found, which is where it's going to skip to.

    しかし、そうでない場合は、not foundのような処理をすることができる。

  • And we can put something like message or we could do traditionally, this would be a message box.

    メッセージのようなものを入れることもできるし、伝統的なメッセージ・ボックスにすることもできる。

  • So we'll do message box, customer not found.

    そこで、「お客様が見つかりませんでした」というメッセージボックスを作成する。

  • Very good.

    とても良い。

  • So we can now reset that.

    これでリセットできる。

  • We're going to run the same code and we see it tells us the customer has not been found.

    同じコードを実行すると、顧客が見つからなかったと表示されます。

  • So we can use on error, go to, and our skip to, to let the user know without actually incurring a bug.

    だから、on error、go to、そしてskip toを使って、実際にバグを発生させることなくユーザーに知らせることができる。

  • So that can be very helpful.

    だから、それはとても役に立つ。

  • There's another way to do that without the named range.

    名前付きのレンジを使わない別の方法がある。

  • We can use something like this.

    このような使い方ができる。

  • We've already renamed our sheet.

    シートの名前はすでに変更した。

  • Let's take a look at our sheet.

    シートを見てみよう。

  • Our sheet is called customer list.

    私たちのシートは顧客リストと呼ばれています。

  • So we can use something like customer list dot range, customer names, and then we can refer to that.

    だから、顧客リストのドット・レンジ、顧客名のようなものを使って、それを参照することができる。

  • And that I also like to use a lot.

    そして、私もよく使っている。

  • So again, we see a customer not found as it's going to work.

    だから、またしても、うまくいくはずの顧客が見つかっていない。

  • However, let's go ahead and make sure it is found to make sure that it does work that way as well.

    しかし、そのように機能することを確認するために、先に進んで確認しよう。

  • So we can clear the name out.

    だから名前を消すことができる。

  • We can then run this macro and we see that has been found on row four.

    このマクロを実行すると、4行目で見つかったことがわかる。

  • Let's clear that out one more time, just so you can see that it has been found on row four.

    もう1度、4列目で見つかったことを確認できるように、クリアにしておこう。

  • Very good.

    とても良い。

  • We can use on air, go to, and then not found to skip issues that might come up and also let the user know exactly what type of an issue or such as a not found within a range.

    オンエア、ゴー・トゥ、そしてノー・ファウンドを使えば、出てくるかもしれない問題をスキップすることができるし、ユーザーに問題の種類や範囲内で見つからなかったことなどを正確に知らせることもできる。

  • Very good.

    とても良い。

  • So we have been over a lot.

    だから、私たちは何度も乗り越えてきた。

  • Let's take a quick look inside my existing code and some of the modules to see some more information about how we can use code.

    私の既存のコードといくつかのモジュールの中を見てみよう。

  • So here we see that I've used commenting both above and to the right of the line.

    そこで、ここでは線の上と右の両方にコメントを入れた。

  • So that can be helpful.

    だからそれは役に立つ。

  • We're also using indentation, which is going to help us.

    また、インデントも使っている。

  • We actually used naming both in the macro name in the module name and the sheet code name and the sheet to help us understand exactly what's going on in our coding.

    実際に、モジュール名とシートコード名とシートのマクロ名の両方に命名を使って、コーディングで何が起こっているかを正確に理解できるようにしました。

  • We can use named ranges both in side brackets, which can help us understand.

    このように、名前付き範囲を括弧で囲むことで、理解しやすくなる。

  • We also want to make sure that our named ranges such as shared folder is not the same name as our work variable.

    また、共有フォルダなどの名前付き範囲が、作業変数と同じ名前でないことを確認したい。

  • So we want to make sure that those are different.

    だから、その違いを確認したい。

  • We also use a combination of capital letters and lowercase letters in very descriptive variables so that we understand exactly the purpose of that variable.

    また、非常に説明的な変数には大文字と小文字を組み合わせて使い、その変数の目的を正確に理解できるようにしている。

  • We also use capitals inside our macro names in order to also understand and help us quickly know exactly what's going on inside the macro.

    また、マクロの内部で何が起こっているのかを理解しやすくするために、マクロ名の中にも大文字を使っている。

  • So all those namings really help the indentation really helps.

    だから、こうしたネーミングはすべて、インデントが本当に役に立っている。

  • And so if we combine all these things, we have very clear, very accurate, good list of best practices.

    そして、これらすべてを組み合わせれば、非常に明確で、正確で、優れたベストプラクティスのリストができる。

  • Now, I've included a cheat sheet here.

    さて、ここにカンニングペーパーを掲載した。

  • If you want that for all the VBA best practices to have, most of which we have been over.

    VBAのベスト・プラクティスをすべて網羅したいのであれば、そのほとんどはすでに説明したとおりだ。

  • All right.

    分かった。

  • Well, thank you very much.

    そうですか、ありがとうございました。

  • I do appreciate your continued support right here on YouTube or wherever you are.

    YouTubeでもどこでも、これからも応援をよろしくお願いします。

  • If you do want additional help, I've got some great links down below.

    さらに助けが必要な場合は、以下に素晴らしいリンクを紹介しよう。

  • Don't forget to join our Excel for Freelancers Facebook group.

    フリーランサーのためのExcel Facebookグループへの参加もお忘れなく。

  • We have over 65,000 members in that group.

    そのグループには65,000人以上の会員がいる。

  • And there's even more help and more videos, more content on Patreon.

    Patreonにはさらに多くのヘルプやビデオ、コンテンツがある。

  • So make sure to join us there.

    だから、ぜひそこに参加してほしい。

  • Thank you so much.

    本当にありがとう。

Developing applications in Excel VBA is often full of challenges and frustrations, but it doesn't have to be that way.

Excel VBAでアプリケーションを開発することは、しばしば困難やフラストレーションに満ちていますが、そうである必要はありません。

字幕と単語
AI 自動生成字幕

ワンタップで英和辞典検索 単語をクリックすると、意味が表示されます