※本ソフトの公開・サポートは終了しました。
選択範囲を含む要素を操作する例
(目次)
1.概要
ここでは、Webページ内の選択範囲を含むHTML要素を操作するスクリプトを紹介します。このスクリプトでは選択範囲からTABLE要素を取得して操作します。
スクリプトを実行すると、選択範囲を含むテーブルをGetTableTextメソッドを利用してテキスト形式でクリップボードに保存します。
ブラウザ部で表(TABLE)を選択してコピーしてから、Microsoft Excel などに貼り付けると、背景色や画像など余分な装飾もコピーされてしまいます。かといって、テキスト形式で貼り付けると、別のセルに分かれて欲しい内容が同一セルにまとめて貼り付けられたりします。
単純にテキストのみをコピーしたいときにはGetTableTextメソッドを使用すると便利です。
2.サンプルスクリプトの概要
今回紹介するサンプルスクリプトの動作内容は下記の通りです。
- アクティブなドキュメントの選択範囲を取得する
- 取得した選択範囲を含むTABLE要素を内側から順に検索する。(parentElementプロパティを利用)
- TABLE要素が見つかったら、GetTableTextメソッド を実行する
GetTableTextの第2引数を true にすると、セル内のBRタグを認識するようになります。詳細はGetTableTextメソッドのヘルプを参照して下さい。
3.ソースリスト全文(VBScript)
下が VBScript で実装したスクリプト全文になります。
スクリプトパネルの[実行されるスクリプト]欄にコピーして実行するか、お気に入りフォルダなどにスクリプトファイル(*.sbv)として保存して実行してください。
' アクティブなウィンドウの選択範囲を含むテーブル全体のテキストを ' クリップボードにコピーするスクリプト ' 選択範囲を取得 set objSel = ActiveDocument.selection ' 選択範囲を含むTABLE要素を外側に向かって検索する set objRng = objSel.createRange set objElm = objRng.parentElement do while ((objElm is Nothing) = false) if (objElm.tagName = "TABLE") then exit do end if set objElm = objElm.parentElement loop if (objElm is Nothing) then ShowMessage "TABLE が見つかりません。" else objRng.moveToElementText objElm objRng.select ClipboardText = GetTableText(objElm, false) end if
4.ソースリスト全文(JavaScript)
下が JavaScript で実装したスクリプト全文になります。
スクリプトパネルの[実行されるスクリプト]欄にコピーして実行するか、お気に入りフォルダなどにスクリプトファイル(*.sbj)として保存して実行してください。
// アクティブなウィンドウの選択範囲を含むテーブル全体のテキストを // クリップボードにコピーするスクリプト // 選択範囲を取得 var objSel = ActiveDocument.selection; // 選択範囲を含むTABLE要素を外側に向かって検索する var objRng = objSel.createRange(); var objElm = objRng.parentElement(); if (objElm.tagName == "TABLE") { objElm = objElm.parentElement; } while ((objElm != null) && (objElm.tagName != "TABLE")) { objElm = objElm.parentElement; } if (objElm == null) { ShowMessage("TABLE が見つかりません。"); } else { objRng.moveToElementText(objElm); objRng.select(); ClipboardText = GetTableText(objElm, false); }
以上です。
2007/12/11