[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『シートの保護とフォームコントロールボタン』(寒い)
よろしくお願いいたします。
Sheet1上にフォームコントロールボタンが3つあります。それぞれのボタンはSheet2上のボタンにテキスト名を入力させるものです。
Sheet1とSheet2に「シートの保護」を行い,いままで動いていたマクロを実行すると「ButtonクラスのCaptionプロパティを設定できません」というエラーが出てきます。
ネットで調べてみたところ,
ThisWorkbook.Worksheets("Sheet1").Protect UserInterfaceOnly:=True
があったので,それぞれのSubの先頭部分に書いたのですが,エラーになります。
良い解決策はありますでしょうか。
< 使用 Excel:Microsoft365、使用 OS:Windows11 >
エラ−の出る行、エラーメッセージを書いてください。 エラーがでるだけでは情報不足です
想像ですが、Sheet2 を変更しようとしているんだから、 ThisWorkbook.Worksheets("Sheet2").Protect UserInterfaceOnly:=True じゃないとダメなのでは? (´・ω・`) 2023/12/21(木) 15:51:58
ありがとうございます。簡潔にお示しします。
Sheet1,Sheet2にそれぞれボタンが一つずつあります。Sheet1のボタンのテキストをSheet2のボタンのテキストに表示させ,Sheet3のB2の値を1増やすというものです。
特にSheet3のB2は勝手に変更されたくありません。エラーメッセージは以下の通りです。
「ButtonクラスのCaptionプロパティを設定できません」よろしくお願いいたします。
Sub test()
Dim btn As Shape Dim myname As String
Set btn = Worksheets(1).Shapes(Application.Caller)
myname = btn.DrawingObject.Caption
With Worksheets(2) .Shapes("button1").DrawingObject.Caption = myname End With
With Worksheets(3) .Range("B2").Value = .Range("B2").Value + 1 End With End Sub
(寒い) 2023/12/21(木) 16:26:54
>Sheet1上にフォームコントロールボタンが3つあります。 ~~~~~~~~~~~ >Sheet1,Sheet2にそれぞれボタンが一つずつあります。 ~~~~~~~~~~~~~~~~~~~~~~~~ そんな寒い事を言っていたら、誰も回答をしてくれませんよ。 自己解決されたのであれば良いですが... (あみな) 2023/12/22(金) 13:03:42
横入。 ThisWorkbook.Worksheets("Sheet2").protect DrawingObjects:=False, UserInterfaceOnly:=True としてみては?これでキャプション変更が可能になります。
ただ、これだと手動でもキャプションが変更できてしまいます。 これが不可なら、test()の中で、保護解除、作業、再保護 とするよりないでしょう。
(xyz) 2023/12/22(金) 13:30:17
いろいろと試してみたのですが,やはり最後に書かれたように,test()の中で、保護解除、作業、再保護しかありませんでした。
ありがとうございました。
(寒い) 2023/12/23(土) 11:36:38
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.