No.6ベストアンサー
- 回答日時:
テストしてみましたが、マクロ名で引数を指定出来ないように思います。
変数 BookName を宣言セクションで宣言しておいて、事前にブック名を
代入しておき、
Public BookName As String
メニューの「ファイル1を開く」ボタンを押したとき、実行するマクロ名を
換えて(引数なしで)、そこから引数を付けて BookOpen を呼び出す方法で
どうでしょうか?
---------------------------
With Instmenu
.OnAction = "マクロ1"
---------------------------
Sub マクロ1()
BookOpen (BookName)
End Sub
こんな方法より気が付きません。
テストして頂いて有難うございます。
開くブックが複数あるのでどうしても引数が必要になってくるのです。現状では貴殿にアドバイス頂いたものは使うことはできませんが、関数に”皮をかぶせる”(?)ということは考えたことがなかったので今後の参考にさせて頂きます。
今回は有難うございました
No.5
- 回答日時:
No3 ですが、なさりたいことの、内容が分からないまま書き込んでしまいました。
どうも違うみたいですので、取り消します。この回答への補足
すいません。具体的に言うと、下記の感じでツールバーを動的に作ったのですが、
Dim Instmenu
'ツールバー「メニュー」作成
CommandBars.Add Name:="メニュー", _
Position:=msoBarTop, _
temporary:=True
CommandBars("メニュー").Visible = True
'マクロの追加
Set Instmenu = CommandBars("メニュー").Controls.Add
With Instmenu
.OnAction = "BookOpen"
.BeginGroup = True
.Caption = "ファイル1を開く"
.Style = msoButtonCaption
End With
OnActionプロパティでBookOpenにパラメータを渡すと、そんなマクロはないと怒られてしまいます。
因みにBookOpenはこのようになっています
Sub BookOpen(BookName As String)
'ブックを開く処理(引数:開くブック名)
'ユーザーフォームを隠す(再表示可)
UserForm1.Hide
'Excel表示有効にする
Application.Visible = True
'ブックを開く
Application.Workbooks.Open Filename:=ThisWorkbook.Path & "\" & BookName
Workbooks(BookName).Activate
'ブックの最大化
Book_Maximized
'ファイルへの変更無し(初期値)
ActiveWorkbook.Saved = True
End Sub
確かにマクロに登録はされていないのですが、パラメータを渡さないようにするとマクロとして認識してくれるのですよ。
…なんかわからないことをつらつらと書きましたが、ご理解してくだされば幸いです。
No.4
- 回答日時:
一番最初に実行されるSubモジュールに値を渡したいと言うことでしょうが、VBAはコンパイルしたモジュールにはならないし、モジュール名をキーボードから入力しないので、普通の、人間が場合に応じてプログラム名の後に続けて入れるパラメータは考えにくいです。
実行前に決めたセルに値をセットしてそれを使うと、パラメータ的に使えますし、またPublic、Static変数的にも使えます。
別モジュールに引数を渡すことなら、下記例はご参考になりませんでしょうか。
Sub test03()
a = 2
test021 (a)
End Sub
Sub test021(a)
MsgBox a
End Sub
test03を実行するとtest021に2が渡され、そこで「2」と表示されます。
アドバイスに感謝いたします。
申し訳ないのですが当質問に関係ない場所で使わせていただきました。
Subを使えば戻り値なしでOKなんですね。VBを中途半端に勉強しただけだったので勉強になりました。
今回は有難うございました。
No.3
- 回答日時:
Excel VBA ですよね。
「プロシージャーに引数を渡したい」ということであれば、
Function プロシージャーに記述すれば、セルの値だけに限らず、
定数なども渡せると思います。
詳しくは、ヘルプで「Function ステートメント」を調べてみたら
よいでしょう。
具体的にどういうことをなさりたいのかを書いた方が、レスしやすいかも。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ランダムで四択の問題を作る場合にvbaで何を学べばいいでしょうか。 1 2022/04/14 16:45
- その他(ブラウザ) Excel VBA seleniumのedge操作について 業務上、分からないことがございまして、先 1 2022/06/20 16:59
- Visual Basic(VBA) VBA For Each 〜 複数条件について 3 2022/10/20 20:05
- Visual Basic(VBA) tatsumaru77様 昨日回答して頂いたものです。 すみませんが、昨日の質問で1つ補足があります 1 2022/05/15 15:06
- Excel(エクセル) 初歩的な質問ですがよろしくお願いします。 Excelのユーザーフォームを作成 ユーザーフォーム内から 5 2022/04/06 20:52
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
- Excel(エクセル) Excel VBA セルの書式設定 2 2022/03/30 10:48
- Excel(エクセル) excelvbaの復元?(excel2003) 2 2023/02/08 14:16
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:00
- Visual Basic(VBA) ChatGPTに作らせたい Excel VBA 1 2023/04/05 19:56
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
白血球が多いとどんな心配があ...
-
彼女のことが好きすぎて彼女の...
-
至急!尿検査前日にオナニーし...
-
検便についてです。 便は取れた...
-
腕を見たら黄色くなってる部分...
-
口の中に黒い血の塊
-
値が入っているときだけ計算結...
-
2つの数値のうち、数値が小さい...
-
勃起する時って痛いんですか? ...
-
これって喉仏ですか? 私は女性...
-
EXCELで条件付き書式で空白セル...
-
精子が黄色?
-
【Excelで「正弦波」のグラフを...
-
MIN関数で空白セルを無視したい...
-
Excelで""で囲む方法
-
舌の裏の痛みのないプツプツの...
-
リンク先のファイルを開かなく...
-
エクセルのラベルの値(文字列...
-
エクセル指定した範囲からラン...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
至急!尿検査前日にオナニーし...
-
白血球が多いとどんな心配があ...
-
尿検査前日に自慰行為した時の...
-
検便についてです。 便は取れた...
-
彼女のことが好きすぎて彼女の...
-
腕を見たら黄色くなってる部分...
-
勃起する時って痛いんですか? ...
-
尿検査の前日は自慰控えたほう...
-
精子が黄色?
-
中出しをするとお腹が痛い・・・。
-
EXCELで条件付き書式で空白セル...
-
口の中に黒い血の塊
-
これって喉仏ですか? 私は女性...
-
2つの数値のうち、数値が小さい...
-
納豆食べた後の尿の納豆臭は何故?
-
EXCELで式からグラフを描くには?
-
小数点以下を繰り上げたものを...
-
excelでsin二乗のやり方を教え...
-
エクセル指定した範囲からラン...
おすすめ情報