- ベストアンサー
ExcelVBAの関数の呼び出し方
お世話になります。 あるExcelシート「A」であるセルが押されたら、 別のExcelシート「B」のマクロを押されたセルの情報を引数として呼び出す方法を探しています。 簡単な例等や、参考URLでも結構です、何かご存知の方いらっしゃったらよろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Book1とBook2を立ち上げておいて実行します。 この例は、Book1のSheet1のセルをダブルクリックすると、その値をBook2のSheet1のB2:B11に書き込みます。 Book1のシート1のコードウインドウに貼り付け ↓ Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Workbooks("Book2").Worksheets("Sheet1").Activate ActiveSheet.Book2_Sheet1_Macro Target.Value End Sub Book2のシート1のコードウインドウに貼り付け ↓ Sub Book2_Sheet1_Macro(myData As String) Range("B2:B11") = myData End Sub
その他の回答 (2)
- nishi6
- ベストアンサー率67% (869/1280)
下の例は、Sheet1のセルをダブルクリックするとそのセルの値を、Sheet2のB2:B11に書き込みます。 質問の意味はこういうことでしょうか? >あるExcelシート「A」であるセルが押されたら・・・ ということで、Worksheet_SelectionChange を使ってもSheet2のマクロを起動できますが、Sheet1で何かするたびにSheet2のマクロを実行するので Worksheet_BeforeDoubleClick にしています。また、あるExcelシート「A」、シート「B」は同一Book内にあるとしています。 ご参考に。 マクロ例です。 Sheet1のコードウインドウに貼り付け ↓ Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Worksheets("Sheet2").Activate ActiveSheet.Sheet2_Macro Target.Value End Sub Sheet2のコードウインドウに貼り付け ↓ Sub Sheet2_Macro(myData As String) Range("B2:B11") = myData End Sub
- taka1014
- ベストアンサー率30% (16/52)
fj.comp.applications.excelなどのNews Groupで 調べたり、聞いてみた方が正確に解ると思いますよ。 マイクロソフトのHP内にもExcel用のNews Groupが あります。
補足
ありがとうございます、もうひとつ問題がありまして 異なるBook間でのマクロの呼び出しという問題があります。これもシート間と同じような感じなのでしょうか?