- 締切済み
V2005からハイパーリンク(excel2003)の設定
現在VB2005からエクセルのハイパーリンクを設定しようとしているのですが、エラーが出て困っています。 処理は以下のとおりです。 xlSheet.Hyperlinks.add( _ Anchor:=xlSheet.Range("A1"), _ Address:="ttp://...", _ TextToDisplay:="test") エラー内容 パラメータが間違っています。 Anchorの設定が間違っているみたいなので、 いろいろ試してはいるのですが、よく分かりません。 ご教授お願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
エクセル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)
お使いの開発環境は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)
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 になるように、ちょっと書き方が変わるようです。 (最近初めたばかりで詳しくはないですが) ご参考になれば。