アプリ版:「スタンプのみでお礼する」機能のリリースについて

作業ブックに、先日教えて頂いた
Sub メール提出()
With Range("J40")
If .Hyperlinks.Count > 0 Then
.Hyperlinks.Item(1).Follow
ElseIf .HasFormula And InStr(.Formula, "HYPERLINK") > 0 Then
ActiveWorkbook.FollowHyperlink Address:=GetLinkURL(.Item(1))
Else
MsgBox "ハイパーリンクは設定されていません"
End If
End With
End Sub

Function GetLinkURL(rTarget As Range) As String
Dim v1 As Variant, v2 As Variant, str3 As String
Dim i As Long
If rTarget = "" Then Exit Function
v1 = Split(rTarget.Formula, "HYPERLINK(")
v2 = Split(v1(1), ",")
For i = 0 To (UBound(v2) - 1)
str3 = str3 & v2(i) & ","
Next i
str3 = Mid(str3, 1, Len(str3) - 1)
With Cells(Rows.Count, 1).End(xlUp).Offset(1)
.Formula = "=" & str3 '値取得はExcelにお任せ
GetLinkURL = .Text
.Clear
End With
End Function
のマクロを設定しておりますが、この作業シートを保護設定した後に、マクロを実行すると
「実行時エラー‘1004‘:アプリケーション定義またはオブジェクト定義のエラーです」
と警告文が表示され
「デバック」を参照すると
「.Formula = "=" & str3 '値取得はExcelにお任せ」の部分が黄色なっております。
シートを保護しても、マクロを実行できる方法を教えてください。
よろしくお願いいたします。

A 回答 (1件)

おはようございます。



下記の2つの方法があるかと思います。

●「シートの保護でユーザの操作を制限するのはいいけど、マクロからは操作できるようにしたい…」
https://tonari-it.com/excel-vba-protect-userinte …

他は、マクロ内で、シートの保護を一旦解除して、マクロを実行。
その後に、シートの保護をするでしょうか?
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
参考にさせて頂きます。

お礼日時:2022/10/18 10:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!