• 締切済み

V2005からハイパーリンク(excel2003)の設定

現在VB2005からエクセルのハイパーリンクを設定しようとしているのですが、エラーが出て困っています。 処理は以下のとおりです。 xlSheet.Hyperlinks.add( _ Anchor:=xlSheet.Range("A1"), _ Address:="ttp://...", _ TextToDisplay:="test") エラー内容 パラメータが間違っています。 Anchorの設定が間違っているみたいなので、 いろいろ試してはいるのですが、よく分かりません。 ご教授お願いします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

エクセルVBAでは Sub test01() Worksheets("Sheet3").Hyperlinks.Add Anchor:=Worksheets("Sheet3").Range("A1"), _ Address:="http://www11.plala.or.jp/koma_Excel/contents1/mame1006/mame100601.html", TextToDisplay:="test" End Sub でうまくいきました。ご参考に。 URLとか大丈夫ですか、ttpになっているが。VBAではSelectなどが続かない場合は・・Add()の括弧は不要ですが、VB2005では引数部の前後に()が要りましたかな。

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

お使いの開発環境はVSOTではなくVB2005なのでしょうか AnchorにはRangeオブジェクトでいいと思いますからこの構文でよさそうです VB2005で Excelを表示させているならいいのですが非表示でやる場合や自動でExcelを閉じる場合など Marshal.ReleaceComObjectで参照したComオブジェクトを全て開放しないとExcelのタスクが残ってしまいますよ Excelの暗黙的に参照するオブジェクトまで面倒見ないといけないので大変ですが Application,Workbooks,Workbook,Sheets,Worksheet,Range,HyperLinks,HyperLink などが思い浮かびますが 全てをReleaseしたつもりでも当方の環境ではタスクが残ってしまいました … 他にあるのかなぁ Excelへの参照設定とインポート定義を下記のようにしています Imports Microsoft.Office.Interop Imports Microsoft.Office.Interop.Excel Imports System.Runtime.InteropServices Imports System.Runtime.InteropServices.Marshal 以下が当方でテストしたコードです   Dim oXL As New Excel.Application   Dim oWBs As Workbooks   Dim oWB As Workbook   Dim oWSs As Sheets   Dim oWS As Worksheet   Dim oRg As Range   Dim oHLs As Hyperlinks   Dim oHL As Hyperlink   oXL.Visible = True   oWBs = oXL.Workbooks   oWB = oWBs.Add()   oWSs = oWB.Worksheets   oWS = CType(oWSs(1), Worksheet)   oRg = oWS.Range("A1")   oHLs = oWS.Hyperlinks   oHL = oHLs.Add(Anchor:=oRg, Address:="URL", _     TextToDisplay:="Test")   oXL.DisplayAlerts = False   oWB.SaveAs("C:\Test01.xls")   oWB.Close()   oXL.Quit()   ReleaseComObject(oHL)   ReleaseComObject(oHLs)   ReleaseComObject(oRg)   ReleaseComObject(oWS)   ReleaseComObject(oWSs)   ReleaseComObject(oWB)   ReleaseComObject(oWBs)   ReleaseComObject(oXL)   oHL = Nothing   oHLs = Nothing   oRg = Nothing   oWS = Nothing   oWSs = Nothing   oWB = Nothing   oWBs = Nothing   oXL = Nothing

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

 rg = fndArea.Find(findText, xlsheet.Range("A65536"), Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlWhole, _     Excel.XlSearchOrder.xlByRows, Excel.XlSearchDirection.xlNext, False) VB2005でExcelファイルを開き、FINDメソッドを使用する際に書いた コードです。 例えば xlLookAt:=xlWhole が Excel.XlLookAt.xlWhole になるように、ちょっと書き方が変わるようです。 (最近初めたばかりで詳しくはないですが) ご参考になれば。

関連するQ&A