VBA再入門
第24回.マクロの呪文を追加してボタンに登録(ScreenUpdating)

マクロが覚えられないという初心者向けに理屈抜きのやさしい解説
最終更新日:2019-12-13

第24回.マクロの呪文を追加してボタンに登録(ScreenUpdating)


マクロVBAが完成したら、シートにボタンを配置してマクロを登録して完成させます。
ボタンのクリックでマクロが起動され自動化の完成になります。
と、その前に、マクロのちょっとした呪文をVBAに追加しましょう。


マクロの呪文「Application.ScreenUpdating」を追加

前回の
第23回.複数のプロシージャーを連続で動かす
自動化するマクロVBAを書くとき、必要な処理内容を1つのプロシージャーに全て書くことは難しいです。むしろ、1つのプロシージャーではなく複数のプロシージャーにした方がより良いものです。細かい単位の処理ごとにプロシージャーを書き、まとめて実行するようにします。
ここで作成したプロシ-ジャーは3つありますが、実際に起動するのは最後の、

ExcelマクロVBA サンプル コード

この、「連続実行」をボタンに登録して実行できるようにします。
そこで、ボタンに登録する前に、ちょっとマクロの呪文を追加しましょう。

ExcelマクロVBA サンプル コード

Application.ScreenUpdating = False

これは、画面更新を止めるものです。

Applicationとは、Excelそのものの事です。
そして、ScreenUpdatingは、プロパティになります。
つまり、
Application(Excelオブジェクト)のScreenUpdating(プロパティ)をFalseにしています。

「連続実行」を実行した時、
ブックを開いたり、セルに出力している様子がチラチラ見えるのですが、気が付きましたか。
この、チラチラと動いている様子が見えないようにするものです。

画面の動きのちらつきを無くすことで、実行速度も増しますので、
マクロVBAの先頭には、これを入れるようにします。

Falseにしたら、Trueに戻さなくては・・・

実際には書かなくても、マクロVBA実行が終了すれば自動的にTrueに戻ります。
最後にTrueに戻したほうがお行儀は良いかもしれません、自分で後片付けするということです。
マクロの処理内容によっては、最後にメッセージボックスで実行の終了を知らせた方が良いでしょう。
メッセージを表示するには、MsgBox関数を使用します。
MsgBox関数は、ダイアログボックスにメッセージを表示し、ボタンがクリックされるのを待って、どのボタンがクリックされたのかを示す値を返します。MsgBox関数 MsgBox(prompt[,buttons][,title][,helpfile, context]) 名前付き引数です。

ExcelマクロVBA サンプル コード

ボタンの追加とマクロの登録

では、この完成したマクロをボタンに登録します。
ボタンを配置するシートを選択したら、
開発→挿入→左上のボタンをクリック


ExcelマクロVBA サンプル画面

カーソルが、細い黒十字になりますので、
シート上のボタンを配置する位置をクリックしてそのままドラッグ操作で大きさを決めます。
大きさが決まったら、マウスのクリックを離すと、

ExcelマクロVBA サンプル画面

この画面が出ますので、
連続実行
これを選択して、「OK」を押してください。

ExcelマクロVBA サンプル画面

「ボタン 1」は適当な名称に変更してください。
セルをクリックしたりするとボタンの選択状態が解除されます。
ボタンの名前は、右クリックから「テキストの編集」でいつでも変更できます。

ExcelマクロVBA サンプル画面

この「実行」ボタンをクリックすれば、全自動で処理が完了します。

ここまでの作業を実際にやってみて下さい。
頭で理解するだけでなく、指でも理解しないと、本当の意味で理解したとは言えません。

ExcelマクロVBA入門等の対応ページ

第23回.メッセージボックス(MsgBox)
メッセージを表示するダイアログボックス(小さな画面)を表示します。ユーザーに選択(「はい」「いいえ」や「OK」「CANCEL」等)してもらい、その選択結果を受け取る事も出来ます。マクロVBAでメッセージボックスを表示するにはMsgBox関数を使います。

第57回.Applicationのプロパティ(マクロ高速化と警告停止等)
Applicationは、Excel全体をあらわすオブジェクトです、つまり、エクセルそのものだと考えて下さい。ここでは、そのプロパティの一部を紹介します。ここで紹介するApplicationのプロパティはほんの一部です。

第136回.フォームコントロール
リボンの開発タブにコントロールの挿入があります。フォームコントロールをVBAで扱う場合の解説になります。ワークシートでフォームコントロールを扱う事の是非はありそうですが、使用することで便利かつ見栄えの良いシートになる場合もあります。



同じテーマ「VBA再入門」の記事

第20回.全てのシートに同じ事をする(For~Worksheets.Count)
第21回.ファイル一覧を取得する(Do~LoopとDir関数)
第22回.複数ブックよりデータを集める
第23回.複数のプロシージャーを連続で動かす(Callステートメント)
第24回.マクロの呪文を追加してボタンに登録(ScreenUpdating)
第25回.月別ブックより部署別シートに担当別に集計するNo1
第26回.月別ブックより部署別シートに担当別に集計するNo2
第27回.月別ブックより部署別シートに担当別に集計するNo3
第28回.月別ブックより部署別シートに担当別に集計するNo4
第29回.月別ブックより部署別シートに担当別に集計するNo5
第30回.今後の覚えるべきことについて


新着記事NEW ・・・新着記事一覧を見る

ツイッターで出されたVBAのお題をやってみた|エクセル雑感(1月13日)
イベントプロシージャーの共通化(Enter,Exit)|ユーザーフォーム入門(1月13日)
Rangeオブジェクトの論理演算(差集合と排他的論理和)|VBA技術解説(1月10日)
イベントプロシージャーの共通化|ユーザーフォーム入門(1月7日)
コントロールの動的作成|ユーザーフォーム入門(1月6日)
Evaluateメソッド(文字列の数式を実行します)|VBA技術解説(1月5日)
エクスポート(PDF/XPS)|VBA入門(1月2日)
分析関数(OVER句,WINDOW句)|SQL入門(12月25日)
取得行数を限定するLIMIT句|SQL入門(12月21日)
外部ライブラリ(ActiveXオブジェクト)|VBA入門(12月21日)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
5.変数宣言のDimとデータ型|VBA入門
6.繰り返し処理(For Next)|VBA入門
7.マクロって何?VBAって何?|VBA入門
8.セルに文字を入れるとは(Range,Value)|VBA入門
9.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説
10.ひらがな⇔カタカナの変換|エクセル基本操作



  • >
  • >
  • >
  • マクロの呪文を追加してボタンに登録(ScreenUpdating)

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
    掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



    このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
    本文下部へ