[[20051018170753]] 『オブジェクト名の変更』(森) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『オブジェクト名の変更』(森)

お世話になります。

1つのブックに複数のシートがありまして、

そのシートごとにオプションボタンがあります。

オプションボタンにはオブジェクト名が振られているのですが、

違うシートのオブジェクト名と重複するケースがありまして、

(業務上、オブジェクト名はクライアント側がつけるので変更できない前提です)

どうしても重複をさけたくて、マクロなどでブック単位にオブジェクト名の後ろに

連番を付加したいのですが、具体的なやり方がわかりません。

(現在)   
   

*******

【シート1】

opt_01N

opt_02N

 ・

 ・

 ・

【シート2】

opt_01N ←シート1のオブジェクト名と重複する

opt_02N ← 〃

 ・

 ・

(実現したいこと)

************

【シート1】

opt_01N001 ←ブック単位にオブジェクト名の後ろに連番をつけたい

opt_02N002

 ・

 ・

【シート2】

opt_01N006

opt_02N007

 ・

 ・

ちょっと気づいたのですが
オブジェクト名自体はマクロで変更できないようですが、
オブジェクトを配置している名前つきセルの部分を変更すると
オブジェクト名も同じように変わるみたいです・・・
あとはブックの中の名前つきセルを検索して連番をふっていければと
思うのですが・・・

なにか参考になるようなことでも結構ですので教えていただけると

助かります。同かよろしくお願いします。


 コントロールツールボックスのオプションボタンなら
 シート名から特定できますよ。
 Private Sub OptionButton1_Change()
 Sheets("Sheet2").OptionButton1.Value = Sheets("Sheet1").OptionButton1.Value
 End Sub
 Private Sub OptionButton2_Change()
 Sheets("Sheet2").OptionButton2.Value = Sheets("Sheet1").OptionButton2.Value
 End Sub
 (不知詠人)


 >オブジェクト名はクライアント側がつけるので変更できない前提です
 これの意味が分かりません。
 詳しい説明をお願い致します。

 それと問題点は何なのでしょうか?

 また何のオプションボタンですか?(コントロールツールボックス?)

 それとユーザーにオブジェクト名がどのように影響するのでしょうか? 
 (ふつうオブジェクト名が必要なのは、開発者では?)

  (INA)


ありがとうございます。

オブジェクト名はクライアント側がつけるので変更できない前提です

↑お客様がシートを作ってくるので最初からオブジェクト名をブックで
ユニークにすることができないって意味です(^^; スミマセン・・・

オプションボタンはコントロールツールボックスからセットしたオブジェクトです。

影響に関しましてはもらったブックをこちらのVB.NETで作成したバッチで
DBからとった値をブックの各オブジェクトにセットするのですが、
その際にオブジェクト名が重複していると不具合が発生してしまうので、
事前にマクロでブックの中でユニークなオブジェクト名をつけようと
しています。

やりたいことをまとめると、一つのブックの中に複数のシートがありまして、
そのシートの中に複数のオプションボタンがあり、ブック全体のオプションボタン
のオブジェクト名の後ろに連番をつけたいのです。

分かりづらくて申し訳ないですが、よろしくお願いします。


 一応変更は可能ですが、複数回だと番号が変になります(^_^A;
 
Sub Test()
For Each Sh In Worksheets
    For Each Obj In Sh.OLEObjects
        Cnt = Cnt + 1
        MyName = Obj.Name
        Obj.Name = MyName & Format(Cnt, "000")
    Next Obj
Next Sh
End Sub
 
ツールバーをデザインモードにしておいてから実行してください。

 (川野鮎太郎)


 オブジェクト名を変更したら、イベントが機能しなくなりますが、
 問題ないのでしょうか?

 >VB.NETで作成したバッチ
 それより、不知詠人さんが書かれているように、
 親オブジェクト(シート)を指定すれば回避できませんか?

  (INA)


どうもありがとうございます。

オプションボタンはDBからの値をセットして、
表示するだけなのでオブジェクト名が変わっても今回の場合は
問題ないので大丈夫です。
(DB値セット時に重複したコントロールが問題で、特にその後イベントを発生させるわけではないので)

とりあえず、ブックの中のオブジェクト名が変更できたことで
あとはカスタマイズしてやっていけそうです。
詳しく教えていただいて本当にありがとうございました。


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.