IEの右クリックメニューに項目を追加した時のVBスクリプト

このQ&Aのポイント
  • IEの右クリックメニューに項目を追加するVBスクリプトの作成方法と、追加した項目をクリックした際に書籍検索ページに移動する方法を教えてください。
  • VBスクリプトを使用して、IEの右クリックメニューに項目を追加する方法と、その項目をクリックした時に書籍検索ページに移動して検索結果を表示する方法について教えてください。
  • VBスクリプトを使ってIEの右クリックメニューに項目を追加し、項目をクリックした際に書籍検索ページに移動して検索結果を表示する方法を教えてください。
回答を見る
  • ベストアンサー

IEの右クリックメニューに項目を追加した時のVBスクリプト

はじめまして宜しくお願いします 文字列を選択した状態で右クリックするとメニューに(この書籍を検索する)という項目を追加しました。 この項目をクリックすると書籍検索ページに移動します。書籍検索ページにはテキストボックスと検索ボタンがあります。通常はテキストボックスに検索したい書籍を入力して検索ボタンを押すとhttp://localhost/booksurch.php(検索結果ページ)にとぶ様になってます。書籍検索ページに移動する事は出来たのですが移動してからexternal.menuArguments.document.selection.createRange().text で取得した文字を検索結果ページに渡したいのですが全く解りません。どなたか教えていただけませんでしょうか?作りかけのソースです。 <SCRIPT LANGUAGE="VBScript"> <!-- Dim strSelText Dim strOpenUrl strSelText =external.menuArguments.document.selection.createRange().text If Len(strSelText) Then strOpenUrl="http://localhost/booksurch.html" open strOpenUrl Document.ValidForm.nm.Value =strSelText document.ValidForm.submit() End If // End --> </Script>

  • uder1
  • お礼率38% (23/59)

質問者が選んだベストアンサー

  • ベストアンサー
noname#35109
noname#35109
回答No.1

手動で検索したとき, http://localhost/booksurch.php の後に何か付きませんか? 例えば「Google」で『goo』を検索すると, http://www.google.co.jp/search?hl=ja&q=goo&lr= となります。 変数をCGIやPHPにGetで渡すしくみにしてある場合,元のURLの後に?~~と続きます。これすべてがURLです。 ここまでを, 変数strOpenUrlに格納しないと検索結果が出ません。 下の参考URL↓を参考にしてみてください。 URLエンコードも関係するかもしれません。 http://www.geocities.co.jp/SilkRoad/4511/vb/sample/google.txt 変数をPostで渡すしくみである場合については良くわかりません。

参考URL:
http://backno.mag2.com/reader/BackBody?id=200411292020000000044778000
uder1
質問者

お礼

早速のご返答ありがとうございます。 変数をCGIやPHPにGetで渡すしくみにしてある場合,元のURLの後に?~~と続きます。これすべてがURLです。 ここまでを, 変数strOpenUrlに格納しないと検索結果が出ません とても参考になりました。 もう少し皆様のご意見を待ってみます ありがとうございました

関連するQ&A

  • 選択した部分を新しいウィンドウで開く方法

    選択した部分をkeyを押して新しいウィンドウで開くスクリプトを作っているんですが、下記のような形でIEの方はできたのですが、firefoxでkeycodeを取得してやる方法がよくわかりませんので、教えてください。 よろしくおねがいします。 function getSelect(){  if(navigator.appName == "Microsoft Internet Explorer"){   if(event.keyCode == ○○○○){    xx = document.selection.createRange();    window.open("http://○○○○/" + xx.text , "new" , "");   }  } } document.onkeydown = getSelect;

  • VBでのIE操作

    VBでのIE操作をしようとして色々調べています。 色んなサイトを見ながら途中までは何とかできましたが、どうしてもリンク先を表示できません。 お分かりになる方いましたら、お力添えいただければ幸いです。 状況: Excel2007使用  IE7  VB初心者です。 やりたい内容: VBでIEを立ち上げる ↓ ページからリンクをクリックする (ページ上に画像が貼り付けてあって、そこにURLくっついててハイパーリンクになっている。) (セキュリティの関係でハイパーリンク先を初期で表示することはできない。) ↓ 表示されたページに検索したい項目を入力 ↓ 結果をエクセルに反映する。 以上の作業をVBで組もうと思ってます。 よろしくお願いします。 Option Explicit Sub ie_test() 'IEの起動 Dim objIE As Object Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True '処理したいページを表示します。 objIE.navigate "処理したいページ" 'ページの表示待ち While objIE.readyState <> READYSTATE_COMPLETE Or objIE.Busy = True DoEvents Wend '開かれたIEを探す。 Dim objSHELL As Object Dim objWINDOW As Object Dim newIE As InternetExplorer Dim wait_time As Date Dim yCNT As Long Dim i As Integer '表示待ち wait_time = DateAdd("s", 2, Now()) Do While Now() < wait_time DoEvents Loop 'リンクの貼ってある画像をクリック For i = 0 To objIE.document.images.Length - 1 If InStr(objIE.document.images.Item(i).outerHTML, "image/btn131b1.gif") > 0 Then objIE.document.images.Item(i).Click End If Next '表示待ち wait_time = DateAdd("s", 2, Now()) Do While Now() < wait_time DoEvents Loop 'シェルのオブジェクトを作成する Set objSHELL = CreateObject("Shell.Application") Set newIE = objSHELL.Windows(objSHELL.Windows.Count - 1) Set objSHELL = Nothing '新しいウィンドウのログインボタンを押す Dim objINPUT As Object 'Inputタグ格納用 For Each objINPUT In newIE.document.all.tags("INPUT") If objINPUT.Value = "ログイン" Then objINPUT.Click Exit For End If Next '調べる項目 For yCNT = 3 To 1002 ' If Trim(Cells(yCNT, 1)) = "" Then Exit For 'A列が空白になったらループを抜ける 'ページが表示されたので処理を行います。 newIE.document.all("phone_no").Value = Cells(yCNT, 1) 'A列の文字を参照する newIE.document.all("exec").Click ※ここでオブジェクト変数。。。のエラーが発生する※ '表示待ち wait_time = DateAdd("s", 2, Now()) Do While Now() < wait_time DoEvents Loop '表示されたウインドウからデータをセットする Cells(yCNT, 2) = newIE.document.body.innerText '検索の結果をエクセルに反映 '新しいIEを閉じる newIE.Quit Set newIE = Nothing '前のIEを閉じる objIE.Quit Set objIE = Nothing Next yCNT End Sub 初心者なので色々調べたのですがわかりませんでした。。。

  • vb2010でmdbデータの任意の項目で検索

    VB初心者でソフト開発をやり始めたのですが行き詰まって困っています。 助けてください。よろしくお願いします。 ・ACCESSのmdb形式のデータは下記の構成になっています。  1列: ID      integer サイズ指定無し 自動設定   2列: 名前    string  サイズ指定無し  3列: 性別    string  サイズ指定無し  4列: 電話番号 string  サイズ指定無し  テーブル名:sampleTable  フォームにテキストボックスを項目数配置してIDを設定してボタンを押すと各テキストボックスに  検索されたデータが帰ってきて表示されるものです。 ・下記のようなプログラムで「ID」を指定して検索が出来るのは確認済みです。  これを「名前」を指定して検索出来るように改造したいのですがどのようにすれば  良いのかお教え頂きたくお願いいたします。  たぶん ”strSelectSql =・・・・・の部分かと思うのですがよろしくお願い致します。   (色々試しましたがうまくいきません・・・。) Public Class Form1 Dim MjstrPath As String Dim MjstrID As String 'ID Dim MjstrSimei As String '名前 Dim MjstrSexnam As String '性別 Dim MjstrTel As String '電話番号  '-----------------------------  'データを検索する  '----------------------------- Function MDB_SELECT(ByVal PistrMakPath As String) As Boolean MDB_SELECT = False Dim strDatbasePara As String 'データベースパラメータ Dim ObjCnn As New ADODB.Connection Dim ObjRst As New ADODB.Recordset Dim strSelectSql As String     MjstrSimei= TextBox4 strDatbasePara = "Provider=Microsoft.Jet.OLEDB.4.0;" + _ "Data Source=" + PistrMakPath + ";" + _ "Jet OLEDB:Engine Type=5;" Try ObjCnn.Open(strDatbasePara) ' strSelectSql = "Select * from sampleTable" _ ' + " where ID = " + MjstrID strSelectSql = "Select * from sampleTable" _ + " where ID = " + MjstrID  '<--- 問題か? ---        ’where 名前= "+ MjstrSimei ではだめでした ObjRst.Open(strSelectSql, ObjCnn, _ ADODB.CursorTypeEnum.adOpenKeyset, _ ADODB.LockTypeEnum.adLockOptimistic) If ObjRst.EOF Then MjstrSimei = "" MjstrSexnam = "" MjstrTel = "" Else MjstrID = ObjRst.Fields("ID").Value MjstrSimei = ObjRst.Fields("名前").Value MjstrSexnam = ObjRst.Fields("性別").Value MjstrTel = ObjRst.Fields("電話番号").Value MDB_SELECT = True End If ObjRst.Update() ObjRst.Close() Catch ex As Exception End Try ObjCnn = Nothing ObjRst = Nothing End Function  '-------------------------------------------------------------  'データを検索する  '------------------------------------------------------------- Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button2.Click Dim strMdbpath As String Dim intRecQuery As Integer strMdbpath = TextBox1.Text + "\" + TextBox2.Text MjstrID = TextBox3.Text If MDB_SELECT(strMdbpath) Then MsgBox("検索該当しました") Else MsgBox("該当ありません") End If TextBox4.Text = MjstrSimei TextBox5.Text = MjstrSexnam TextBox6.Text = MjstrTel End Sub End Class

  • VBスクリプトのthis

    私、ASPとVBSでプログラムを作成しているのですが次のような動作が実現できません。 (1)「+」を押すと、行が追加されていって (2)追加された行の「-」を押すと (3)追加された行が消える 助けてください。こんな感じです。thisがオブジェクトとして認識してくれません・・・ 【asp.asp】 <script language=vbscript> Sub InsertRow   intMax = document.all.max.value   intMax = intMax + 1   If intMax = 6 then     Exit Sub   End If   strTD="<img src='../img/img.gif' ID='addTD" & intMax & "' ONCLICK=DeleteRow(this)>"   Set Cell = document.CreateElement("TD")   Set Row = document.all("TBL").InsertRow(-1)   Row.appendChild(Cell)   Cell.InnerHTML = strTD   document.all.max.value = intMax End Sub Sub DeleteRow(e)   Row = Right(e.id, 1)   Row = CInt(Row)   intMax = document.all.max.value   If intMax = 0 Then     Exit Sub   End If   TBL.DeleteRow(Row)   For i = Row + 1 To intMax     document.all("addTD" & i).value = i - 1   Next   intMax = intMax - 1     document.all.max.value = intMax End Sub </script> ---省略--- <BODY> <HTML>   <!-- #include file="../include/include.asp" --> </BODY> </HTML> ---省略--- 【include.asp】   Response.Write "<TABLE ID='TBL'>" & vbCrLf   Response.Write " <TR><TD WIDTH='5%'>" & vbCrLf   Response.Write " <IMG SRC='../img/img.gif' ONCLICK=InsertRow()>" & vbCrLf   Response.Write " </TD></TR>" & vbCrLf   Response.Write "<TABLE>" & vbCrLf

  • マクロにてオブジェクトの線を太線にするには?

    テキストBOXとオブジェクトが数個混在しているシートにおいて、 1.テキストBOXは文字有りで枠線なし 2.オブジェクトは線あり の場合で、 ドラッグして選択した任意の個数のテキストBOXの文字は太字に                 オブジェクトの線は太線に 変更するマクロを作りたいのですが、よろしくおねがいします。 ちなみに、EXCELでは以下でOKです。 Sub aaa()   Dim SelOb As Object   Set SelOb = Selection   If TypeName(SelOb) = "DrawingObjects" Then     For Each DrOb In SelOb       If TypeName(DrOb) = "TextBox" Then        Selection.Font.Bold = True       Else        Selection.ShapeRange.Line.Weight = 1.5       End If     Next   End If   Set SelOb = Nothing End Sub

  • 右クリックイベント

    Windows XP、Access2000での開発で、サブフォーム上のテキストボックスを右リックすると (普通のクリックではなく、あえて右クリック)、 別のフォームが表示される処理を作ろうとしています。 VBAのコードを Private Sub テキストボックス名_mousedown(Button As Integer, Shift As Integer, X As Single, Y As Single)  If Button = acRightButton Then  DoCmd.OpenForm "フォーム名"  End If End Sub としているのですが、これだとマウスを離してしまうと、画面が閉じてしまいます。 普通のクリックでのイベントと同じように、右クリックで別のフォームを表示するにはどうしたらよいでしょうか? 初心者です。 どなたか分かる方教えてください!!

  • textareaの選択された文字列の取得

    HTMLエディタを作ろうとしています。 textAreaの選択された文字列の開始桁数・終了桁数を取得するにはどのようにすればよいのでしょうか? var selected_text; if (document.getSelection) // Moz { selected_text = document.getSelection(); } else if (document.selection && document.selection.createRange) // IE { rng = document.selection.createRange(); selected_text = rng.text; } alert(selected_text); これで、選択された内容は取得できたのですが、初めと終了の桁数が取れていません。 クロスブラウザに対応したく、IE6以上、FF3、Opera9.5、Safari3.1、Choromeにて動作を確認したいのですが、お分かりになる方いましたら、よろしくお願いします。

  • vbスクリプトからexcelのVBAを起動したい。

    vbスクリプトからexcelのVBAを起動したいので、初心者ながら下記のようにコーディングしましたが、excelのVBA;main()が実行できません。  <excelのVBA;main()は単独では正常に起動します。> vbスクリプトからexcelのVBAの起動の方法を教えて下さい。 そのスクリプトをタスク(元旦)に起動したいです。 <vbスクリプト コーディング> dim exlApp On Error Resume Next set exlApp = createobject("Excel.Application") exlApp.visible = true exlApp.Workbooks.Open "C:\年賀状.xls" exlApp.run "Main" If Err Then WScript.Quit End IF If Not(exlApp Is Nothing) Then exlApp.Quit set exlApp = nothing End If

  • IE8でdivのcontenteditable=trueでの擬似テキス

    IE8でdivのcontenteditable=trueでの擬似テキストボックス内から、 キャレット位置を取得しようとして、 Eclipse3.5上から、以下のJavaScript文を入力していたところ、 var elem = document.getElementById("chaTitleName2"); elem.focus(); var range = document.selection.createRange(); 「関数 createRange() は未定義です」というエラーが出ます。 このエラーを解消する方法を、ご存知の方がいらっしゃいましたら、 ぜひ教えてください。 (もしくは、他の方法で、  IE8でdivのcontenteditable=trueでの擬似テキストボックス内から、  キャレット位置を取得する方法をご存知の方がいらっしゃいましたら、  ぜひ教えてください) お世話になります。 宜しくお願い致します。

  • 関数化のやり方

    function bold(){ if(document.all){ //IE var str=document.selection.createRange().text; if (str != "") { document.selection.createRange().text="<b>" + str + "</b>"; } else { document.form1.CBBE_TEXT.value += "<b></b>" } } else { //Firefox var el=document.getElementById('text'); var sPos = el.selectionStart; var ePos = el.selectionEnd; var str = el.value.substring(sPos, ePos); el.value = el.value.substring(0, sPos) + "<b>" + str + "</b>" + el.value.substr(ePos); } } function italic(){ if(document.all){ //IE var str=document.selection.createRange().text; if (str != "") { document.selection.createRange().text="<i>" + str + "</i>"; } else { document.form1.CBBE_TEXT.value += "<i></i>" } } else { //Firefox var el=document.getElementById('text'); var sPos = el.selectionStart; var ePos = el.selectionEnd; var str = el.value.substring(sPos, ePos); el.value = el.value.substring(0, sPos) + "<i>" + str + "</i>" + el.value.substr(ePos); } } を <input type="button" value="太字" onclick="bold()"> <input type="button" value="斜字" onclick="italic()"> で制御しています。 関数化できませんか?

専門家に質問してみよう