基本 | Excel作業をVBAで効率化 https://vbabeginner.net いつものExcel作業はVBAを使えば数秒で終わるかもしれませんよ Sun, 10 Nov 2024 14:59:29 +0000 ja hourly 1 https://wordpress.org/?v=6.6.2 https://vbabeginner.net/wp-content/uploads/2019/02/favicon-150x150.png 基本 | Excel作業をVBAで効率化 https://vbabeginner.net 32 32 どのような場面でVBAを導入するのが効果的か https://vbabeginner.net/when-introduce-vba/ Sun, 09 Jul 2023 16:09:57 +0000 https://vbabeginner.net/?p=6840 VBAをなぜ使うのか

VBA(Visual Basic for Applications)はExcelの作業の自動化を行うことで作業時間の短縮にとても活躍してくれます。

VBA自体はプログラミング言語ですので、プログラミングをしなければならないというハードルはありますが、それ以前の問題として、どういう場面でVBAを使えばいいのかが分からないので、結果としてVBAを使うに至らないこともありえます。

プログラミングというのは「ある課題を解決するための手段」に過ぎません。それはVBAも同じです。なんらかの問題・課題が無ければ別にVBAを使う必要はありません。そして、その課題・問題に気付かなければVBAを使った方がいいかどうかの判断もできません。

そこで、実際にVBAを導入する場合にどういう場面でVBAを使えばよいのか? というその見つけ方気づき方や、効果的なVBAの使い方について紹介します。

VBAでの効率化を考えた方がいいのはどういうときか

VBAを使うと効果的な場面は以下の2つです。

  • 同じことを何度も行っている場合
  • 作業が面倒な場合

このどちらかを感じたら、VBAの出番です。

「同じことを何度も行っている場合」や「作業が面倒な場合」の例として以下のような一連の作業が挙げられます。

  1. テキストファイルの内容を新規Excelブックに転記する。
  2. 入力したデータが正しいかチェックする。
  3. 不要なデータを削除する。
  4. データの並び順を変更する。
  5. セルの書式設定を行う。
  6. シート名を付ける。
  7. 指定されたブック名で保存する。

このような一連の作業を大量に毎日繰り返し行っているのであれば、間違いなくVBAでラクをした方がいいでしょう。データ量にもよりますが、手作業の数倍どころではなく10倍、100倍、1000倍という速さで終わります

これらの他にも、Excelを触ってて「あー、これ毎日毎日、同じことやってんなー」とか「もうこれホント、メンドクサイ」とかを感じることは多々あります。そう感じたらVBAの出番です。

VBAでなくてもExcelの標準機能のワークシート関数や条件付き書式などで対応できることもありますがやはり出来ることに限界があります。VBAは複数のことを一度で終わらせることが出来る利点があります。

ここまでが「どういうときにVBAを使えばよいか」を探す方法です。ここから先は実際にVBAでプログラミングを行う話になるため、プログラミング自体の壁がありますが、「VBAでどういうことを解決したいか」という課題は明確になります。

VBAを使うと時間短縮だけでなくミスが無くなる

上記のように、「同じことを何度も行っている場合」や「作業が面倒な場合」に対するVBAでのプログラミングをすることで、作業がラクになるという利点があります。

ただ、作業がラクになるのは、単に手を動かす時間が短縮されることだけではありません。

それとは別に、「ミスが無くなる」という多大な効果があります。ミスが減る、ではなく、ミスが無くなる、です。

手作業のミスが一切無くなります。目に見えませんが、これは絶大な効果です。

人間の作業の中で時間が掛かるものの一つに「ミスしたことへの対応」があります。これは本当に時間が掛かります。ミスが無ければ「ミスの対応」などそもそもやらなくてよい作業ですし、ミスしたら「報告書を書け」だの、「原因分析しろ」だの、うるさいことを言ってくる時間泥棒に遭遇することもなくなります。

あなたの大事な人生の時間をVBAを使って守りましょう。

もちろん、ミスが無いようにプログラミングをしておかなければなりませんが、ミスがあっても修正すればいいだけですし、望んでいる形になってしまえば状況が変わらない限りずっと使い続けることが出来ます。

VBAのコードを書くには

VBAを使って効率化を図りたい作業が見つかったあとは、実際にVBAでプログラミングをすることになります。

熟練の人であればいきなりプログラムを書いてしまうことも可能ですが、そのような人はおそらく少数派です。

そうでない場合は、VBAの本を読んでみることをお勧めします。書店に行って自分に理解できる内容かどうかを確認した方がいいでしょう。

以下の本は基礎から分かる読みやすい良書です。2019年出版ですがVBA自体はバージョンで変わることはほとんどないので気にしなくていいです。知人の経理事務の仕事をしている方は元々プログラミングを全くできませんでしたがこれを読んでVBAを自分で書けるようになりました。

よくわかるExcel 2019/2016/2013 マクロ/VBA

本にも書いてありますが、実際にVBAに慣れるにはまずマクロの記録機能を使うのが一番の近道でしょう。

あとは、ネットでサンプルコードを探すか、ChatGPTのようなAIを利用してコードを書いてもらうか、などの方法がありますが、そのコードが自分が探しているものなのかを判定できないのであれば、闇雲に彷徨っている状況ですので、結局は学習した方が近道です。

上記は基本の基本の本なので、ある程度理解が進むと物足りなくなります。そういう場合はさらに自分のレベルに合う本を書店で探してみてください。

]]>
VBAで作った関数(マクロ)の実行方法 https://vbabeginner.net/how-to-execute-vba-function/ Sun, 18 Jun 2023 16:16:22 +0000 https://vbabeginner.net/?p=6795 VBAで作った関数をどうやって動かすか

VBAで作った関数やマクロ記録機能で作った関数を動かす方法は主に4通りあります。簡単な順に並べると以下になります。

  1. VBA上で実行する
  2. 図形にマクロを登録して、クリックして動かす
  3. リボンやクイックアクセスツールバーに登録して、クリックして動かす
  4. セルの右クリックなどのイベント処理に登録して、イベント発生時に動かす

それぞれ用途が異なります。マクロ(関数)を動かす方法と合わせて説明します。

1. 作った関数をVBA上で実行する方法

関数を作ってすぐに動かしたい場合など、VBAで標準モジュールやワークシートに作成した関数をVBA上で実行するには、以下の2つの手順を踏みます。

1. 実行したい関数名や関数内にマウスカーソルを当てます。画像の右上のプロシージャプルダウン(関数名が書いてあるプルダウン)から選択してもOKです。ただ、このプルダウンは関数名の変更や追加がすぐに反映されないことがあります。

2. 「Sub/ユーザーフォームの実行 F5」ボタンを押すか、F5キーを押します。

上の画像のコードの「Debug.Print “abc”」はイミディエイトウィンドウに”abc”という文字列を出力する、という内容のため、実行するとその通りに出力されます。

Sub DebugPrintTest1()
    Debug.Print "abc"
End Sub

2. 作った関数を図形に登録して実行する方法

Excelシートに図形、主にオートシェイプを配置して、VBAで作成した関数を図形に登録すると、図形をクリックすることでVBAで作成した関数を実行できるボタンのように扱うことが出来ます。

1. ボタンとして扱う図形を作成します。図形は、リボンの挿入タブ→図セクション→図形、から選択できます。ここではボタンの形に近い「四角形 角を丸くする」を使用していますが、どの図形でも構いません。

2. 作成した図形を右クリックして、「マクロの登録」を選択します。

3. まだVBAで関数を作成していないのであれば、マクロ名の欄に作成する関数名を入力して、「新規作成」ボタンを押します。VBAの画面が表示されて記載した関数名が自動作成されます。既に作成済みの関数を登録する場合は後述してます。

4. 既に関数を作成しているのであれば、リストから関数を選択してOKボタンを押します。マクロの保存先がPERSONAL.XLSB(個人用マクロブック)など他のブックの場合は、「マクロの保存先」プルダウンを変更してください。

 

これで図形クリックでマクロが動くようになります。

ただし、クリックしてもオートシェイプが選択されるだけで実行されない場合があります。これはデザインモードの状態になっているためです。VBAの画面にデザインモードの切り替えボタンがありますので、クリックしてデザインモードを終了すると、図形クリックでマクロが実行できるようになります。

3. リボンやクイックアクセスツールバーに登録して実行する方法

VBAで作った関数を頻繁に実行する場合は、リボンやクイックアクセスツールバーに登録しておくのが便利です。私も多用しています。

詳細は「マクロをいつでもすぐ使えるようにする(クイックアクセスツールバー)」をご参照ください。

なお、VBAで作成した関数だけでなく、Excelで最初から用意されている機能もリボンやクイックアクセスツールバーに登録することが可能です。

4. 作った関数をイベントに登録して実行する方法

Excelには多数のイベントがあります。イベントとは、セルの右クリックした、など、何かしらExcelを操作することを指します。

いくつかのイベントについて以下に詳細を記載していますので参考にしてください。

]]>
Excel関数とVBA関数の違い https://vbabeginner.net/difference-excel-vba-function/ Sun, 04 Jun 2023 16:11:13 +0000 https://vbabeginner.net/?p=6754 Excel関数とVBA関数の違い

Excel関数(ワークシート関数)とVBA関数の違いは、どのアプリケーションで扱えるか、の違いです。

Excel関数はExcelではセルの数式でしか書けません。ただ、ほとんどのExcel関数はVBAから利用することが出来ます。

VBA関数はVBAのプログラムの中でしか書けません。Excelからは利用できません。

Excel関数とVBA関数は全く別物です。同じ名前の関数がいくつかありますが、名前が同じだけで中身は異なります。

これで話は全てなのですが、「関数」という言葉自体がなじみが薄いため分かりにくいところですので、そのあたりが分かるように説明していきます。

関数とは?

プログラミング経験が少ない方にとって「関数」は頭を使うポイントの一つです。

ここでは主にVBA関数とExcel関数の違いを説明していますが、先に「関数とは?」について説明します。

関数(かんすう)とは、渡されたデータや内部データを使って答えを導き出すものです。「渡されたデータ」のことを「引数(ひきすう)」と言います。ここでは渡されたデータや内部データがどういうものなのかは気にしなくていいです。

関数は他から呼び出されてから動き出します。自分で勝手に動き出すことはありません。

普段の生活でも関数で表現できるものがたくさんあります。例えばコーヒーメーカーも関数として表現できます。コーヒー豆が引数で、結果がコーヒーです。このときコーヒーメーカーを使っている人はコーヒー豆からどうやってコーヒーを作るのか知らなくてもコーヒー(結果)を受け取ることが出来ます。

コーヒーメーカーを使うたびにコーヒーが出てきます。1回使えば1杯、2回使えば2杯でてきます。関数も同じで、使う度(呼び出す度)に1回動作します。

Excel関数の書き方であればこんな感じになります。
=コーヒーメーカー(コーヒー豆)

また、コーヒーメーカーにコーヒー豆を入れたのにコーヒーが出てこなかった、ということもあります。このように期待した結果が得られない場合や正しい動作をしないことをバグと言います。「コーヒーメーカー関数がバグってる」のような言い方をします。

引数を渡さない関数もあります。例えばお掃除ロボットなどがそれにあたります。スタートボタンを押す(関数を呼び出す)とあとは勝手に掃除を始めて終わったら勝手に元の位置に戻ります。このとき、引数はありませんが内部データとしてどこを掃除したかとか、開始してからどのぐらい経過したか、などを内部で利用します。

また、引数が複数ある関数もあります。例えば鍋がそれにあたります。必要な材料を全て入れて、火に掛けて、何分待って、などの複数の引数を渡さないと正しく料理が仕上がりません。このように、関数を使う側に使い方のルールを守る必要が発生することもあります。

Excel関数(ワークシート関数)とは

Excel関数(ワークシート関数)は、Excelのセルに書く関数のことを指します。

Excelの数式タブの「fx(関数の挿入)」ボタンを押すと、関数の挿入ダイアログが表示され、そこから使う関数を選ぶことが出来ます。

また、関数の挿入ダイアログを使わなくてもセルに「=SUM」のようにイコールから書き始めることでも出来ます。

Excel関数はExcelをインストールしていれば利用できます。SUM関数やVLOOKUP関数などもそうです。そのため、Excel関数はExcelを構成する仕組みの1つとも言えます。

Excel関数はVBAから利用することが可能です。いくつかの方法があります。

詳細については「VBAからExcelのワークシート関数を使う」をご参照ください。

VBA関数とは

VBA関数とは、プログラミング言語であるVBA(Visual Basic for Applicationsの略)のプログラミングコードの中でのみ扱うことが出来る関数です。Excelからは利用できません。

Excelを起動して、Alt + F11キーを押すとVBAの画面が表示されます。または、Excelの開発タブのVisual Basicからでも開きます。

開発タブが表示されていない場合は、Excelのファイルメニュー→オプション→リボンのユーザー設定→開発、にチェックを付けると表示されます。

VBA関数の1つであるInt関数を使っています。Int関数は引数で渡された数値の整数を返す関数です。

Sub SubTest()
    Dim i   As Integer
    
    i = Int(1.23)       '// Int関数は整数部分を返す関数。1.23の整数の1が返り、iに1がセットされる
End Sub

]]>
VBAエディタでコードを複数行コメント化と解除する方法 https://vbabeginner.net/comment-uncomment-blocks/ Mon, 01 May 2023 16:49:58 +0000 https://vbabeginner.net/?p=6679 VBAのコメントはシングルクォーテーションしかない

VBAのコードはシングルクォーテーション(’)でしかコメントにする方法はありません。

他のプログラミング言語であれば単一行のコメント化と複数行のコメント化の2通りの方法があるのが一般的ですが、VBAには残念ながらありません。

そのため、複数行を一度にコメント化したりコメントを解除するときに大変面倒です。

ここでは、複数行のコメント化およびコメントを解除する方法、そして、コメント化とコメント解除のショートカットキーの設定方法を紹介します。

VBAエディタで複数行のコードをコメント化および解除するには

VBAエディタで複数行のコードをコメント化および解除するには、設定の追加が必要です。

設定の追加手順は以下の通りです。

  1. 開発タブが表示されていなければ追加する。
    (Excelを起動し、ファイルメニュー→オプション→リボンのユーザー設定→「開発」にチェックを付ける。Excelブックに戻ると開発タブが表示される。)
  2. VBAエディタを開く。
    (Excelブックを表示した状態で、開発タブ→「Visual Basic」を選択する。または、Excelブックを表示した状態で、Alt+F11キーを押す。)
  3. VBAエディタの「表示」メニュー→ツールバー→「編集」を選択する。または、ツールバーを右クリック→「編集」を選択する。
  4. VBAエディタのツールバーに「編集」ツールが追加される。
    この「編集」ツールバーに「コメントブロック」と「非コメントブロック」のボタンがあります。左が「コメントブロック」ボタン、右が「非コメントブロック」ボタンです。
  5. ツールバーへの追加は以上です。

VBAエディタでコードを複数行選択して、「コメントブロック」ボタンを押すと、選択した行の先頭にシングルクォーテーションが付与されてコメント化されますコメントを外したい場合は、それらの行を選択して「非コメントブロック」ボタンを押します

通常はこれでいいのですが、複数行のコメントの設定と解除をする度にいちいち「コメントブロック」ボタン、「非コメントブロック」ボタンを押さなければならないのが面倒に感じるかもしれません。そこで、以下でボタンにショートカットを設定する方法を紹介します。

コメントブロックボタンと非コメントブロックボタンにショートカットを設定する

「コメントブロック」ボタンと「非コメントブロック」のボタンにショートカットを設定する手順は以下になります。

  1. 「コメントブロック」ボタンを右クリックして、ユーザー設定、を選択する。「ユーザー設定」ダイアログが表示される。

  2. 「ユーザー設定」ダイアログが表示された状態で、編集ツールバー上にある「コメントブロック」ボタンを右クリックする。コンテキストメニューが表示される。
  3. コンテキストメニューの「名前」欄にある「コメント ブロック」を「(&/)」に変更し、「イメージとテキストを表示(A)」にチェックを付ける。
    (「(&/)」の「/」は他の文字でも構いません。CommentOutの「(&c)」などでもOKです。C言語のコメント文字であるスラッシュ/をここでは採用しています。テキスト表示をしないとショートカットが機能しないため「イメージとテキストを表示(A)」にチェックを付けています。)
  4. 「非コメントブロック」ボタンも同様に名前を「&(\)」に変更して、「イメージとテキストを表示(A)」にチェックを付ける。(\はスラッシュ(/)キーの1つ右にあるので採用してます。他の文字でもOKです。)

設定が終わったら、このようにショートカットキーのテキストもボタン表示に加わります。テキスト「(/)と(\)」が表示されてないとショートカットが機能しません。

あとは、コードでコメントにしたい行または複数行を選択して、Altキー+/キーを押すとコメント化され、Alt+\を押すとコメントが解除されます。\はスラッシュキーの右のアンダーバーのキーでも、=キーの2つ右のキーでもどちらも動作します。

割り当てるキーには好みがあると思います。「Comment out」の「(&c)」でのAlt+cキーと、「Uncomment」の「(&u)」でのAlt+uキーなどもいいかと思います。割り当てるキーは適当に考えてみてください。

]]>
マクロをいつでもすぐ使えるようにする(クイックアクセスツールバー) https://vbabeginner.net/quick-access-toolbar-ribbon/ Mon, 07 Feb 2022 16:15:02 +0000 https://vbabeginner.net/?p=6458 VBAで書いたマクロをいつでもすぐに使いたい

VBAで作成した関数を頻繁に使いたい場合があります。そのような場合はリボンやクイックアクセスツールバーに登録しておくと、クリックするだけで使うことができます。

なお、いつでも使えるマクロは個人用マクロブックに登録しておくとExcelが起動していればいつでも使えるようになります。個人用マクロブックへの登録方法は後述しています。

では、実際に登録する方法の例として、汎用的に使えるマクロとして当サイトで紹介しているシートのズーム設定を行うものがありますのでこれを使います。

詳細はこちらです。「VBAでウィンドウの表示倍率(Zoom)を変更する

上のページではいくつかのコードを紹介していますが、ここでは全シートのズームを100%に設定するコードを転記します。

Sub 全シートズーム100()
    Dim Sh                      As Worksheet
    Dim shNow                   As Worksheet
    
    Set shNow = ActiveSheet
    
    For Each Sh In Sheets
        If (Sh.Visible = xlSheetVisible) Then
            Sh.Select
            ActiveWindow.Zoom = 100
        End If
    Next
    
    shNow.Select
End Sub

これを実行すると、開いているブックの全シートのズームが100%になります。

ただ、実行したいときに毎回VBAの画面を開いて、この関数を表示して実行(F5)するのは面倒です。それに、作業で使うExcelブックは複数あります。

では、これをいろんなブックで実行したい場合、どうしたらよいでしょうか? 方法は主に2つあります。

先に書いた通りですが、クイックアクセスツールバーに登録する方法と、リボンに登録する方法です。どちらも登録方法は大体同じです。両方を説明します。

クイックアクセスツールバーに登録する

1つ目の方法は、マクロをクイックアクセスツールバーに登録する方法です。

クイックアクセスツールバーは、初期状態のExcelであれば、リボンの各種タブの上の緑色の部分にあります。保存マークなどがあります。

また、リボンの下に表示することも可能です。Excelのオプション→クイックアクセスツールバー→「クイックアクセスツールバーをリボンの下に表示する」にチェックを付けます。

あとは、Excelのオプション→クイックアクセスツールバーで、コマンドの選択から「マクロ」を選び、登録したいマクロを選択して、追加ボタンを押すと、右側のクイックアクセスツールバーに追加されます。

右側に追加後、追加したマクロを選択して「変更」ボタンを押すと、名前の変更や設定するアイコンを変更できます。

絵はアイコンが「Z」ってなってますが、これは別の方法で「Zoom」の略のZとして付けてますのでここでは省略します。

あとは、Excelのオプション画面でOKボタンを押すと、設定完了です。

リボンに登録する

2つ目の方法は、マクロをリボンに登録する方法です。

Excelのオプション→リボンのユーザー設定で、コマンドの選択から「マクロ」を選び、登録したいマクロを選択して、右側から追加したい位置を選択して、追加ボタンを押すと、リボンに追加されます。

右側に追加後、追加したマクロを選択して「変更」ボタンを押すと、名前の変更や設定するアイコンを変更できます

リボンはタブやグループを自分で作ることもできますので、そちらに登録することも可能です。

あとは、Excelのオプション画面でOKボタンを押すと、設定完了です。

クイックアクセスツールバーやリボンに登録したマクロの使い方

マクロをクイックアクセスツールバーやリボンに登録したあとは、すぐに表示されますので、そのボタンを押せば登録したマクロが実行されます。

ブックを複数開いていても、全てのブックでクイックアクセスツールバーやリボンは共用されているため、それぞれにブックで使えるようになっています。

Excelを終了したり、PCの再起動は不要です。

一度設定すると、次にExcelを開いたときも、登録したマクロは残っていますので、いつでも使えるようになっています。

上の絵では隠していますが、私のExcelのクイックアクセスツールバーはマクロだらけになってます。

なお、クイックアクセスツールバーやリボンには、マクロだけでなく、Excelの他のコマンドの登録もできます。行の追加や削除、罫線の設定、オブジェクトの選択、など、便利な機能はいくつもありますので、活用されることをオススメします。

個人用マクロブックの活用

クイックアクセスツールバーやリボンに登録したいマクロは、個人用マクロブック(PERSONAL.XLSB)に登録しておくと、Excelを開いているときはいつでも利用できるようになります。

個人用マクロブックの作成方法についての詳細は「個人用マクロブック(PERSONAL.XLSB)の作成方法」をご参照ください。

]]>
VBAのコンパイル方法と必要性 https://vbabeginner.net/compile/ Sun, 19 Dec 2021 16:09:47 +0000 https://vbabeginner.net/?p=6422 VBAのコンパイル方法

VBAのデバッグメニューの一番上に「VBAProjectのコンパイル」というメニューがあります。実行するとコードに誤りがないかをチェックします。

「VBAProjectのコンパイル」メニューを選択すると、VBAで選択されているVBAProjectのブックに含まれるVBAのコードが正しく実行できるかをチェックし、実行できないものがあればその行にジャンプしてエラーダイアログでエラー概要を表示してくれます。チェック対象となるVBAのコードは、コードが書けるモジュールは全てです。ワークシート、標準モジュール、クラスモジュール、フォームモジュールなどの全てのコードがチェック対象になります。

C言語を知っている人が「コンパイル」と聞くと、aaa.cからaaa.objやaaa.oといったオブジェクトコードの作成が頭に浮かびますが、VBAのコンパイルは別ファイルが出来るのではなくブックの中にコンパイル結果が保存されます。そのため、コンパイル後はブックのファイルサイズが増えます。

VBAのコンパイルとは?

コンパイルとは、ソースコードの内容をコンピュータが理解しやすい形に変換することを言います。コンパイルされた内容をPコード(p-code、portable code)とか中間コードなどと言いますが知らなくても大丈夫です。VBAのコンパイルは見た目上はコードのチェックを行っているだけのように見えますが、内部ではPコードの生成を行っています。

VBAは1行ずつ処理をするプログラミング言語のためインタープリタ言語として扱われますが、1行ずつ実行するのは都度コードの内容を確認しながら実行することになり、当然ながら処理速度が遅いため、Pコードを生成して高速化を図っています。そのためインタープリタ言語でありながら、C言語やJava言語のようなコンパイル言語の性格も持ち合わせています。

保存されるコンパイル結果であるPコードはシートの内容はVBAのコードとは別で保存されるため、見た目上はブックの内容が変わったことには気づきません。また、Pコード自体もバイナリ形式のデータであるため編集したりすることはできません。マクロブックをバイナリエディタで見ることは出来ますが、見ても何も分かりません。

一度コンパイルすると「VBAProjectのコンパイル」メニューが非活性になり、コンパイルすることはできなくなります。VBAでのソースコードが変わると活性状態になり再度コンパイルを実行することが出来るようになります。

また、コンパイルをしていなくても関数が実行されたときに自動的にコンパイルされます。ただしこの場合にコンパイルするのは実行した関数だけです。全然関係ない関数や呼び出し先の関数でコーディングミスがあっても、その関数が呼び出されるまでは自動コンパイルは行われません。

「VBAProjectのコンパイル」の場合はブックのコード全体をチェックするのに対し、自動コンパイルは動かした関数だけしかチェックしない、という点が異なります。

コンパイルしてもVBAからexeは出来ません

コンパイルという言葉のせいか、「コンパイル(+ビルド)したらVBAのコードから実行形式のexeのファイルを作れるのか?」という疑問が出そうですが、exeは作れません。あくまでもブックに付随したプログラムです。

VBAで関数を作っていてそれをexeにしたい、という話はExcel上ではできませんが、例えばVisual StudioのVisual Basicでアプリケーションを作成してVBAのコードを転記してVisual Basic用のコードに編集してからexeを作る、というような方法であればもちろん可能です。

ただ、そういう場合は最初からVisual Studioでコーディングした方がラクだと思います。

コンパイルした方がいいの?

VBAはわざわざコンパイルしなくても、関数を実行すればちゃんと動きます。コードに誤りがあれば実行時に「コンパイルエラー」が通知されます。なので、コンパイルはしなくてもいい、という考え方があります。もちろん「VBAProjectのコンパイル」を実行すれば、マクロを動かす前に「コンパイルエラー」を検知することが出来ます。

繰り返しになりますが、コード全体のチェックをしたい場合はコンパイルを行い、気にしないのであれば関数実行時の自動コンパイルに任せてもOKです。ちなみに私自身はほとんどコンパイルしません。自動コンパイル任せです。

というのも、このサイト用も含め、標準モジュールにお試しで書いたテスト用の関数があちこちにあり、ちゃんと完成させる前に別の方法を思いついたりめんどくさくなって放置している関数がごろごろあります。当然、こんな状態でコンパイルを行うとエラーだらけなのは分かっているため、確認したい関数の自動コンパイルに任せています。

「ちゃんとせーや」って声も分かるんですが、自分用に限定していれば特に問題にならないため、これでいいや、と思ってます。コンパイルをするのは人に見せる仕事用のマクロブックを作ったときぐらいです。それで困ったことになったこともないのでこれで通してます。

コンパイルを忘れないようにするには

どうしてもブック全体のコンパイルしたいという場合は、ツールバーに登録しておくと少しはラクになります。手順は以下の通りです。

  1. VBAの表示メニュー → ツールバー → ユーザー設定 から、ユーザー設定ダイアログを表示します。
  2. ユーザー設定ダイアログの「コマンド」タブを選択し、左側の分類から「デバッグ」を選択して、右側のコマンドから「プロジェクトのコンパイル」をツールバーの好きな位置にドラッグします。以下の絵では保存ボタンの右に追加しています。

こうしておけば、コンパイルして保存、という流れにもなり、コンパイル忘れ防止にもなります。

]]>
VBAのオブジェクトとは?分かる言葉で説明します https://vbabeginner.net/what-object/ Mon, 11 Oct 2021 15:33:57 +0000 https://vbabeginner.net/?p=6286 「オブジェクトの説明」を読んでも意味わからん・・・→分かる言葉で説明します。

VBAのオブジェクトって言葉、分かりにくいですよね。「なんなんオブジェクトって?」って思いますよね。

初めてVBAでプログラミングをやる人が「意味わからん・・・」と嫌になる言葉の1つが「オブジェクト」でしょう。

説明を読んでも、「物」とか「物体」とか「対象」とか「オブジェクト変数」とか、はっきりしない言葉ばかりでうんざりするものが多いですが、ここではそういう分かりにくい用語は使わず、誰もが知っている言葉で説明します

途中で分からない言葉があっても気にせず読み進めてください。

なお、一番大事なことですが、別にオブジェクトが分からなくてもVBAは使えますのでそんなに気にしなくてもいいです

.(ドット)の左側がオブジェクト

答えから先に書きます。一言で言うと、オブジェクトとは「.(ドット)の左側のことです。意味わからなくても気にしないでください。あと、右側のことは後述しますので今は忘れてください。

VBAでは以下のような書き方をすることがあります。

Range("A1").Value = "abc"

左側(ここがオブジェクト).右側 = 値

このコードの意味が分からなくても問題ありません。VBAではこういう書き方をすることがある、ってことだけで大丈夫です。

.(ドット)の、左側にある「Range(“A1”)」が「オブジェクト」になります。繰り返しますが、ドットの左側が「オブジェクト」です。

実際にプログラムで使うときは6文字での「オブジェクト」という言い方はしません。上の例で言うと「Rangeオブジェクト」と言います。「Rangeオブジェクト」がなんなのかは今は気にしなくていいです。

このように全ての「オブジェクト」は「〇〇オブジェクト」と名前が付けられます。これらの「総称」をひとくくりにして「オブジェクト」と言います。

「オブジェクト」という何か具体的なものがあるわけではなく、VBAで出てくるいろんな「.(ドット)の左側のこと」をひっくるめた言い方に過ぎません。そのため「オブジェクト」という6文字だけで何かを説明することはほとんどありません。概念を説明すること以外には使うことは無いと言ってもいいです。

例えば、自家用車とタクシーとバスをひっくるめて「自動車」と言ってるようなものです。でも実際に使うときは「タクシーに乗る」のように具体的な言い方をします。この具体的な言い方が「〇〇オブジェクト」の部分になり、上の例では「Rangeオブジェクト」になります。

オブジェクトとはセルやシートなどの「操作したい部品」を指す

Excelで作業をする際に扱っているものとして、セルやシートがあります。これらの「オブジェクト」が用意されています。セルの操作をしたいときは「Rangeオブジェクト」を使い、シートの操作をしたいときは「Worksheetオブジェクト」を使います。はい、覚えなくていいです

他にも用途に応じた「オブジェクト」があります。

セルとかシートのように、オブジェクトは「操作したい部品」を表します。厳密には、どういう用途に使うものかという「分類」を表します。

そのため、マクロで何をしたいかによって利用する「オブジェクト」は変わってきます。

Excelの操作を自動化するためのマクロを作る場合は何かしらの「オブジェクト」を利用することになりますが、一番使う頻度が多いのはセル操作用の「Rangeオブジェクト」と思われます。あとは、シート操作用の「Worksheetオブジェクト」とブック操作用の「Workbookオブジェクト」の3つでほとんどの場合は事足ります。

.(ドット)はなんなの?

コードの途中にある.(ドット)は、親子関係があることを示しています。.(ドット)の左側が親のオブジェクトで、右側がその子供になります。

親オブジェクト.子

例えば、A1セルに”abc”を入力する場合の手順は、A1セルを選択してキーボードで「abc」と入力します。そのままですね。

「A1セルの値を”abc”にする」というのは、「〇〇の、××を、**にする」という文章の構成になります。これがそのままVBAのコードになります。

Range("A1").Value = "abc"

これを日本語と併記すると、「A1セル(Range(“A1”)) の(.) 値(Value) を(=) ”abc”にする」のようになります。

このように、.(ドット)は左のオブジェクトを示す「~~の」という意味で使われます。

.(ドット)は1行のコードの中に複数使われることもあります。

例えば、「B2セルのフォントの色を青にする場合」は以下のようになります。

Range("B2").Font.Color = RGB(0, 0, 255)

「親.子.孫」の関係です。

ここでは挙げませんが、さらにドットの数が多いものもあります。

このように、前後の親子関係を示すものが.(ドット)の役割です。

.(ドット)の右側は?

.(ドット)の右側は3種類あります。上の説明の親子関係にある「子供側のオブジェクト」か「プロパティ」か「メソッド」のいずれかになります。

「子供側のオブジェクト」かどうかは、.(ドット)を付けて入力候補が出るかどうかで判断できます。入力候補が出れば「オブジェクト」です。

「プロパティ」か「メソッド」かを見分けたい場合は、単語(ActivateやValueなど)を選択して、右クリックをして「定義」を選択するとオブジェクトブラウザが表示されます。

そこで、説明欄に「Property」から始まっていれば「プロパティ」で、「Function」か「Sub」から始まっていれば「メソッド」とみなせます。

よく使うオブジェクト

VBAで扱える「オブジェクト」の種類はたくさんありますが、実際に使用頻度が高いものは数個です。

ここでは使用頻度が多いと思われる順に紹介します。

オブジェクト名 用途
Range セルの操作を行います。複数の説明記事を「セル」に書いています。
Worksheet シートの操作を行います。複数の説明記事を「シート」に書いています。
Workbook ブックの操作を行います。複数の説明記事を「ブック」に書いています。
FileSystemObject ファイル操作を行います。参照設定「Microsoft Scripting Runtime」もしくはCreateObject関数を使う必要があります。

詳細を「VBAでのFileSystemObjectとTextStreamの使い方」や「FileSystemObjectとTextStreamのメソッド・プロパティ一覧」に書いています。

Dictionary ハッシュマップとして利用します。参照設定「Microsoft Scripting Runtime」もしくはCreateObject関数を使う必要があります。

詳細を「VBAのDictionaryの使い方(全メソッドとプロパティ網羅)」に書いています。

RegExp 正規表現での文字列操作を行います。参照設定「Microsoft VBScript Regular Expressions 5.5」もしくはCreateObject関数を使う必要があります。

詳細を「VBAで正規表現(RegExp)を利用する」に書いています。

技術的な説明

VBAでの「オブジェクト」という言葉はそもそもプログラミング言語の説明としては不十分です。

オブジェクト指向のクラスとインスタンスを分けずにひっくるめた言葉として「オブジェクト」が使われており、それがむしろ分かりにくくしている面もあります。

VBAではなぜか「クラス」という言葉を使いたがらない傾向があります。「インスタンス」という言葉はほとんど使いません。そして「クラス」や「インスタンス」の代わりに「オブジェクト」と言い換えをします。

クラスもインスタンスもオブジェクトの一種ですので間違いではないですが、技術者が使うプログラミング言語の言葉としてはふさわしいとは言えません。とにかく、VBAでは慣例なのかなんなのか分かりませんが、こうなってます。

コードとしてはVBAもちゃんと「クラス」と「インスタンス」は区別できるのですが、どちらも「オブジェクト」と呼びます。

こういうところがVBAのダメなところですね。

]]>
個人用マクロブック(PERSONAL.XLSB)の作成方法 https://vbabeginner.net/how-to-create-a-personal-macro-book/ Sun, 06 Jun 2021 06:50:25 +0000 https://vbabeginner.net/?p=6169 個人用マクロブックとは

VBAで作成したマクロはブックに保存されます。そのため、そのマクロを動かしたい場合はそのブックを開いておく必要があります。これはどのようなマクロであっても同じです。

そして、どのブックからでも共通に使いたいマクロを登録するブックが「個人用マクロブック」になります。

個人用マクロブックの保存先

個人用マクロブックとは「C:\Users\[ユーザー名]\AppData\Roaming\Microsoft\Excel\XLSTART」フォルダに保存される「PERSONAL.XLSB」というファイルのことを指します。Excelをインストールした時点では存在しておらず、あとから作成する必要があります。(作成手順は後述しています。)

Excelは起動時に上記の「C:\Users\[ユーザー名]\AppData\Roaming\Microsoft\Excel\XLSTART」フォルダにあるブックを全て開きます。通常、このフォルダには個人用マクロブックであるPERSONAL.XLSBしか格納されませんので、結果的にExcel起動時に個人用マクロブックが開かれ、それ以降はどのブックからも個人用マクロブックに登録されているマクロが使える仕組みになっています。

なお、意図的にXLSTARTフォルダに別のブックを入れればExcel起動時にPERSONAL.XLSBと追加したブックの両方が起動します。

個人用マクロブック(PERSONAL.XLSB)の作成手順

個人用マクロブックこのファイルがないと話が進みませんので、まずは作りましょう。

マクロウイルス、なんて言葉がありますが、作成するだけではExcelやパソコンが壊れたりするようなことはないので安心して作成してください。

個人用マクロブック(PERSONAL.XLSB)があるか確認

結構あるのが、個人用マクロブックが既にあった、という状況です。作成済みであればもう作る必要はないので、あるかないかを確認しましょう。

  1. エクスプローラを開きます
    Windowsキー + Eキーを押してもエクスプローラを開けます。
  2. XLSTARTフォルダを表示します。
    表示方法はエクスプローラのアドレスバーに「%APPDATA%\Microsoft\Excel\XLSTART」を入力してエンターキーを押します。やりたいことは「C:\Users\[ユーザー名]\AppData\Roaming\Microsoft\Excel\XLSTART」の表示です。%APPDATA%はログインユーザのAppData\Roamingフォルダを示す環境変数です。
  3. PERSONAL.XLSBがあるか確認します。あれば作成不要です。「個人用マクロブックにマクロを追加する」へ進んでください。

個人用マクロブック(PERSONAL.XLSB)の作成

個人用マクロブック(PERSONAL.XLSB)の作成手順を説明します。

  1. Excelを終了します。現時点でExcelブックを開いていたら全て閉じます。
  2. Excelを開きます。スタートメニューから「Excel」を開きます。新規で空白のブックでも既存のブックでもなんでもいいので開きます。
  3. マクロを操作するための開発タブを追加します。「ファイル」メニュー→「オプション」→「リボンのユーザー設定」→「開発」タブにチェックを付けます。これで開発タブが表示され、マクロの操作を行えるようになります。まだこの時点では個人用マクロブックは作成されていません。

  4. マクロの記録を行います。先ほど追加した「開発」タブ→「コード」→「マクロの記録」で、マクロの保存先から「個人用マクロブック」を選択し、他(マクロ名、ショートカットキー、説明)は変更せずそのままでOKボタンを押します。
  5. 先ほど押した「マクロの記録」ボタンのラベルが「記録終了」になっているため、それを押します。
  6. Excelを終了します。その際に個人用マクロブックの保存確認ダイアログが表示されるので保存します。

これで個人用マクロブックのPERSONAL.XLSBが作成されました。

個人用マクロブックにマクロを追加する

実際に個人用マクロブックにマクロを追加して、他のブックから使えるか確認します。

  1. 既存ブックをダブルクリックするか、スタートメニューからExcelを起動します。
  2. 起動したら「開発」タブの「Visual Basic」をクリックします。VBAの画面が表示されます。Excelブックを表示中にAtlキー + F11キーでも開きます。
  3. PERSONAL.XLSBに標準モジュールを追加します。
  4. 追加した標準モジュールが表示されますので、以下のコードをコピペします。メッセージボックスに今日の日付を出すコードです。
    Sub MsgBoxTest()
        MsgBox Date
    End Sub


    このコードはPERSONAL.XLSBの標準モジュールに書かれるため、個人用マクロブックのマクロとして扱われます。
  5. Excelに戻り、新規の空白ブックを開きます。ExcelでCtrl + Nキーでも同様の動きになります。
  6. 開発タブ→マクロ→マクロの保存先からPERSONAL.XLSBを選択→作成したMsgBoxTest(PERSONAL.XLSB!MsgBoxTest)を選択して実行ボタンを押します。
  7. メッセージボックスに今日の日付が表示されます。
  8. 終わりです。

ここまでできれば、あとは個人用マクロブックにコードを追加して、他のブックから呼び出して利用できるようになります。

]]>
マクロの編集の基本 https://vbabeginner.net/macro-editing-basics/ Sat, 10 Jun 2017 16:56:17 +0000 http://vbabeginner.net/?p=290 マクロの編集にはVBEを利用する

マクロの記録機能を使うとExcelの操作をVBAのプログラムとして登録されます。あとは自動作成されたプログラムを再利用することでExcelの操作をマクロで実行することができるようになります。

しかしマクロの記録機能で作成されたプログラムには、ほとんどの場合で余計なコードが大量に書き込まれています。また、実際に作業で使いたいマクロには、「この部分は○回繰り返す」とか「この値が○の場合のみ処理が異なる」などの条件があるのが普通です。

このような繰り返し処理や条件分岐はマクロの記録機能では自動生成されないため自分でプログラムを書く必要があります。

作成したマクロを編集するにはVBE(Visual Basic Editor)で行います。VBEはExcelに付随するアプリケーションです。そのためVBEが起動中にExcelを終了するとVBEも一緒に終了することになります。

VBEの起動方法

VBEの起動方法には3通りの方法があります。

どれで起動しても最終的にはVBEの画面に遷移します。

ショートカットでVBEを起動する

ショートカットのAltキー+F11キーで起動します。

リボンからVBEを起動する

Excelブック表示中に「開発」タブ→「コード」グループ→Visual Basicをクリックして起動します。

もし「開発」タブがない場合は「Excelのマクロとは」の中段以降にある「マクロを使う方法」項を参照して追加してください。

マクロダイアログから起動する

Excelブック表示中に「開発」タブ→「コード」グループ→「マクロ」をクリックすると「マクロ」ダイアログが表示されます。

Altキー+F8キーでも同様です。

ダイアログの「マクロ名」テキストボックスから編集対象のマクロをクリックして、「編集」ボタンをクリックするとVBEが起動します。

この方法で起動した場合は上記の2通りの方法とは異なり、編集したいマクロを開いた状態でVBEが起動します。

マクロダイアログ

マクロダイアログに表示されるマクロ名は、今開いているすべてのブックのマクロが対象になります。

マクロの保存先プルダウンからブックを選択すると、そのブックのマクロのみが表示されます。

プログラムの編集方法

マクロの実体は関数です。

マクロの記録機能で開始から終了までを行うと1つの関数が作られることになります。

プログラムの編集はこの関数を編集することになります。

SubからEnd Subまでが1つのマクロになる

マクロの記録機能で作成された関数は「Sub」と書かれた行ではじまり、「End Sub」と書かれた行で終わります。

「Sub 」に続くのが関数名になります。これがマクロ名です。

マクロ名を変更したい場合は、Sub の後ろの関数名を書き換えることになります。

コメントの書き方

シングルクォーテーションの「’」で始まる部分は「コメント」と言います。

「コメント」とはプログラムの動作には影響しないメモのことを指し、VBAでは「’」から後ろはただのメモ書きです、という仕様になります。

「コメント」部分はプログラムの動作には全く影響しないため、自分が忘れてしまいそうなメモ書きなどを好きに書くことができます。

「コメント」はSub~End Subの範囲内に書かれていなくても構いません。Subの上に書いてもいいですし、下に書いてもいいです。

' コメント1です
Sub macro12()
' コメント2です
    Range("A1").Select

End Sub
' コメント3です

プログラムの編集

上のプログラムの4行目は、「A1セルを選択する」という命令になります。

この”A1″を”A:D”に書き換えると、「A列からD列を選択する」という命令に変わります。

編集内容の保存

左上にある保存ボタンを押すか、Ctrl + S で保存できます。「ファイル」メニュー→「○○の上書き保存」でも同じです。

このときの保存は、マクロダイアログで選択されていた「マクロの保存先」になるためブックに保存されることになります。

この時点でブックを保存していない場合で「Book1」などの状態であればブックの保存ダイアログが表示されます。

その際に、ファイルの種類プルダウンで「Excel マクロ有効ブック(*.xlsm)」を選択する必要があります。

マクロを保存するには拡張子をxlsmにします。

xlsxのままではマクロを保存できないためです。

マクロの削除

マクロを削除する場合はSubからEnd Subまでの行を選択してDeleteキーで削除します。

マクロダイアログでマクロ名を選択して削除ボタンを押すことでも削除できます。

ExcelとVBEの切り替え

ExcelとVBEは同時に起動することができます。

タスクバーでそれぞれ独立して表示されますのでクリックして画面を切り替えることもできます。

]]>
マクロの記録機能 https://vbabeginner.net/macro-recording-function/ Wed, 07 Jun 2017 15:55:28 +0000 http://vbabeginner.net/?p=258 マクロの記録機能の概要

マクロの記録機能は、記録開始と記録終了があり、その間のExcelでの操作内容をVBAのプログラムに置き換えて記録する機能です。

例えば、記録開始を行い、A1セルに”あいう”と入力し、記録終了を行うと、それがVBAの関数として記録され、それ以降はその関数(マクロ)を実行する度にA1セルに”あいう”と入力されるようになります。

マクロの記録機能を使って、記録したままのプログラムを何も編集せずにそのままマクロとして活用するのは単純な処理の場合に限りますが、マクロ化したいExcelの操作をVBAではどのように書けばいいのか分からない場合には重宝する機能です。

記録開始と記録終了はリボンの「開発」タブで行います。

方法については詳細を後述しています。

マクロの記録開始

マクロの記録開始は、「開発」タブの「コード」グループの「マクロの記録」をクリックすることで始まります。

もしくはステータスバーの「マクロの記録」アイコンをクリックすることでも始まります。

クリック後に「マクロの記録」ダイアログが表示されます。

ダイアログには「マクロ名」「ショートカットキー」「マクロの保存先」「説明」の4つの入力個所があり、「マクロ名」と「マクロの保存先」の入力は必須です。

なお、これら4つの入力項目はあとでVBAでのプログラム変更や設定変更を行うことでいつでも変更できますので、ここで時間がかかりそうでしたら仮の入力や未入力でも問題ありません。

ちなみに私の場合は「マクロの保存先」のみは最初に決めていますが、「マクロ名」はあとで書き換えるため「Macro1」のまま記録します。

「ショートカットキー」も使うことが滅多にないため必要になったときにのみ、あとでショートカットの設定を変更します。

「説明」欄は入力したことがありません。

マクロの記録ダイアログ

マクロ名

マクロ名は必須入力になります。

初期値はMacro1などが書いてあります。

マクロ名には英字が大文字と小文字どちらも使えるのですが、大文字と小文字を区別しないため、AAAもaaaも同じとみなされます。

マクロ名には使ってよい文字と使ってはいけない文字が決まっています。

使えない文字を入力している場合は「入力した名前は正しくありません」とエラーメッセージが表示されます。

マクロ名に使ってよい文字

英字、漢字、ひらがな、カタカナ、(_)アンダーバー、数字(マクロ名の先頭以外)

マクロ名に使ってはいけない文字

マクロ名先頭の数字、@ ? ! # $ & . 空白文字、予約語(既にVBAで用途が決まっている単語)

既に作成済みのマクロと同じ名前をつける場合

既に作成済みのマクロ名を入力した場合は、既存のマクロと置き換えるか確認するダイアログが表示されます。

置き換えたあとは既存のマクロを元に戻すことが出来ません。

ショートカットキー

ショートカットキーでは作成中のマクロが完成して再度マクロとして実行する際のショートカットを割り当てることができます。

上でも書いたのですが、マクロの作成後にいくらでも割り当ての変更は出来ます。

ショートカットキーに使用できるキーの組み合わせは以下の通りです。

・Ctrlキー + A~Zキー
・Ctrlキー + Shiftキー + A~Zキー

Shiftキーも組み合わせに含める場合は、Shiftキーを押しながら英字キーを押してください。

マクロの保存先

マクロの保存先プルダウンには3つ表示されます。

個人用マクロブック

個人用マクロブックとはどのExcelブックからも参照されるマクロ専用のブックで、いろんなブックからも使いたいマクロがあればここに登録することで一元管理ができます。

個人用マクロブックの実体は「PERSONAL.XLSB」というファイルで、「C:\Users\<ユーザー名>\AppData\Roaming\Microsoft\Excel\XLSTART\」フォルダに保存されます。

Excelインストール直後や一度も個人用マクロブックでのマクロ作成を行ったことが無い場合は「PERSONAL.XLSB」は存在しません。

「PERSONAL.XLSB」が存在する場合はExcel起動時に自動で読み込まれるため利用者がわざわざ開いたりする必要はありません。

なお、当ブログで紹介しているVBAの多くは汎用的に利用できるものが多いため、この個人用マクロブックに登録することを推奨します。

新しいブック

Book1.xlsxなどの新しいブックを作成して、そのブックのVBAとして登録します。

あまり用途は無い気がします。

作業中のブック

今作業しているExcelブックのVBAとして登録します。

マクロを記録後にブックを保存すると、VBAに記録されたプログラムも一緒に保存されます。

説明

VBAに記録されるプログラムのコメントになります。

プログラムのコメントとは、VBAの記録終了後に作成されたプログラムの上に記述されているシングルクォーテーション「’」で始まる部分のことを指します。

相対参照で記録

「マクロの記録」の下に「相対参照で記録」というボタンがあります。

これはセルの操作を記録する際に、シートのセルの位置をA1などと決まった位置である絶対参照として記録するのか、もしくは、マクロが開始したときのセルの位置を基点として操作したセルの位置がどこかを判定する相対参照として記録するのかを決めます。

意味が分からなければ何もしなくていいです。

何もしない場合は絶対参照のセルの位置をA1やB2などで記録します。

押されている状態だと相対参照、押されていない状態だと絶対参照で記録します。

私自身はこの機能は使いません。

あとでプログラムで書き換えれば済むのもありますが、相対参照で記録したプログラムは見づらくて嫌いなためです。

Excel操作の記録

記録終了するまでのExcel操作をVBAに記録します。

Excelの操作とは、セルのクリックや数字の入力や範囲選択や色やフォントの変更など、Excel上で行う操作すべてを指します。

VBAには操作した順にプログラムが書き込まれます。

「あ、間違ってマウスホイールをスクロールしちゃった」とかも記録されますので記録中に操作したことは覚えておくとVBAのプログラムを見るときに参考になります。

記録中にCtrl + Zキーまたは「元に戻る」ボタンを押した場合は、記録も前の状態に戻されます。

なお、一部のExcel操作はVBAには記録されないものがあります。

自動記録された内容はマクロの記録終了後にVBEを起動して確認することができます。

マクロの記録終了

一連のExcelの操作が完了しましたら、マクロの記録を終了します。マクロの記録終了は「マクロの記録開始」をクリックした箇所と同じ場所にあります。

「開発」タブ→「コード」グループ→「記録終了」

]]>