Excelで申請書を作成し、エラーチェックのプログラムを埋め込んでいても、マクロの設定を行っていないと、VBAを実行することができません。
今日は全員にちゃんとマクロ入りのExcelファイルを実行させる方法です!!
目次
やりたいこと
エクセルのオプションにて、以下の設定にしていない限り、Excelを開いたタイミングではVBAの実行ができないようになっています。
以下にように、警告して、VBAマクロを無効にする という設定にしている場合、エクセルを開くと、黄色いバナーが表示されて、コンテンツの有効化をクリックしない限り、マクロを実行することができません。
まあ、このコンテンツを有効化を押してもらえれば済む話なのですが、毎回押すのも面倒ですし、クリックしなければマクロを実行できないとなると、申請書に埋め込んだVBAのエラーチェックも実行できないということになってしまいます。。
ということで、今回は絶対にマクロの設定を有効化させたい人に向けた設定方法です。目から鱗ですよ~。
実装したExcelファイルのご紹介
まずは以下のエクセルファイルをご覧ください。
申請書のサンプルです。
この申請書にエラーチェックのVBAマクロが埋め込まれていると仮定しましょう。
このファイルを開くときにマクロを有効化してほしいという状況です。
既に対処法を設定していますので、見てみましょう。以下のファイルを起動します。
※エクセルにはVBAを警告して無効にする設定をしています。
以下のようなシートが表示されました。前述の申請書シートがないように見受けられます。
一方、VBAマクロを有効にして実行してみます。
以下のように申請書のシートが表示されました。
マジックのようですよね!!一体どのようになっているのか、解説していきます。
仕組みの解説
仕組みはいたってシンプルなのです。シートが二つあります。
そして、ファイルを起動したタイミングで以下のプログラムが実行されるように仕込んでいます。
VBAマクロが有効化されている→申請書シートを表示し、マクロを有効化してくださいシートを非表示にする
VBAマクロが無効化されている→マクロを有効化してくださいを表示し、申請書シートを非表示にする
ファイルを起動したタイミングでVBAマクロを実行する方法はこちらの記事に掲載しておりますので、詳細はご確認くださいませ。
本機能を他のエクセルファイルに移植する方法
1.サンプルファイルをダウンロードする
以下のファイルをダウンロードしてください。前述のエクセルファイルを取得できます。
2.移植したいファイルに「マクロを有効化してください」シートをコピーする
3.VBAのコードをコピーする
1.Alt + F11を押下してVBEを起動し、マクロの設定を有効にしないと開けないファイルの「ThisWorkboook」をダブルクリックする
2.ダブルクリックした後に表示されるコードを移植したいファイルの「ThisWorkboook」に貼り付ける
3.引数を設定する
さいごに引数を設定します。
以下のダブルクォーテーション内の文字を修正してきます。
protectPassword ・・・ エクセルファイル自体の保護設定パスワード
mainSheet ・・・ VBAマクロの設定を正しく行っていた場合に表示するシート名
alertSheetについては変更しなくてもよいですが、アラートシートのシート名を変更した際にはこちらも修正しましょう。;
これで設定は完了です。ファイルを閉じましょう。
他のフォルダに移植したファイルを実行してみると、正しくアラートシートを表示させることができました。
さいごに
割と簡単な設定だったと思います!ぜひ試してみてください・・!
ではまた!