- 締切済み
V2005からハイパーリンク(excel2003)の設定
現在VB2005からエクセルのハイパーリンクを設定しようとしているのですが、エラーが出て困っています。 処理は以下のとおりです。 xlSheet.Hyperlinks.add( _ Anchor:=xlSheet.Range("A1"), _ Address:="ttp://...", _ TextToDisplay:="test") エラー内容 パラメータが間違っています。 Anchorの設定が間違っているみたいなので、 いろいろ試してはいるのですが、よく分かりません。 ご教授お願いします。
- popkuri
- お礼率0% (0/3)
- Visual Basic
- 回答数3
- ありがとう数0
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17068)
エクセル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 になるように、ちょっと書き方が変わるようです。 (最近初めたばかりで詳しくはないですが) ご参考になれば。
関連するQ&A
- ハイパーリンクの表示で質問の続きです。
これで大丈夫かな? Sub test() Dim i As Long For i = 1 To Range("A65536").End(xlUp).Row Cells(i, 1).Hyperlinks(1).TextToDisplay = Cells(i, 1).Hyperlinks(1).Address Cells(i, 2).Value = Cells(i, 1).Hyperlinks(1).Address Next i End Sub ------------------- 有難うございました。完璧ですが、 ハイパーリンクのないセルのところでエラーになります。 ハイパーリンクのないセルは無視(エラーを無視)して次のセルの作業を指示したいのですが、・・・お願いします。 しばらくVBAを離れていまして思い出せません。すみません。
- ベストアンサー
- Visual Basic
- マクロでハイパーリンクを設定するには
いつもお世話になります アクティブシート内でハイパーリンクを設定したいのですが、どうしても巧くできません シート名 = ActiveSheet.Name で、シートの名前を取得して(アクティブシート名は”9月”です) ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= "シート名" & "!A477", とするとリンク先が[9月A477]にならず [シート名A477]になってしまいます どこが悪いのでしょうか WINXP エクセル2003
- 締切済み
- Windows XP
- excel2000vba ハイパーリンク
excel2000のVBAのプロシージャを教えてください。 写真にあるとおり、sheet1の A1からA200セルまでに、 フルパスのアドレス、0、空白 が入っています。 ここで、フルパスが入っているセルを 下記の条件でハイパーリンクに置きかえたい。 1.フルパスの入っているセルをハイパーリンクのセルに変更する。 2.ハイパーリンクは、ハイパーリンクでも、ハイパーリンク関数でもいい 3.そのフルパスをハイパーリンクのリンク先アドレスにする。 4.表示文字列を ★ としたいです。 また、0が入っているセルは、空白に変更させたい。 以上がやりたいことです。そして下記プロシージャでトライしてみましたがエラーとなりうまくいきません。 プロシージャの修正もしくは、最適なプロシージャがあれば教えて欲しいです。 よろしくお願いします。 Sub test() Dim trange As Range Dim i As Long For i = 1 To 200 trange = ("A" & i) If trange.Value = "" Or "0" Then trange.Value = "" Else Worksheets("Sheet2").trange.Hyperlinks.Add anchor:="★", Address:=trange.Value End If Next i End Sub
- ベストアンサー
- オフィス系ソフト
- 【VBA】ハイパーリンクでセルに文字を正しく表示できない。
【VBA】ハイパーリンクでセルに文字を正しく表示できない。 ハイパーリンクを設定しセルに数値を表示させる場合、 セルにもともと文字が入力されていれば、数値に置き換わります(a)が、 もともと入力されているのが数値の場合、別の数値に置き換わりません(b)。 例) (a)A1セルに「十」という漢字が入力されていたとします。 その時、下記コードを実行すればA1セルの値は「1」に変わります。 Sub test() ActiveSheet.Hyperlinks.Add _ Anchor:=Range("A1"), _ Address:="http://www.yahoo.co.jp/", _ TextToDisplay:="1" End Sub (b)一方、A1セルに「10」という数値が入力されていたとします。 その時、上記コードを実行してもA1のセルの値は「10」のままです。 なぜなのでしょうか? お分かりの方、教えてください。 尚、当方Excel2003を使用しております。 よろしくお願いします。
- ベストアンサー
- その他MS Office製品
- マクロを使ってハイパーリンクを作りたい
エクセルで下記作業をマクロで行いたいのですが、 途中までつくれたのですが、うまくいきません (1)sheet2をコピーしてsheet2(2)を作る (2)sheet2(2)のsheet名を任意の名前(例222)にかえる (3)sheet1の任意のセルから新しく作った222へハイパーリンクを張る 下記のようなマクロを作りましたが ハイパーリンクを張るとことでうまく行きません どうすればよいのでしょうか。。。 助けてください sub 新しいシートの追加() 'dim sheet名 as string シート名 = InputBox("新しいシート名を入力してください", "シート名の指定") If シート名 <> "" Then Sheets("Sheet2").Select Sheets("Sheet2").Copy After:=Sheets("Sheet2") ActiveSheet.Name = シート名 Sheets("Sheet1").Select Range("A3").End(xlDown).Offset(1).Select ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _ シート名 TextToDisplay:=シート名 Selection.Hyperlinks(1).SubAddress = シート名 End If End Sub
- ベストアンサー
- その他MS Office製品
- エクセルのハイパーリンクで
いつもお世話になります。 昨日、エクセルで、あるマスターブック内のシートのコピーをサブブックにコピーし、マスターブックの一覧内にハイパーリンクで繋ぐというものを作成しましたが、このリンクだと、一覧内に書き込まれるハイパーリンクはフルアドレスの書き込みなります。 これを、ダイアログにて保存先、保存名をきいて保存したのちに、ハイパーリンク用として一覧に書き込むファイル名を聞いてくるようにしたいと思います。 昨日作ったモジュールは下記の通りです。 Sub Macro2() Dim strFile As String Dim i As Long Dim na As String Sheets(Array("シート1", "シート2", "シート3", "シート4")).Copy strFile = Application.GetSaveAsFilename(fileFilter:="エクセル ファイル (*.xls), *.xls") If strFile = "False" Then Exit Sub ActiveWorkbook.SaveAs strFile ActiveWorkbook.Close Sheets("一覧").Activate ActiveSheet.Hyperlinks.Add Anchor:=Range("B65536").End(xlUp).Offset(1), Address:=strFile, TextToDisplay:=strFile End Sub
- ベストアンサー
- オフィス系ソフト
- EXCEL2000VBAでハイパーリンクの有無を調べたい。
おはつです。どなたか、知ってらっしゃる方がいらしゃいましたら、よろしくお願い致します。 [環境] Windows2000 EXCEL2000 [質問] ・下記のソースで、ハイパーリンクが設定されている項目 をcmdボタンイベントから設定を外しました。しかし、ハイ パーリンクが元データに設定されていない場合、Errが返り ます。 selectで指定されたセルのハイパーリンク有無を調べる 方法を教えて頂けないでしょうか? If Not IsNull(Trim(Range("E105").Text)) Or Trim(Range("E105").Text) <> "" Then sURL1 = Trim(Range("E105").Text) Range("E105:AG108").Select Selection.Hyperlinks(1).Delete End If
- ベストアンサー
- オフィス系ソフト
- セルに入力されているアドレスでハイパーリンクを開き
http://officetanaka.net/excel/vba/tips/tips42.htm これを同じようにしてるのですが Sub test() Range("a1").Value = "http://www.goo.ne.jp/" Range("a1").Hyperlinks(1).Follow NewWindow:=True End Sub これだとエラーになるのですがどうしてでしょうか? 「インデックスが有効範囲にありません。」 と言われます。 セルに入力されているアドレスでハイパーリンクを開きたいです。
- ベストアンサー
- オフィス系ソフト
- Excel VBA ハイパーリンクの追加でエラー
Excel VBAで下記のようなコードを書いて、ファイルに対するハイパーリンクを追加したいのですが、実行時にエラーとなってしまいます。 どんな原因が考えられるか教えていただけますでしょうか。 よろしくお願いいたします。 <実行環境> Excel 2003 <コード> With ActiveSheet .Hyperlinks.Add Anchor:=.Cells(RowNum, 1), Address:=FilePath End With <エラー> 実行時エラー '1004' アプリケーション定義またはオブジェクト定義のエラーです。 <補足> Excel2000の環境で実行すると正常に動作します。バージョンの違いで動作に差がでるのでしょうか? またRowNumとFilePathには有効な値が入っていることはステップ実行で確認しています。
- ベストアンサー
- その他(プログラミング・開発)
- Excel2000 ハイパーリンクを削除するマクロ
どなたか教えてください。 Excel2000で、URLやメールアドレスを入力すると勝手にハイパーリンクにされてしまいます。 これをハイパーリンクとならないようにするマクロを作りたいのです。 具体的には、特定のセルにだけ、URLやメールアドレスを入力する可能性が あるという条件で、 下記のようにしました。 Private Sub Worksheet_Change(ByVal Target As Range) Application.ScreenUpdating = False nowcell = ActiveCell.Address Target.Hyperlinks.Delete With Range("O14:AI14,L41:AI41") .IndentLevel = 1 .VerticalAlignment = xlCenter .Font.Name = "Arial" .Font.Size = 16 End With Range(nowcell).Activate Application.ScreenUpdating = True End Sub セルが変更されるたびに、O14:AI14,L41:AI41のハイパーリンクを削除して、勝手に 変更された書式を特定の書式に戻すという処理をしています。 ただ、特定の書式を設定しているため異なる書式のセルに同じマクロを使うと、 書式が乱れてしまいます。 それで、ハイパーリンクが削除される前のセル書式を保存しておいて、ハイパーリンクを削除した後に、 復元するということをしたいのですが、どうすればよいでしょうか? イメージ的には、 org_format=target.font nowcell.font=org_format というようにしたいところなのですが・・・ 良いアイデアをご教授ください。 宜しくお願い致します。
- ベストアンサー
- その他MS Office製品