プログラム:Excel 2016.Excelシートで特定の形状をターゲットにする方法
私は多くの形のシートを持っています。それぞれに固有の固有の名前が付いていて、ほとんどがラベルです。私は、彼らのキャプションプロパティを変更したいが、私は方法を見つけることができませんが、このような一つ一つそれらを呼び出す:
LblLabel_1.Caption = ...
LblLabel_2.Caption = ...
LblLabel_3.Caption = ...
代わりに、私はこのような何かを探していた。
For BytCounter01 = 1 to 255
Shapes("LblLabel_" & BytCounter01).Caption = ...
Next
この1エラー438が発生します。基本的にキャプションはこのオブジェクトには使用できません。次のコードからオブジェクトをターゲットにします。
Debug.print Shapes("LblLabel_" & BytCounter01).Name
私はその名前を返します。解決策を探してい
:
-i'veではなく、シェイプのコントロール(「LblLabel_」& BytCounter01)(「LblLabel_」& BytCounter01)を試みたが、それが制御するので動作しませんが唯一のユーザーフォームのためである、ではありませんシートの場合。
-i'veはShapes( "LblLabel_" & BytCounter01).TextFrame.Characters.Textを試みましたが、エラー438を再度返します。ラベル-since
がグループの一部である、私は
Shapes("ShpGroupOfShapes01").GroupItems(ShpShapeIndex).Caption
と
Shapes("ShpGroupOfShapes01").GroupItems(ShpShapeIndex).TextFrame.Characters.Text
の両方を試してみましたが、再び438を持っています。
シート上の特定のラベルを簡単にターゲティングし、キャプションを変更する方法はありませんか?
ありがとうございます。
EDIT:Excelosaurusのおかげで、問題は解決しました。私のラベルはActiveXコントロールがあるので、私はこのようなものを使用する必要があります:
For BytCounter01 = 1 to 255
Shapes("LblLabel_" & BytCounter01)OLEFormat.Object.Object.Caption = ...
Next
あなたは彼の応答や詳細についてのコメントを確認することができます。おかげさまでExcelosaurus!
お返事ありがとうございます。私はファイル内のコマンドをテストしましたが、ランタイムエラー5を与えています。あなたのサンプルを完全に新しいファイルに複製しようとするので、正しく確認できます。 –
ファイルを複製しましたが、行shtMyShapes.Shapes(sShapeName).TextFrame2.TextRange.Text = sShapeCaptionが実行時エラー「 '-2147024809(80070057)」を返しています:許容値から指定した値»説明が翻訳されているため、正確ではない可能性があります)。私は何が間違っているのか分かりません。 –
OK "ラベル"は通常の図形ではありません。フォームコントロールか、開発者タブから挿入されたActiveXコントロールです。 フォームコントロール: 'shtMyShapes.Shapes(sShapeName).OLEFormat.Object.Caption = sShapeCaption' ActiveXコントロール:' shtMyShapes.Shapes(sShapeName).OLEFormat.Object.Object.Caption = sShapeCaption' – Excelosaurus