• ベストアンサー

Hyperlinks.Add について

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

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答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
  • ベストアンサー率66% (1725/2595)
回答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% (6809/9681)
回答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