2

アクティブ セルのコンテンツに基づいてハイパーリンクを作成するマクロを作成しようとしています。

セル A1 に、セル B29 (つまり "=B29") への参照があるとします。

アクティブ セルが A1 の場合、マクロを実行するときに "=B29" を "=HYPERLINK("#"&CELL("address",B29),B29)" に置き換えたいと思います。

このマクロをアクティブ セルでのみ動作させたい。これは可能ですか?

助けていただければ幸いです。

次のことを試しましたが、機能しません。

Sub hyperlinktocell()
    Dim num1 As Integer
    Dim celladress As String

    num1 = Len(ActiveCell.Formula) - 1
    celladdress = Right(ActiveCell.Formula, num1)
    ActiveCell.Formula = "=HYPERLINK(""#""&CELL(""address"",celladdress,celladdress)"
End Sub

私はVBAを初めて使用し、上記を正しく行うためにほぼ2時間費やしましたが、成功しませんでした。

4

1 に答える 1

1

ほとんどすべての作業を完了したので、私が持っていたものを投稿します。

Private Sub test()
    Dim s As String
    s = Right(ActiveCell.Formula, Len(ActiveCell.Formula) - 1)
    ActiveCell.Formula = "=HYPERLINK(""#""&CELL(""address""," & s & ")," & s & ")"
End Sub

ご覧のとおり、使用する変数が 1 つ少ないことを除けば、解決策は同じです。最後の行で、文字列を連結する方法に注目してください。コードでは、これらすべての変数を二重引用符で囲み、テキストにします。次に、Excel は、これが正しいこのプロパティの有効な値ではないと不平を言います。

于 2012-10-08T20:01:14.490 に答える