マクロの実行ボタンをフローティングボタンとして設置します。
エクセルワークシート上への設置では、スクロール時にボタンが画面から消え不便です。
フローティングボタンにすれば問題解決、利便性が向上します。
こんにちは、じゅんぱ店長(@junpa33)です。
エクセルVBAでプログラム(マクロ)を作って、定型操作を簡単にできても、
マクロを実行するときは、そのままでは ” たった1クリックで実行 ” というわけにはいきません。
トコトン簡単にしたい派は、このままではちょっとまだナットクできない人も多いかも・・・
エクセルブックをパスワードロックするユーティリティなマクロ
別々に保存のシートを一つのブックにまとめる。シート移転マクロ
シート名一覧表作成マクロをブック登録して色んなエクセルで使う
Excel ユーザー定義用紙の印刷設定 問題解決のVBAコード
マクロの実行を1クリックで!フローティングボタンをユーザーフォームで作る
Option Explicitとは何、必要? VBA記述で不注意なエラーを防止する
Excelで書類のナンバリング刻印は瞬殺作業になる。紙ベースのユーザー必見
エクセル文書の見出し 先頭文字を大きく目立たせるVBA Characters
エクセルVBA セル入力の文字を大きくする、太くする、色変更の簡単コード
コンテンツ
マクロの実行を1クリックで行いたい
マクロの実行を1クリックで行いたければ、どんな方法がありますか?
「Worksheet上にコマンドボタンを作ってマクロ登録すればいい。」
ねこ氏
うささん
「そうすると、設置場所で下敷きになったセルが使えなくなる。とか、画面スクロールしたらボタンが見えなくなるとか。」問題もあり・・・
「・・ん~ん それもイマイチですねェ。」
ねこ氏
せっかくだから、
定型作業をマクロで自動化したいのであれば、ただそれだけではなく、
マクロを実行する時点の手間も少なくすることを考えておきましょう。
ショートカットキーでも、
『Alt』+『F8』を押して、マクロウインドウを出現させて、上下スクロールキーからの実行ボタン
これでも面倒と思う人は、少なからずいます。
求めているアクションは1クリックです。
フローティングボタンをユーザーフォームで作る
Worksheet(ワークシート)上でフローティングする実行ボタンがあれば、問題は一挙に解決します。
フローティングする実行ボタンの作成という手間が、最初に余分にかかってしまいますが、
一旦作成すれば、後は ” 楽チンそのもの ” です。
STEP3までに完了した作業だけでは、実際に作業中のエクセルブックを操作しても、
フローティングボタン(ユーザーフォーム)が表示されません。
このエクセルブックに対して、『何らかの操作がされた時』に、
フローティングボタン(ユーザーフォーム)が表示されるように仕組みます。
STEP1 ユーザーフォームでボタンを作る
このSTEPの内容は、100%フローティングボタンのデザイン(ビジュアル)に関することになります。
基本、好き勝手にデザインしていただいて結構です。
ですので、これからのものは一例にすぎません。
Visual Basic Editor(ビジュアルベーシックエディタ VBE)の画面を表示して
挿入からユーザーフォームを選択クリックします。
ユーザーフォームが表示されたら、ツールボックスから「コマンドボタン」を選択します。
ユーザーフォーム上に、好きな大きさでコマンドボタンを設置してください。
コマンドボタンを設置したら、
表示からプロパティウインドウを選択し、クリックします。
プロパティウインドウが表示されましたら、「オブジェクト名」と「Caption」と「Font」を変更します。
変更名は適宜行ってください。
STEP2 クリックで実行されるマクロを準備する
このSTEP2では、フローティングボタンを押して何を実行するのか、その「中身」となるマクロを準備します。
すでに、出来ている場合は、このSTEP2の項目は不要です。
VBEの画面で、挿入から標準モジュールを選択して、クリックします。
今回は例題ですので、簡単にコードを作成しました。
選択したセルに「★」マークを付けて、次に斜め1つ下に選択セルが移動します。
Sub ★マークスタンプ()
ActiveCell.Value = "★"
ActiveCell.Offset(1, 1).Select
End Sub
STEP3 実行されるマクロとボタンを連携させる
フローティングボタンが押された時にマクロが実行されるように、
フローティングボタンに関連頭けるVBAコードを記述します。
Private Sub 実行ボタン_Click()
Module1.★マークスタンプ
End Sub
ユーザーフォーム(実行ボタン)モジュールに関連付けのコードを記述します。
ボタンをクリックしたというイベントに対して、Callステートメント(表記省略)でModule1に記述した「★マークスタンプ」プロシージャーが発動されます。
STEP4 ユーザーフォームを画面表示するコード設置
STEP3までで、フローティングボタンのセッティング作業は完了しました。
後はコードを呼び出せばフローティングボタンをしようすることは可能です。
このSTEP4ではもう少し使い易くするために、
実行させたいマクロが記述されているエクセルBOOKを操作したときに、
「フローティングボタン」が自動で画面表示されるようにプログラムします。
内容的にはごく簡単です。
今回は、Sheet1が表示されたときに「フローティングボタン」が自動で画面表示されるようにしています。
Sheet1のシートモジュールに記述します。
Private Sub Worksheet_Activate()
実行ボタン.Show vbModeless
End Sub
Sheet2やSheet3でも同じように表示させたいという時は、上の同じコードを、シートモジュールにコピペしてください。
エクセルBOOKが開かれたときに、この「フローティングボタン」を表示させたいという時は、ブック(ThisWorkbook)モジュールに記述することになります。
Private Sub Workbook_Open()
実行ボタン.Show vbModeless
End Sub
と記述します。
STEP5 完成するとこうなる!
作成作業が終了して、実際に動かしてみます。
ほんとにボタンだけです。フローティングもキッチリと機能しています。
実行ボタンを2回連続で押してみました。
STEP4の作業のところで、
「実行ボタン.Show vbModeless」と記述しましたが、実は、これが結構キモになっています。
ユーザーフォーム(フローティングボタン)表示状態では、
「vbModeless」にしておかないと、シート上のセル操作が出来なくなってしまいます。
間違っても「.Show vbModeless」ではなく「.Show」だけの記述にしてはいけません。シート操作が出来なくなってしまいます。
マクロ実行のためのフローティングボタン設置 のまとめ
マクロを実行するために、その実行ボタンをフローティングボタンにしておくと結構便利なことが多いです。
「画面スクロールでも、実行ボタンが無くならない」というのは魅力です。
簡単作業ですので、本体マクロ作成時には、同時に、フローティング実行ボタンも付け加えておきましょう。
エクセルVBAの独習には動画学習という方法もあります。 目と耳両方を使って学習することでさらに勉強効率を上げることもできます。
エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。
今回の記事はここまでです。 最後までご覧いただき有難うございました。
アンケートでポイ活しよう!!
アンケートに答えれば答えるほど ”使える” ポイントがたまります。