• ベストアンサー

Hyperlinks.Add について

ActiveSheet.Hyperlinks.Add Anchor:= と記載して続きを書こうとすると、Anchor:=の :=部分でコンパイルエラー「修正候補:式」と表示されます。 理由が分かれば教えていただきたいです。

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

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

本件は「名前つき引数」という(言語一般の)話題に関するものだろう。 https://vbabeginner.net/hyperlinks-add/ VBAでハイパーリンクを設定 を参照して考えてはどうか。 ーー 正しいやりかたは上記の通りなのだが、 本質問の状況で、エラーが出る訳がよく判らない。 下記のtest03の途中であるとも考えられたが。 自作例 参考 テスト済 Sub test01() '戻り値(下記ではhplというオブジェクト)を設定する場合 引数の記述は()内を使う Set hpl = ActiveSheet.Hyperlinks.Add( _ Anchor:=Range("A1"), _ Address:="https://google.co.jp/", _ ScreenTip:="google", _ TextToDisplay:="Google") End Sub ーーー Sub test03() '戻り値を設定しない場合 引数は()内を使わない 区切りは最初は空白、その後はカンマを使う '順序を既定に併せるか、名前付き引数のやり方を使う ActiveSheet.Hyperlinks.Add _ Address:="https://google.co.jp/", _ ScreenTip:="google", _ TextToDisplay:="Google", _ Anchor:=Range("A3") End Sub ーーー Sub test04() '戻り値を設定しない場合 引数は()を使わない 引数はカンマで区切る '順序をシステム既定に併せるか、名前付き引数のやり方を使う(順序は合わせなくてよい) ActiveSheet.Hyperlinks.Add Range("A5"), "https://google.co.jp/", "google", "Google" End Sub

y_ykr
質問者

お礼

ありがとうございます。 作成いただいたものは正常にできたので、それをもとに中身を書き換えたら上手くできました。 :=が黄色くなってエラーが出ていたように見えたのですが、その先が間違っていたのかもしれません。 自分の元のコードは、作成いただいたもので上書きしてしまったので、何が問題だったかわからないままになってしまったのですが(すみません検証もせずに…)、解決できたのでよかったです。 本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • kkkkkm
  • ベストアンサー率65% (1644/2494)
回答No.2

> Anchor:=の :=部分でコンパイルエラー「修正候補:式」と表示されます。 Anchor:=の後で改行したり別の所からコピペしようとしてどこかに移動したりしていませんか。そのまま連続して記載する必要があります。 下記みたいに ActiveSheet.Hyperlinks.Add Anchor:=Range("A1"), Address:="", SubAddress:="'Sheet1'!A2" 改行したい場合には Anchor:= _ として後ろに半角スペースとアンダーバーが必要です。 下記みたいに ActiveSheet.Hyperlinks.Add Anchor:= _ Range("A1"), Address:="", SubAddress:="'Sheet1'!A2"

y_ykr
質問者

お礼

回答いただきありがとうございました。 半角スペースもアンダーバーも入れてはいたのですが、、、 私の質問が中途半端で申し訳ありません。 でもとても分かりやすかったです。 そこの記述が必要なことを再認識できました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • asciiz
  • ベストアンサー率70% (6672/9459)
回答No.1

そのような書き方をするのは、with文で複数のSheetオブジェクトに適用する場合です。 ↓ (例1) >Hyperlinks.Add メソッド (Excel) | Microsoft Learn >https://learn.microsoft.com/ja-jp/office/vba/api/excel.hyperlinks.add 単独のSheetオブジェクトにAddメソッドを使う場合には、カッコをつけてパラメータとして渡します。「Anchor:=」といった記述も必要ありません。 ↓ (例2) >VBAでハイパーリンクを設定(Hyperlinks.Add) | Excel作業をVBAで効率化 >https://vbabeginner.net/hyperlinks-add/

y_ykr
質問者

お礼

分かりやすいサイトを教えていただきありがとうございます。 とても参考になりました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

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

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

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

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

  • Excel VBA ハイパーリンクの追加でエラー

    Excel VBAで下記のようなコードを書いて、ファイルに対するハイパーリンクを追加したいのですが、実行時にエラーとなってしまいます。 どんな原因が考えられるか教えていただけますでしょうか。 よろしくお願いいたします。 <実行環境> Excel 2003 <コード>  With ActiveSheet .Hyperlinks.Add Anchor:=.Cells(RowNum, 1), Address:=FilePath End With <エラー> 実行時エラー '1004' アプリケーション定義またはオブジェクト定義のエラーです。 <補足> Excel2000の環境で実行すると正常に動作します。バージョンの違いで動作に差がでるのでしょうか? またRowNumとFilePathには有効な値が入っていることはステップ実行で確認しています。

  • 実行時エラー'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

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

    各シートの特定のセル(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

  • ExcelVBA カーソル移動でコンパイルエラー

    例えばVBA(Excel 2003)において、 For i = と一部分だけ書いて、他の行に移動しようとするとすぐさま「修正候補 コンパイルエラー」と表示されるのがわずらわしいのですが、こうならないようにする方法はないのでしょうか? ちなみに、別のエディタで編集して実行するときだけ、Visual Basic Editorに貼り付けるというのはご勘弁を(^_^;)

  • EXCEL VBA で実行時エラーが出ます。

    こんばんは。 エクセルのA列の1~40000行にhttp://www.google.co.jpへのリンクを設定する単純なコードですが、毎回65530行まで行くと「実行時エラー'1004'」が発生します。 (65530はInteger型の倍数に近いかと思いますが、どうなんでしょうか?) 環境はMacのブートキャンプでWindows10Home、Office365の最新版にアップデートしてあります。 よろしくお願いします。 Sub test() Dim i As Long For i = 1 To 80000 ActiveSheet.Hyperlinks.Add Anchor:=Cells(i, 1), _ Address:="http://www.google.co.jp", _ TextToDisplay:="■" Next i MsgBox "完了" End Sub 通報する

  • MsgBoxがコンパイルエラーになります

    エクセルにてマクロを作成しているのですが、 今まで問題なく動いていたMsgBoxがコンパイルエラーになります。 MsgBox("テスト", vbOKOnly, "テスト") と打っても、 「コンパイルエラーです。修正候補:=」 表示されるようになりました。 今までは、これと同じように打っていても何も問題がなかったのに、 突然、このようになりました。 ちなみに、今まで正常に動いていたものをまったく同じように打っても エラーになります。 まったく原因がわかりません。 どなたかおわかりになる方、よろしくお願いします。

  • Excelマクロ

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

  • VBA【初歩的な質問】

    エクセルシートのA列にホームページの名前、B列にそのページのアドレスが入力されております。 A列のページ名にハイパーリンクの情報を結び付けて、B列を削除したいです。 ※A列の名前が青くなっていて、クリックするとそのページに飛んでいくことができて、B列は空白 そのVBAを教えて頂けると助かります。 ページによって最終行が異なるので、最初に最終行を出して、For i で繰り替えしたらいいのでしょうか? HYPERLINKS.Addメソッドというのを使えばいいと思ったんですが、うまくいきませんでした。 Option Explicit Sub Sample() Dim i As Long '1行目からA列の最終行まで繰り返す For i = 1 To Range("A" & Rows.Count).End(xlUp).Row With ActiveSheet.Hyperlinks .Add Anchor:= End With Next i End Sub

このQ&Aのポイント
  • Outlook 2013をシャットダウン中にマカフィーの更新プログラムが作動し、電源を切るのを待っていましたが、再度シャットダウン操作をしたところ、マイクロソフトのアカウントを要求されました。
  • 電話番号を入力したところ、間違いの番号と表示されました。この問題について、御社のサポートは可能でしょうか?それともマイクロソフト社に確認する必要がありますか?
  • もし、マイクロソフト社のサポートを利用する場合は、お手数ですがサポート窓口の電話番号を教えてください。
回答を見る