- ベストアンサー
Excel:「フォーム」のボタンで引数を渡すプロシージャは呼べないですか?
Win2K、Excel97-2000-2002を使用しています。 Book1.xlsに固定文字列のメッセージボックスを表示するプロシージャ "A" を作成しました。 Book2.xlsのSheet1上に「フォーム」コントロールボックスのボタンを貼り付けました。 マクロの登録でBook1.xls!Aを指定しました。 ボタンを押下すると、固定長文字列のメッセージボックスが表示されます。 このプロシージャ "A" に引数を持たせ、 任意のセルの値を渡したいと思っているのですが、 「フォーム」コントロールのボタンでは、引数を渡すことは不可なのでしょうか。 御教授、御鞭撻の程、何卒宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
まずどんな値を引数にしたいのでしょうか? グローバル(public)で固定文字列を表示する内容を保持しておき 表示すれば良いのでは? あるいはボタンを押したプロシジャーの中に別に関数をつくるとか。 例えば現在のセル位置を引数にしたいと考えているなら 引数ではなくプロシジャー内部でセル位置を取得します。 'グローバル変数 Public A As String Private Function ArgFnc(sval As String) Call MsgBox(sval) End Function 'ボタン1を押す処理 Private Sub CommandButton1_Click() Call ArgFnc(A) End Sub _Click()はボタンを押したことに対するイベントなわけで それ以外の情報は何もありません。 VBAの仕様的に不可能と思ってください。
その他の回答 (1)
- hisako27
- ベストアンサー率9% (10/104)
>「フォーム」コントロールのボタンでは、引数を渡すことは不可なのでしょうか 不可能だと思います。 標準モジュールに共通関数を作ってはいかがでしょうか? (1)ボタンのイベントで共通関数を呼び出す。 Private Sub CommandButton1_Click() Call ボタン押下("Button1") End Sub Private Sub CommandButton2_Click() Call ボタン押下("Button2") End Sub (2)標準モジュールに共通関数を定義。 Sub ボタン押下(caption As String) Select Case caption Case "Button1" MsgBox "Button1" Case "Button2" MsgBox "Button2" End Select End Sub
お礼
ご回答、ありがとうございます。 今後の参考にさせていただきます。
お礼
ご回答ありがとうございます。 単純に文字列を渡したかったのですが、 やはりフォームコントロールでは無理なのですね。