ExcelVba の Application.caller に相当するものは JavaScript ではどう書くのでしょうか

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2006/09/20 22:26:04
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:llusall No.1

回答回数505ベストアンサー獲得回数61

ポイント35pt

Applicationオブジェクトのメンバにcallerと言うのは無いと思います。

Cellsの間違いでしょうか?

以下、参考になりますでしょうか?

<html>

<body>

<input type="button" value="XL" onclick="excel();">

</body>

</html>

<script language="JavaScript">

function excel(){

    var xlApp = new ActiveXObject("Excel.Application");

    xlApp.DisplayAlerts = false;

    xlApp.Visible = true;

    xlApp.Workbooks.Add;

    xlApp.Cells(1,1).Value = "Hello"; // A1セルに文字列をセット

}

</script>

id:kubira711

Application.caller は 例えば

PrivateSub CommandButton1_Click()

Range("A1") = Application.caller

End Sub

とかやると、 A1のセルの値が CommandButton1 という文字列となるような Applicationオブジェクトのプロパティです。よろしくお願いします。

2006/09/20 20:17:51
id:llusall No.2

回答回数505ベストアンサー獲得回数61

ポイント35pt

再回答ですみません。

Caller確かに御座いました。

すみませんです。


イベントの呼び出し元を取得するような事をしたいのでしょうか?

thisを指定すると、呼び出し元のオブジェクトを参照できます。

また、その他参考になりそうなものを記述してみました。

<html>

<body>

<input type="button" id="idHoge" name="nameHoge" value="OK" onclick="test(this);">

</body>

</html>

<script language="JavaScript">

function test(o){

    alert("イベント元要素のidは["+o.id+"]です");

    alert("イベント元要素のnameは["+o.name+"]です");

    alert("イベント元要素のvalueは["+o.value+"]です");

    alert("イベント元要素の種類は["+o.tagName+"]タグです");

    alert(arguments.callee.caller.arguments[0]); // IEは不可でした

    var e = windowEvent();

    alert("イベントの種類は["+e.type +"]イベントです");

}

function windowEvent(){

    if(window.event) return window.event;

    var caller = arguments.callee.caller;

    while(caller){

        var ob = caller.arguments[0];

        if(ob && ob.constructor == MouseEvent) return ob;

        caller = caller.caller;

    }

    return null;

}

</script>

参考

http://p2b.jp/index.php?UID=1149066600

id:kubira711

早速のご回答有難う御座います。

私の欲しがっていたものは o.id または o.name に間違いないと思います。

THANX 

2006/09/20 22:25:13

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません