61736


visioのVBAから、取得したshapeオブジェクトのNameプロパティに整数値を代入すると  
原因不明の小数値も一緒に代入されてしまいます。  
cStr関数を用いて代入しても結果は変わりませんでした。

`objShape.Name = 2`  
上記のようにshapeオブジェクトのNameに2を代入して、オブジェクト情報を見てみると2.872が  
入ってしまっています。

どのようにすれば整数値をそのまま代入することが出来ますでしょうか。

宜しくお願い致します。


CC BY-SA 4.0
2019-12-24T09:15:54.690
61733
2019-12-26T04:08:16.827
2019-12-26T04:08:16.827
29973
29973
question
vba
VBAからvisioのShape.Nameに整数値を代入したい


質問の件 確認してみましたが、`Visio Online` でも  
`Visio Professional 2016` でも 現象は再現しませんでした。  
ちゃんと指定されたような名前に変更されました。

どのバージョンの `Visio` で発生した事象でしょうか？

たしかに `Name` だけ変更しても `NameU` が変更されないという現象が発生したので、  
リンク先にあるように `Name` と `NameU` の両方を変更した方がいいようですね。

あと なぜ `Nane` に数値を入れようとしているのか気になります。  
数値を設定するなら、図形データの定義で 数値の項目 `YEN` を登録して

[code]

    vsoShape1.Cells("Prop.YEN").Formula = 26
    
[/code]

のような使い方をする方が Visio では一般的のような気がします。

図形に紐づいた情報を管理するのはその方がいろいろ設定できるので便利だと思います。

以下の 回答は参考までに残しておきます。

## 追記前の情報

一番近い参考になりそうな資料は  
[how-can-i-change-the-name-of-the-shape](https://answers.microsoft.com/en-
us/office/forum/office_2007-visio/how-can-i-change-the-name-of-the-shape-
in/9e355d44-386c-4c13-8a90-54cb30785dc3)  
かな・・。

Name と NameU の両方を変更するようです。

[NameU](https://docs.microsoft.com/ja-jp/office/vba/api/visio.shape.nameu)  
は ローカライズされていない方の名前で

[code]

    シェイプシートでは、セルの数式と値に汎用名だけが表示されます。
    
[/code]

とマニュアルに書かれているので、 汎用名=NameU の方も変更してみてください。

手元に確認する環境がないので、参考程度で・・。


CC BY-SA 4.0
2019-12-24T11:33:19.183
61736
2019-12-25T10:44:09.517
2019-12-25T10:44:09.517
18851
18851
61733
answer