どのオートシェイプがクリックされたかを知るには?

Question 72.4 Excel VBA Borad (掲示板)より Previous Next
初めまして、調べてみたのですが見つからずどなたかご教授ください。
Sub オートシェイプ作成()
Dim 個数 As Integer
    Cells.Select
    Selection.RowHeight = 13.5
    For 個数 = 1 To Sheets("sheet1").Cells(1, 1).Value
        Sheets("sheet1").Shapes.AddShape(msoShapeFlowchartAlternateProcess, _
            0, (個数 * 13.5), 40, 13.5).Select
        Selection.Name = "オートシェイプ " & 個数
        Selection.OnAction = "同じ処理"
    Next
End Sub
というようなコードで任意にオートシェイプの数を変更できるようにし、『同じ処理』という名のマクロで、どのオートシェイプから起動されたかで別の処理をさせようとしています。
つまり 『オートシェイプ1』 からの起動だった場合は 1を足す、『オートシェイプ2』 からの起動だったら 2を足す。等のようにしたいのです。
どのオートシェイプから起動されたかさえ分かればいいのですが、その方法が分かりません。
状態はマクロを実行すると seet1に
 _____
|      |   ← オートシェイプ1
  ̄ ̄ ̄ ̄ ̄
    ∫
 _____
|      |   ← オートシェイプ**(任意の数)
  ̄ ̄ ̄ ̄ ̄
となり、そのすべてのオートシェイプに 『同じ処理』 という名前のマクロが割り当てられるので、
オートシェイプ1を押して 『同じ処理』 を実行した場合は、オートシェイプ1から起動したことが分かるように 『1』 又は『オートシェイプ1』等の値を変数に格納する。
オートシェイプ2から 『同じ処理』 起動した場合は、『2』又は 『オートシェイプ2』等の値を変数に格納する。
というような処理は可能ですか? すみませんがご教授ください。
Answer   2005.1.20 もてもて
こういう事でしょうか?
Sub 同じ処理()
    x = Application.Caller
End Sub
ありがとうございました
ハイ!!そうです!(^^)!出来ました。
もてもてさん どうもありがとうございました。 おかげさまで前に進めます。 また何かありましたら宜しくお願いします。

 

Excel VBA Macro