- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:JavaScriptで書き出したオートシェイプにテキストを挿入したいの)
JavaScriptでオートシェイプにテキストを挿入する方法
このQ&Aのポイント
- JavaScriptで書き出したオートシェイプにテキストを挿入する方法を教えてください。
- 書き出したオートシェイプにテキストを挿入する方法がわかりません。具体的なソースコードを教えてください。
- ExcelのシートにJavaScriptでオートシェイプを書き出す方法と、その後のテキストの挿入方法を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 回答がないみたいなので… 適当に試行錯誤で出来ただけなので、正しい方法かどうか不明です。 (今、VBAのヘルプが壊れてて何も確認できない) sheet.Shapes("AutoShape 1").TextFrame.Characters().Text = 'hoge'; でも、通常は「AutoShape 1」という名前を当てには出来ないでしょうから、(ご提示の場合は新規なので、まずそうなるけど) var shape1 = sheet.Shapes.AddShape(105, 123, 37.5, 151.5, 94.5); shape1.TextFrame.Characters().Text = 'hoge'; みたいな方がよろしいのでは? 最初にも書きましたが、正しい方法かどうかわからないので、あくまでもご参考までに。 >※またもやJavaScriptで解決したいです。 ↑MSの独自拡張部分なので「JScript」ですね。
お礼
返答遅くなりまして申し訳ありません。 あれから自分なりにイロイロと工夫してなんとか解決方法見つけました。 ※マクロ編集画面やオブジェクトブラウザなどから類推して動くようになりました。 その方法とは、 1)生成したオブジェクトを選択状態にする。 2)そのオブジェクトにテキストを設定するです。 ソースは以下のようになります。 // OLEオブジェクトの生成 var excel = new ActiveXObject( "Excel.Application" ); excel.visible = true; var sheet = excel.Workbooks.Add().activeSheet; // オートシェイプ挿入:引数の105は吹き出しを示す var myShape = sheet.Shapes.AddShape(105, 123, 37.5, 151.5, 94.5); // オートシェイプを選択状態に myShape.Select(); // 選択中のオートシェイプにテキストを設定する this.excel.Selection.Characters.Text = "ほげほげ"; です。 fujillin 様の方法に近い形だと思います。 var shape1 = sheet.Shapes.AddShape(105, 123, 37.5, 151.5, 94.5); shape1.TextFrame.Characters().Text = 'hoge'; は試していませんが、試してみて動くようでしたら、こちらを使わせていただきます。 ※残念ながら、現在Win環境が手元になく試せません。 ご返答いただいて、誠にありがとうございました。 JavaScriptでなく、JScriptであるということも肝に命じて精進していきます。
補足
ujillin 様 var shape1 = sheet.Shapes.AddShape(105, 123, 37.5, 151.5, 94.5); shape1.TextFrame.Characters().Text = 'hoge'; の書式できました! ありがとうございました。