は、あなたが使用できる何かにあなたのShapes.Name値の名前を変更します。
Excelで図形のグループを作成する場合は、四角形とし、最初のオブジェクトを右クリックして[式]タブに移動し、[名前の定義]をクリックします。 pup-upウィンドウの一番下には、次のような行が表示されます。[= "Rectangle 73"]これはVBAのShapes.Name値です。 (ここでは何もしないとVBA Shapes.Nameの値は変わりません)
個々のオブジェクト名はIF Application.Caller.Name = "Rectangle 73"
とすることができます。また、VBAで整形した名前を変更することもできます。
それぞれの図形を手動で作成した場合、「長方形73」、「長方形74」、「長方形75」...コピーして貼り付けると、「長方形73」、「長方形102」、 "Rectangle 103" ... Shapes.Name値があるので、VBAで必要に応じてそれらを再定義できます。独自の個別のモジュールでこのコード
Sub nameShapes()
Dim shp As String
Dim shpType As String
Dim myName As String
'original root name of group shapes *do not include trailing space*
shpType = "Rectangle"
'new name of group shapes
myName = "newName"
'first number value of new shape names
n = 1
'number values of first, second, and last shapes
n1 = 73
n2 = 103
nx = 124
'active code --------------------------------------
'--------------------------------------------------
shp = shpType & " " & n1
ActiveSheet.Shapes(shp).Name = myName & " " & n
For x = n2 To nx
n = n + 1
shp = shpType & " " & x
ActiveSheet.Shapes(shp).Name = myName & " " & n
Next n
'--------------------------------------------------
'active code --------------------------------------
End Sub
プレイスには、単に値を入力し、RunSubのためのVBAウィンドウのツールバーにある再生ボタンをクリックしてください。
ここでn = Right(Application.Caller, 2)
を使用して、クリックしたボタンの数値を取得できます。 Dim n As Integer
を必ず指定してください。
異なるボタングループが同じ機能を呼び出す場合は、Select Case Left(Application.Caller, 7)
を使用して、そのボタングループに固有のアクションのshape.nameおよびCase "newName"
の最初の7文字を取得できます。
どのようなタイプのボタン(フォーム?アクティブなの?)とはどこですか(フォーム上、ワークシート上にありますか?)どのVBAコードを試しましたか?これは動作させることができますが、あなたがしたいことについて正確に詳細を提供する必要があります... –