KoMaDo   VISIO SQUARE : ShapeSheet  ■ Headline ■ HOME    

ShapeSheetトップへ ▼カッ飛び最後   全レスを表示

  行の挿入でエラー

01: 名前:まるいぬ投稿日:2004/02/14(土) 10:50
シェイプシートで、ユーザー定義セクションに行を挿入しようとすると、
「エラー(1303)アクション:行の挿入実行時に起こりました
’Row_3'という名前はすでに使用されていあます。別の名前を選択してください。」
と出てしまいます。

セルはRow_5まであって、実はその前に削除したり挿入したりで整理をしていました。
5を選択して挿入しているはずなんですが。
「選択したセルの下に行を挿入」もグレー表示で、実行不可になっています。
今までのセルの名前をクリアするとかしないとだめなのでしょうか。
そういう方法があれば・・・
エラーの情報などを探してみたのですが、わかりませんでした。
誰か知っていたらお願いします。

02: 名前:yoda投稿日:2004/02/14(土) 18:36
私のは、Visio2000ですが、エラーは出ません。
「選択したセルの下に行を挿入」もグレー表示で、実行不可
は、これで、正常なのかと思います。
エラーになる図面をUPLOADしていただければ、
調べて見ましょう。

03: 名前:まるいぬ投稿日:2004/02/16(月) 12:20
いつもありがとうございます。
図面の方ですが、お客様の依頼のもので、社外に出すことができません。
内容を問題のない程度まで削除してから、またそのような状況になったらUPしてみます。
よろしくおねがいします。

04: 名前:M1号投稿日:2004/03/24(水) 14:17
セルに対して行の追加/削除を行っているとよく出るエラーですね。
あと、シェイプシートでは見えていないのにVBAからだと見えてしまう(アクセスできてしまう)とか・・・
あとで周りの人間に詳しいことを聞いてみます。

05: 名前:M2号投稿日:2004/03/25(木) 14:41
関係があるかどうかわかりませんが、私のVBでの経験です。
特定の名前のユーザー定義セルを「CellExists」プロパティで参照すると、シェイプシート上の
ユーザーインターフェースで名前(User.xxx)が見えていないにもかかわらず「True(セルが有る)」
と判別される現象がありました。

調査したところ、Visio2000以降では、オフジェクトに付けられる名前に「ローカル名」と「汎用名」が
区別されるようになりました。
Visio2000/2002 では、新規挿入後の最初のセル名の変更でローカル名と汎用名の両者が更新
されます。(例: Row_1→abc)
2回目以降のシェイプシート上の変更では、ローカル名のみの変更となります。
(例: abc→abcdeと変更した場合、ローカル名=abcde、汎用名=abc)
そのために、CellExistsで最初に付けた「abc」を検索すると、最初のローカル名
であり汎用名であるため True が返されます。

尚、本件はVisio2000およびVisio2002でおきる現象で、Visio2003ではセルを何回書き換えても
「汎用名=ローカル名」になります。
以下をご参照ください。

http://support.microsoft.com/default.aspx?scid=kb;ja;418228&Product=visioJPN [source] [check]

ただ、私はまるいぬさんのように、シェイプシート上で行が挿入できなくなったことはありません。
本来であれば、VB/VBAのスレッドに書き込むべきなのでしょうが、すいません。

06: 名前:yoda投稿日:2004/03/25(木) 14:47
よく、これだけ調べましたね。

07: 名前:kn投稿日:2007/03/31(土) 06:05
スレの再利用ですみません。2007 Proの質問です。

適当な図形を書き、シェイプシートにShape Dataの項目を挿入し、このShape Dataに
行を追加しました。
Row_1, Row_2…とできた行の名前を各々変えたあと、途中に行を挿入しようとして、
右クリックから【行の挿入 (選択した行の後ろへ)(A)】を実行しようとすると、メニューが
灰色になっていて、実行できません。

どうすれば、後から途中の行に挿入できるのでしょうか。
VBAを使うしかありませんか?

#右クリックメニューは意味ありげだけど、実は機能が殺されてるとか…。

08: 名前:yoda投稿日:2007/03/31(土) 21:58
たしか、どうやっても、できないと思います。
行の途中に行を挿入できるのは、
ごく限られた、セクションだけではなかったかと、
思います。
たとえば、2行目を削除して、新たな行を追加し、
次に3行目に、削除した行を再記入する、
というようなことしか、ないような気がします。

09: 名前:kn投稿日:2007/03/31(土) 23:20
レスありがとうございます。

やはりダメなんですね。

10: 名前:kn投稿日:2007/04/02(月) 06:46
たびたびすいません。

とりあえず Shape Data の項目と行を追加するコードを書いてみましたが、
不具合がでました。

1.セルへの値の代入ができない
2.VBAエディタのローカルウインドウで、Shapeオブジェクトの中身を見ようとしたが、
 Shape Data(あるいはProp)の項目が見つからない。


VBAで以下のようなコードを書きました。

Sub SetProperties()
Dim shpObj As Visio.shape

Set shpObj = Visio.ActiveWindow.Selection.Item(1)
With shpObj
'Shape Dataセクションを追加する。これは問題ない。
'.DeleteSection visSectionProp
.AddSection visSectionProp

'"ShapeClass"の名前でプロパティを追加する。
.AddNamedRow visSectionProp, "ShapeClass", visTagDefault

'プロパティの各セルの値を変更する。
'Labelセル以下に値をセットしようとするが、このコードだと失敗
.Cells("Prop.ShapeClass.Value").FormulaU = "ShapeClass"
.Cells("Prop.ShapeClass.Label").FormulaU = "ShapeClass"

End With
End Sub

excelでは.cells(....).value = "hoge"みたいに代入できたと思いますが、
visioではだめでした。

シェイプシートからShape Dataの状態は確認できるのですが、VBA上のローカル
ウインドを開いて、shpObj を見ようとしても、PropあるいはShape Dataの項目が
みつかりません。

11: 名前:yoda投稿日:2007/04/02(月) 07:52
ダブルクォート(2重引用符)にする必要があります。
数式ではないデータは、セルに記入された時点で、
"ShapeClass"となっていなくてはなりません。
そのため、外側にもう一回り、引用符が要ります。
"""ShapeClass"""

12: 名前:kn投稿日:2007/04/04(水) 21:21
ありがとうございます。


ShapeSheetトップへ ▲カッ飛び先頭   全レスを表示