• 締切済み

マクロでハイパーリンクを設定するには

いつもお世話になります アクティブシート内でハイパーリンクを設定したいのですが、どうしても巧くできません シート名 = ActiveSheet.Name で、シートの名前を取得して(アクティブシート名は”9月”です) ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= "シート名" & "!A477", とするとリンク先が[9月A477]にならず [シート名A477]になってしまいます どこが悪いのでしょうか WINXP エクセル2003

  • JOX
  • お礼率83% (141/169)

みんなの回答

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

×:SubAddress:= "シート名" & "!A477", ○:SubAddress:= シート名 & "!A477",

JOX
質問者

お礼

初歩的な質問ばかりですみません SubAddress:= シート名 & "!A477",  としたつもりなんですが、うまくいかなくて困っていました。 ありがとうございました。

関連するQ&A

  • マクロを使ってハイパーリンクを作りたい

    エクセルで下記作業をマクロで行いたいのですが、 途中までつくれたのですが、うまくいきません (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

  • マクロでハッパーリンク2

    先日、教えて頂いたマクロですが シートの名前を数字または英字(例AAA or 123)のみにすると、うまくいきますが ハイフンを途中で入れると(例ABG-352 or ABCD-03-005)うまくリンクがいきません どこをどこを直せばいいのでしょうか Sub 新しいシートの追加() Dim シート名 As String シート名 = InputBox("新しいシート名を入力してください", "シート名の指定") If シート名 <> "" Then Sheets("sheet2").Copy After:=Sheets("sheet2") ActiveSheet.Name = シート名 Sheets("sheet1").Select Range("B3").End(xlDown).Offset(1).Select ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", _ SubAddress:=シート名 & "!A1", TextToDisplay:=シート名 End If End Sub

  • ハイパーリンクがうまくできません。

    エクセルのマクロを使って、ハイパーリンクで同じブック内のシートに飛べるようなものをつくりたいと思っています。 まず、「全体」というシートに目次みたいに各シートのタイトルが書かれたページがあり、 そのタイトルがシート名になったものが大量にあります。 「全体」シートのタイトルをクリックするとそのシートに飛べるようにしたいのですがうまくいきません。 下のマクロはネットで探して使えると思ったものなのですが、 リンクをクリックしても「参照できません」とでて目的のシートに飛ぶことができません。 助言のほどよろしくお願いします。 Sub link123() Dim ws As Worksheet, r As Range With Worksheets("全体") For Each ws In Worksheets Set r = .Cells.Find(ws.Name, after:=.Range("A1"), LookAt:=xlWhole) If Not r Is Nothing Then .Hyperlinks.Add Anchor:=r, Address:="", SubAddress:=ws.Name & "!A1" End If Next ws End With End Sub

  • Matchで戻ってきた値をハイパーリンクのセル指定に使う方法

    ActiveSheetに入力した時、入力値と同じ値を同ブックの2つのシートから検索してハイパーリンクを設定したいです。 Matchを使ってリンクさせたいセルの行番号を取得したつもりなのですが、リンク設置の際にどのような使い方をすればいいのか分からないので教えてほしいです。 下記コードでは、入力した値が青文字になりリンクされたようになりますが、クリックすると「このワークシートの数式に、1つまたは複数の無効な参照が含まれています。有効なパス、ブック、範囲名およびセル参照が数式に含まれていることを確認してください。」とでます。 Private Sub Worksheet_Change(ByVal Target As Range) Dim kennsaku, y, z Set y = Worksheets("データ").Range("$C$4:$C$1003") Set z = Worksheets("データ2").Range("$A$2:$A$65536") kennsaku = Application.Match(Target.Value, y, 0) If IsNumeric(kennsaku) Then ActiveSheet.Hyperlinks.Add anchor:=Target, Address:="", SubAddress:="'" & データ & "'!range(cells(kennsaku,3))" Else kennsaku = Application.Match(Target.Value, z, 0) If IsError(kennsaku) Then MsgBox "見つからないのでリンクは貼りません", vbOKOnly + vbExclamation Exit Sub Else ActiveSheet.Hyperlinks.Add anchor:=Target, Address:="", SubAddress:="'" & データ2 & "'!range(cells(kennsaku,1))" End If End If End Sub

  • 【エクセル】VBAでハイパーリンクそうさ

    VBAでハイパーリンクのマクロを組んでいます。 A列にホームページ名が50行(シートによってまちまち)くらい並んでいて、 B列に、それに対応するURLが記入されています。B列は空白のところがちらほ らあります。 A列に、A列の表示(ホームぺジ名)のまま、B列のURLでハイパーリンクを張りたい です。リンクは貼れたんですが、ホームページ名がどうやれば表示できるかわかり ません。教えてくださいお願いします。 ダメダメですが、一応自分で書けたところまでを載せておきます。 Sub ハイパーリンク() Dim i As Integer Dim j As Integer j = 50 For i = 1 To j Sheets("Sheet1").Select Cells(i , 1).Select ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _ Cells(i , 2), TextToDisplay:="" Next i End Sub としました。

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

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

  • エクセルのマクロでハイパーリンクを設定したのですが・・

    エクセルのマクロでハイパーリンクを一括でやる方法を教えてください。 マクロは初心者なので、よくわかりません。 リンク先は同じドキュメント内の別シートです。 <一覧>   A 1 name1 2 name2 3 name3 4 name4 5 name5 ・ ・ ・ name1のリンク先をSheet1 name2のリンク先をSheet2 name3のリンク先をSheet3 name4のリンク先をSheet4 という具合に順次、次のシートのリンクを張りたいと考えています。 目的として <一覧>のシートに記述されたタイトルをクリックすることで 同じタイトルのシートに飛べるようにしたいです 困るのは <一覧>のシートにも参照するシートの名前も記載済みなので 変わってほしくないことです。

  • マクロが上手く組めない

    各シートの特定のセル(1,25)にINDEXシートのハイパーリンクを 設定したいのですが、「オブジェクトが存在しません」 とエラーが表示されてしまっており、どのように修正すればいいのか 分からず、困っております。何故エラーが出たのかについてご教授頂けると幸いです。 私の書いたソースコード ********************************** ********************************** Sub INDEXLINK() Dim w As Worksheet Set w = Sheets("INDEX") Dim i As Long For i = 1 To ActiveWorkbook.Worksheets.Count Worksheets(i).Hyperlinks.Add Anchor:=Worksheets(i).Cells(1,25), Address:="", SubAddress:=w & "!c1", TextToDisplay:=w.Name Next End Sub

  • Excelマクロ

    Excelマクロを使用して、ハイパーリンクのリンク先パスを変更しようとしております。 一旦、クライアントPCで変更しその後、ネットワークの別のPCでsaveし再度、起動させると相対パスに変更されてしまいます。 絶対パスで保持する方法はないでしょうか。 ご参考までに記述したマクロの一部です。 ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=パス & Cells(行, 2), TextToDisplay:=CStr(Cells(行, 2)) 何か良い方法があれば、ご教示をお願いします。

  • 実行時エラー'1004'で困っています。

    少し前にも同じコードの他の点についてアドバイスをいただいたのですが、新たな問題点が生じたので改めて質問させてほしいです。 具体的な問題点が分からなかったのでコードをそのまま載せました。 シート1に値を入力すると、繁殖牛データ。データ。という2個のシートから検索し、リンクをつけたいです。 繁殖牛データシートに入っている値を入力した時は ActiveSheet.Hyperlinks.Add anchor:=Target, Address:="", SubAddress:="'繁殖牛データ'!" & Range(Cells(kennsaku, 3)) データシートに入っている値を入力した時は ActiveSheet.Hyperlinks.Add anchor:=Target, Address:="", SubAddress:="'" & データ & "'!" & Range(Cells(kennsaku, 1)) で「'Range'メソッドは失敗しました:'_Worksheet'オブジェクト」とでます。 試験的にどちらのシートにも入っていない値を入力すると、思惑通りに"見つからないのでリンクは貼りません"と帰ってきます。 Private Sub Worksheet_Change(ByVal Target As Range) Dim kennsaku, y, z If Target.Count > 1 Then Exit Sub 'セルを二つ以上選択した場合 If Target.Value = "" Then Exit Sub 'データが空の場合 If Application.CountIf(Range("A1:Z80"), Target.Value) > 1 Then MsgBox Target.Value & "は既に入力されています", vbOKOnly + vbExclamation Target.Clear Exit Sub End If Set y = Worksheets("繁殖牛データ").Range("$C$1:$C$1003") Set z = Worksheets("データ").Range("$A$1:$A$65536") kennsaku = Application.Match(Target.Value, y, 0) If IsNumeric(kennsaku) Then ActiveSheet.Hyperlinks.Add anchor:=Target, Address:="", SubAddress:="'繁殖牛データ'!" & Range(Cells(kennsaku, 3)) Else kennsaku = Application.Match(Target.Value, z, 0) If IsError(kennsaku) Then MsgBox "見つからないのでリンクは貼りません", vbOKOnly + vbExclamation Exit Sub Else ActiveSheet.Hyperlinks.Add anchor:=Target, Address:="", SubAddress:="'" & データ & "'!" & Range(Cells(kennsaku, 1)) End If End If Range("A1:Z80").Font.Underline = False End Sub