(license)みなさん、こんにちは!タカハシ(@ntakahashi0505)です。エクセルVBAでプログラムを動かす際にボタンを設置しますよね。ボタンを設置しておけば、わざわざVBEを呼び出す必要もなくなりますし、開発タブを追加していない方でもプログラムを動作させることができるようになります。そんなボタンですが、こうは思ったことはないですか?ボタンに引数を渡せたらなぁ...と。ほとんど同じような処理なのに、わざわざボタンごとにプロシージャをしたためるのもバカバカしいというとき、ありますよね。今回はその悩みにお応えして、ボタンに登録したVBAマクロを引数を渡しながら実行する方法についてお伝えします。一般的なボタン設置とマクロの登録方法ボタンに応じた引数を渡してマクロを呼び出す引数があったりなかったりする場合Optionalキーワードで引数を省略可能とするまとめ一般的なボタン設置とマクロの登録方法まずは引数を渡さない場合のボタン設置とマクロの登録方法をおさらいしておきます。このような簡単なSubプロシージャを作ります。Subこれを新規で作成したボタンにマクロ登録していきます。ボタン(フォームコントロール)」です。トラップ的な感じですぐ下に「ActiveXコントロール」のボタンもあるのですが、VBAの神様いわく一生触らなくて良いとのことです。フォームコントロールだけ使いましょう。2015-09-25AmazonKindle楽天ブックス設置するボタンの大きさをドラッグで決めると、マクロの登録ウィンドウが開きます。ここで登録したいマクロを選択してOKです。これでボタンへのマクロの登録は完了です。ボタンを押せばちゃんと実行がされます。「ボタンBが押されました」とするにはどうすれば良いでしょうか?わざわざそれぞれのボタン用のSubプロシージャを作ると処理が重複してしまいますので望ましくありませんね。この場合は、それぞれのボタンに応じた引数を渡した上でマクロを呼び出せばOKですね。引数が文字列型、日付型の場合は引数をダブルクォーテーションで囲む引数を複数指定したいときはカンマで区切るマクロ名と引数全体をシングルクォーテーションで囲むとなります。今回のボタンAについてはと設定すればOKですね。Subプロシージャのほうも引数の受け皿を用意する必要があります。Subボタンに設定した引数はstrという文字列型の変数に格納されます。その変数を使ってMsgBoxの文字列を生成しています。こちらを実行してみますとボタンに応じたメッセージが表示されます。別の例を考えてみましょう。こちらの図のように二つのボタンを配置します。ボタンには引数を渡さず、ボタン2にだけ整数2を引数を渡したいというときがあるとします。呼び出すSubプロシージャはこんなふうに用意してみました。Subしかし、ボタン2は無事に実行できるのですが、ボタンのほうを押すと「引数は省略できません」とエラーになってしまいます。Optionalキーワードで引数を省略可能とするこのように引数があったりなかったりする場合は、受け取る側でOptionalキーワードをつけて省略可能な引数であることを明示します。Subプロシージャをこのように変更します。Subこれによりnumという変数は省略可能で、省略した場合は1が代入されるという形になります。こちらでボタンを押してみますと省略した場合の数値1が適用されて無事に実行されました。まとめボタンに登録したVBAマクロを引数を渡しながら実行する方法についてお伝えしました。Optionalキーワードで引数を省略することもできます。その他、引数の渡し方は色々とできますので、作成するプログラムに合わせて工夫をしてみてくださいね。プランノーツ代表、コミュニティ「ノンプロ研」主宰。ITで日本の『働く』の価値を上げる!」をテーマに、VBA&GASの開発、講師、執筆などをしております。→詳しいプロフィールはコチラ★ご依頼・ご相談はお気軽にどうぞ!→お問い合わせはコチラ★フォロー頂ければ嬉しいです。「コミュニティ+講座」形式で継続性&教え合える環境も提供。!ノンプログラマーがプログラミングスキルを身に着ける支援ををするコミュニティ。セミナー・もくもく会・Facebookグループのサポートで「自らで学び続ける力をつける」支援、「教え合うことで学びの価値を上げる」場の提供をしています。【エクセルVBA】Protect/Unprotectメソッドでシートの保護設定と解除をする方法ProtectメソッドとUnprotectメソッドを使って、VBAでシートの保護を設定したり、解除したりする方法をご紹介しています。VBAで作成したレポートを変更させたくない!という時にこのメソッドを加えておけば、シートの保護までVBAがやってくれますよ。シートの保護を忘れずに設定したい!という時におすすめです。VBA」!きちんと並ぶのか...ドキドキを抱えながら、2日間かけまして都内の11の書店さまにご挨拶まわりしてまいりましたので、レポートをお送りします。【エクセルVBA】255文字を超えたらどうなるの?入力規則のリスト設定方法あれこれエクセルの入力規則にあるリストで作成できるドロップダウンリスト。ドロップダウンリストに表示したい文字列は255文字の制限がありますが、255文字を超えて文字列をドロップダウンリストに指定するとどうなるのか、この文字制限はどの指定方法に適用されるのか?を検証しています。初心者向けエクセルVBAのシリーズとして請求書を作成するマクロの作り方をお伝えしています。今回は、エクセルVBAで新たなブックを開く方法です。コレクションやWorkbooksプロパティについても解説しますよ。2018.03.04Excel・VBA活用術エクセルVBAでグラフの元となるデータ範囲を次々と変更するプログラムエクセルVBAで作ったグラフをPowerPointに貼り付けていこうということでシリーズで進めています。今回はエクセルVBAでグラフのデータ範囲を次々と指定していくプログラムを紹介します。2016.10.10Excel・VBA活用術エクセルVBAでCSVを読み取る初心者向けの最も簡単なプログラムエクセルVBAでCSVファイルを取り込む方法について、まずはCSVファイルの内容を1行ずつ取り込んんでデバッグプリントするという初心者向けのとっても簡単なプログラムについて解説をしていきます。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント109セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント109セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。Scriptが「V8ランタイム」をサポート!モダンなECMAScript構文が使えるようになった2020.02.072020.02.08GASでコピーしたGoogleスライドのプレゼンテーションを取得する方法2020.02.052020.02.05Facebookページいつも隣にitのお仕事タイトルとURLをコピーしました。