• ベストアンサー

ExcelVBAの関数の呼び出し方

お世話になります。 あるExcelシート「A」であるセルが押されたら、 別のExcelシート「B」のマクロを押されたセルの情報を引数として呼び出す方法を探しています。 簡単な例等や、参考URLでも結構です、何かご存知の方いらっしゃったらよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.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)
回答No.2

下の例は、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

noname#1752
質問者

補足

ありがとうございます、もうひとつ問題がありまして 異なるBook間でのマクロの呼び出しという問題があります。これもシート間と同じような感じなのでしょうか?

  • taka1014
  • ベストアンサー率30% (16/52)
回答No.1

fj.comp.applications.excelなどのNews Groupで 調べたり、聞いてみた方が正確に解ると思いますよ。 マイクロソフトのHP内にもExcel用のNews Groupが あります。

関連するQ&A

専門家に質問してみよう