2017-07-06 32 views
0

ボタンのテキストを変更して現在の日付を表示するマクロを記録しました。ワークシートは保護されていません。私はワークブックを共有し、ボタンをクリックすると、私はこのエラーを取得する:Microsoft Excel VBA - ランタイムエラー '-2147024809(80070057)'

Run-time error '-2147024809 (80070057)':
Requested Shapes are locked for selection

私は右のボタンをクリックして、「書式のコントロール」をクリックしたとき、私は「ロック」および「ロックのテキストを」(オフにし[保護]タブの下に表示されます)、問題は解決しませんでした。

誰でもこの回避策を知っていますか?私はマクロが共有されている間に動作するようにしたい。ありがとうございました。ここで

は、私は、マクロを記録したときに私が得たコードは次のとおりです。

Sub updateDate() 
' 
' updateDate Macro 
' 

' 
    ActiveSheet.Shapes.Range(Array("Button 1")).Select 
    Selection.Characters.Text = Date 
    With Selection.Characters(Start:=1, Length:=9).Font 
     .Name = "Calibri" 
     .FontStyle = "Bold" 
     .Size = 11 
     .Strikethrough = False 
     .Superscript = False 
     .Subscript = False 
     .OutlineFont = False 
     .Shadow = False 
     .Underline = xlUnderlineStyleNone 
     .ColorIndex = 3 
    End With 
    Range("B1").Select 
End Sub 

答えて

0

あなたはそれが保護/共有していたとき、あなたはいくつかのオブジェクト/クラスにアクセスすることはできません。しかし、どのようなあなたの目標を達成することができますされ、それが完了したら、あなたは(心の中で裸ActiveSheetは、このボタンを持っていたとき、このサブだけ呼ばれるべきであること)のフォントを変更する必要はありません。

Sub updateDate() 
' 
' updateDate Macro 
' 
' 
    ActiveSheet.Buttons("Button 1").Text = CStr(Now) ' Date 
    Range("B1").Select ' <-- Not needed 
End Sub 


編集
共有するときに図形を変更するには、最初に共有を解除し、変更してSharedAccessに保存する必要があります。

別のボタンを追加し、MakeButtonRedBoldに割り当ててみます

Sub MakeButtonRedBold() 
    MakeButtonStyle01 "Button 1" 
End Sub 

Private Sub MakeButtonStyle01(ByVal sButtonName As String) 
    Dim oBtn As Object 
    On Error Resume Next 
    Set oBtn = ActiveSheet.Buttons("Button 1") 
    On Error GoTo 0 
    If Not oBtn Is Nothing Then 
     Application.DisplayAlerts = False 
     ThisWorkbook.ExclusiveAccess ' UnShare Workbook 
     With oBtn.Font 
      .Name = "Calibri" 
      .Bold = True 
      .Size = 11 
      .Color = RGB(255, 0, 0) 
     End With 
     ThisWorkbook.SaveAs ThisWorkbook.FullName, AccessMode:=xlShared ' Share the Workbook 
     Application.DisplayAlerts = True 
    End If 
End Sub 
+0

はこのためにありがとうございました。このコードは、ワークブックを共有しているときに機能します。テキストを太字に、赤色にする方法を知っていますか?私はこの "ActiveSheet.Buttons("ボタン1 ")を行いました。Font.Bold = True"しかし、ブックを共有してクリックすると、ランタイムエラー1004フォントクラスの太字プロパティを設定できません。助けてくれてありがとう。 – Wiz321

+0

@ Wiz321共有ブックのフォントを変更するにはEDITを参照してください。この方法は、変更前に非共有化してから、保存した後で共有することです。 – PatricK

+0

コードを提供していただきありがとうございます。これは本当にうまくいく。 – Wiz321

関連する問題