プロが教えるわが家の防犯対策術!

エクセル2019を使用しています。
ワークシート上にLabel1~Label120を配置して[表示],[サイズ変更]をしたい。
 
Public Sub sbLabelDsp(ByVal p_No As Integer, ByVal p_Text As String, ByVal p_Width As Single)
ActiveSheet.OLEObjects("Label" & p_No).Object.Caption = p_Text
ActiveSheet.OLEObjects("Label" & p_No).Object.width = p_Width

End Sub

ここで、Captionへの表示は問題無いのに、width変更で
「オブジェクトは、このプロパティまたはメソッドをサポートしていません。」
のエラーが発生します。
Labelのプロパティで操作が許されるものと許されないものがあるのでしょうか?
Labelのプロパティで他に許されないものは何があるでしょうか?
よろしくお願いします。

A 回答 (4件)

こんばんは



属性値を調べてみるとわかると思いますが・・

OLEObject.Object には Width属性はありません。
幅を指定したい場合は、OLEObject.Width を指定することで、変更等は可能です。

https://docs.microsoft.com/ja-jp/office/vba/api/ …
    • good
    • 1
この回答へのお礼

ありがとうございます。
問題が解決できました。
ベストアンサーに選ばせていただきました。

お礼日時:2022/01/11 17:29

#1です


ちなみに  ByVal p_Width As Single は、
一応、Property Width As Double ですね
「エクセルのVBAでコントロール配列の使い」の回答画像4
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。
試してみましたが、doubleでもsingleでも状況は変わりませんでした。
別の方からobjectが不要とのご指摘があり本件はこれで解決できました。

ご協力ありがとうございました。

お礼日時:2022/01/11 17:30

「ByVal p_Width As Single」



「ByVal p_Width As Variant」
にしてみては?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
この宣言文が原因ではなく、Objectの記述が不要とのご指摘で
問題は解決いたしました。
ご協力ありがとうございます。

お礼日時:2022/01/11 17:35

こんばんは


.Objectが不要かな
https://docs.microsoft.com/ja-jp/office/vba/api/ …
    • good
    • 0
この回答へのお礼

同様のご回答が別の方からもあり問題が解決いたしました。
ご協力ありがとうございました。

お礼日時:2022/01/11 17:32

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