JavaScriptで書き出したオートシェイプにテキストを挿入したいのですができません。
先日、ExcelのシートにJavaScriptでオートシェイプを書き出す方法を質問した者です。
今度は書き出したオートシェイプにテキストを挿入したいのですが上手くいきません。
どうすれば良いのか教えてください。
※またもやJavaScriptで解決したいです。
なお、現在悩み中のソースは以下のようです。
※教えて頂いたソースほとんどそのままですが...
function createShapes() {
var excel = new ActiveXObject( "Excel.Application" );
excel.visible = true;
var sheet = excel.Workbooks.Add().activeSheet;
// オートシェイプ挿入:引数の105は吹き出しを示す
sheet.Shapes.AddShape(105, 123, 37.5, 151.5, 94.5);
// ココでメソッド、プロパティがないとエラーになってしまう...
sheet.Shapes("AutoShape 1").Characters.Text = "ほげほげ";
}
よろしくお願いします。
No.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」ですね。
この回答への補足
ujillin 様
var shape1 = sheet.Shapes.AddShape(105, 123, 37.5, 151.5, 94.5);
shape1.TextFrame.Characters().Text = 'hoge';
の書式できました!
ありがとうございました。
返答遅くなりまして申し訳ありません。
あれから自分なりにイロイロと工夫してなんとか解決方法見つけました。
※マクロ編集画面やオブジェクトブラウザなどから類推して動くようになりました。
その方法とは、
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であるということも肝に命じて精進していきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- その他(Microsoft Office) Wordを変換してExcelに挿入 2 2022/07/04 23:59
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript セレクトボックスを選んで点数を出した後、4段階評価するプログラム 1 2022/07/03 07:23
- JavaScript 空白で入力フォームのボタンをクリックしたら、ブラウザの上部からjavascriptで 表示されるアラ 1 2022/05/20 11:16
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- Excel(エクセル) Excelで、あるセルだけ入力させたい、オートフィルターも使わせたい際のシートの保護 2 2023/02/23 15:14
- Excel(エクセル) excelのオートシェイプを使って 1 2023/01/03 16:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ボタンをクリックすると数が増...
-
正規表現で半角数字1桁のみを全...
-
static constメンバ変数(配列)...
-
Linux バイナリ実行できない "...
-
Boolean型配列中のTrueの有無を...
-
JavaScriptで書き出したオート...
-
Excel VBA の ChangeFileAccess
-
【正規表現】【javascript】CR...
-
HTTPSのとき":"が"%3A"ではなく...
-
Imageコントロール vba
-
javascriptで文字挿入でtoggle...
-
【Jquery】changeイベント毎にa...
-
Vb.netのグローバル変数の宣言...
-
MFCのキャプション変更
-
VC++のちらつき防止方法
-
static と externについて
-
PDFファイルをWEB上で見れるよ...
-
idを使わずにonclickで自身の要...
-
同じIDで定義した要素の配列を...
-
ActiveXobjectが作成できない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Boolean型配列中のTrueの有無を...
-
Linux バイナリ実行できない "...
-
ASP+アクセスでのSQLコメントに...
-
「オブジェクトが必要です。」...
-
Excel VBA の ChangeFileAccess
-
static constメンバ変数(配列)...
-
【Jquery】changeイベント毎にa...
-
HTTPSのとき":"が"%3A"ではなく...
-
【正規表現】【javascript】CR...
-
C# .NET DataGridView の行を追...
-
サブウインドウから親ウインド...
-
Vb.netのグローバル変数の宣言...
-
ボタンをクリックすると数が増...
-
MFCのキャプション変更
-
Perlから送信するメールのヘッ...
-
正規表現で半角数字1桁のみを全...
-
Imageコントロール vba
-
Option Strictと構造体とArrayL...
-
関数を呼び出すHTMLタグ<body o...
-
onclick指定関数の引数へローカ...
おすすめ情報