ツイッター出題回答
「マクロの登録」で登録できないプロシージャーは?

ExcelマクロVBAとエクセル関数についての私的雑感
最終更新日:2022-06-23

「マクロの登録」で登録できないプロシージャーは?


ツイッターで出題した問題です。


マクロはボタン等に「マクロの登録」で登録して使う場合が多いです。
どのようなプロシージャーかによって「マクロの登録」での登録方法を違ってきます。
このやり方を知っているかどうかを問うVBA問題です。


出題ツイート

【VBA問題】
以下うち、ボタンにマクロ登録できないプロシージャーを選んでください。
Privateプロシージャー
・Privateプロシージャー
・Optionalではない引数のあるSub
・引数のあるFunction
・にゃんともいえ ない

Excel VBA問題
https://twitter.com/yamaoka_ss/status/1539608064365449216


解説ツイート

かなり拮抗した結果になりました。
少し想定外ではありました。
まず、
Privateモジュールをボタンに登録することは簡単です。
「マクロの登録」のダイアログに一覧表示されていないだけなので、マクロ名(M):に直接プロシージャー名を入力するだけです。


同一プロシージャー名が複数のモジュールに存在する場合は、モジュール名.を付けて、
モジュール名.プロシージャー名
このように指定します。
Privateなら全て手入力になります。
Functionは戻り値を使わなくても構わないのでSubと同じです。


では引数がある場合の登録方法です。
'モジュール名.プロシージャー名 引数1,引数2,…'
(モジュール名.は必要なければ省略可能)
このように'(シングルクォート)で囲みます。
引数は半角空白を空けた後に,カンマ区切りのリストで指定します。


ということで、
・Privateプロシージャー
・Optionalではない引数のあるSub
・引数のあるFunction
この3つはどれも登録できますので、
正解は、
「にゃんともいえ ない」
「ない」の手前に半角空白を入れといたのですが・・・


Excel VBA問題
https://twitter.com/yamaoka_ss/status/1539934788340985856




同じテーマ「ツイッター出題回答 」の記事

数値変数の値を別の変数を使わずに入れ替える

ツイッターで出したエクセルVBAのお題です。数値が入っている3つの変数を、他の変数を使わずに値を入れ替えるという問題です。問題を出したツイート 【VBA問題】 変数a,b,cに整数値が入っています。これをa>b>cとなるように値を入れ替えてください。
Rangeオブジェクトを受け取り"行数,列数"で埋める
ツイッターで出したエクセルVBAのお題です。Rangeオブジェクトを受け取り、"行数,列数"の値(数式ではなく値)で埋めるVBAを書く問題です。問題を出したツイート 【VBAお題】 Rangeオブジェクトを受け取り、添付のように"行数,列数"の値(数式ではなく値)で埋めてくだ…
数式の関数の使用回数、関数名を配列で返す
ツイッターで出したエクセルVBAのお題です。セルに入っている計算式に使われている関数(ユーザー定義含む)を数えてみましょう、というお題になります。問題を出したツイート 【VBAお題】セルに計算式が入っています。
日付型と通貨型のValueとValue2について
ツイッターでVBAに関する問題を出しました。問題としてはValueとValue2について問うもので、日付型と通貨型が問題の焦点になります。https://twitter.com/yamaoka_ss/status/1408259798357794817 VBA問題の出題ツイート 【VBA問題】 Rangeに対して、
小文字"abc"を大文字"ABC"に変換する方法
ツイッターで出した「VBA問題」です。小文字"abc"を大文字"ABC"に変換する方法を可能な限り列挙してください。という問題です。。出題ツイート https://twitter.com/yamaoka_ss/status/1425799283303882758 「VBA問題…
オブジェクトのByRef、ByVal、Variant
ツイッターで出題した問題です。オブジェクトを引数にした場合の、ByRef、ByValの違いと、仮引数にVariantを指定した場合の動作違いを問う問題です。出題ツイート 【VBA問題】 Submain() Range("A1")=1 DimaAsRange:Seta=Range("A1…
「マクロの登録」で登録できないプロシージャーは?
ジャグ配列から順列を作成する
ツイッターで会話したので、それを実際にVBAで書いてみました。ジャグ配列(配列の要素に配列が入っている)から、要素を1つずつ取り出して全順列を作成します。競馬で言ったら、1列目、2列目、3列目を指定した3連単のようなものです。
シート内の全テーブルを1つに統合
ツイッターで出題した問題です。シート内にある複数のテーブルを、1つのテーブルに結合して別シートに出力します。出題ツイート 【VBA問題】 「Sheet1」のランダムな位置に複数のテーブルがあります。(添付1) テーブルは全て同一形式(列数・ヘッダーが同じ)です。
VBA穴埋め問題「On Error GoToの挙動」
ツイッターで出題したVBAの問題です。OnErrorGoToを使った場合に、2度目のエラー発生に対応するにはどうしたら良いかを問うVBA問題です。出題ツイート 【VBA問題】 さて問題です。「にゃん」と言えるようにするには、①に何を入れたら良いでしょうか? ✅OnErrorGoTo0 ChrW(9…
数珠順列(配置に条件付き)を全て出力する
ツイッターで出したエクセルVBAの問題です。一般的には数珠順列という問題になるそうです。赤玉、白玉、青玉 それぞれの個数を決めて、配置に制限を設けた時の全ての配置パターンを出力するという問題です。出題元のツイート https://twitter.com/yamaoka_ss/status/1559809556494…


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

数字(1~50)を丸付き数字に変換するVBA|VBA技術解説(2022-11-15)
TEXTAFTER関数(テキストの指定文字列より後ろの部分を返す)|エクセル入門(2022-11-14)
TEXTBEFORE関数(テキストの指定文字列より前の部分を返す)|エクセル入門(2022-11-14)
TEXTSPLIT関数(列と行の区切り記号で文字列を分割)|エクセル入門(2022-11-12)
LAMBDA以降の新関数はVBAで使えるか|VBA技術解説(2022-11-11)
WRAPCOLS関数(1次元配列を指定数の列で折り返す)|エクセル入門(2022-11-08)
WRAPROWS関数(1次元配列を指定数の行で折り返す)|エクセル入門(2022-11-08)
EXPAND関数(配列を指定された行と列に拡張する)|エクセル入門(2022-11-07)
TAKE関数(配列の先頭/末尾から指定行/列数を取得)|エクセル入門(2022-11-06)
DROP関数(配列の先頭/末尾から指定行/列数を除外)|エクセル入門(2022-11-06)


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

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.繰り返し処理(For Next)|VBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
6.Excelショートカットキー一覧|Excelリファレンス
7.並べ替え(Sort)|VBA入門
8.エクセルVBAでのシート指定方法|VBA技術解説
9.マクロって何?VBAって何?|VBA入門
10.ExcelマクロVBAの基礎を学習する方法|エクセルの神髄




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


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



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