 |
| |
ユーザー定義セルマネージャとエディター
|
|
|
|
|

|
|

|
|
ユーザー定義セルマネージャ
|
|
ユーザー定義セルエディター
|
|
上の図は、ユーザー定義セルマネージャとエディターのスクリーンショットです。上の画像をクリックすると、拡大表示してみることができます。
ユーザー定義セルマネージャとエディターを作成した動機は、シェイプシートに複雑な数式を入力したり、検証したりすることが、大変な苦痛になったからです。たとえユーザー定義セルだけでも、数式の入力や検証を大幅に楽にすることができればよいと思いました。また、ユーザー定義セルだけに限定すれば、そのようなツールが容易に作れるのではないかと考えました。このようなツールを使い、複雑な数式は、ユーザー定義セルの中で処理するようにすれば、シェイプシートの作業もかなり楽になるはずです。ユーザー定義セルマネージャとエディターには、VBAを使用しています。
|
|
ユーザー定義セルマネージャ
|
|
ユーザー定義セルマネージは、ユーザー定義セクションの挿入とユーザー定義セクション内の項目の追加、項目の名称の作成や変更を行うために使用します。
|
|
ユーザー定義セルエディター
|
|
ユーザー定義セルエディターは、ユーザー定義セルに数式を入力したり、数式を読み込んで調べたりするために使用します。ユーザー定義セルから読み込んだ数式は、人が見てわかりやすい数式に変換することができます。逆に、人が書いた数式を、ユーザー定義セルに書き込むことができる形式に逆変換します。この逆変換の能力はもちろん不完全ですが、非常に便利です。
|
|
|
|
ユーザー定義セルの複写 (*
2008年2月27日追加)
|
|
|
|

|
|
ユーザー定義セルの複写は、上の図のダイアログを使って、Shape A ユーザー定義セルを Shape B に複写します。ページやドキュメントに定義されたユーザー定義セルを
Shepeに複写することもできます。逆に、Shape
のユーザー定義セルをページやドキュメントに複写することもできます。
|
|
|
|
ユーザー定義セルマネージャの起動
|
|
<2>
追加 2008年3月6日
|
|
<2>
|
ユーザー定義セルマネージャの起動は以下のようにします。 右の図のようにあらかじめ「User
Cells Manager」というステンシルを開いておいてください。また、このステンシルは、VBAを使用していますので、VBAマクロが使用できるようにしておいてください。
|
|
|
|
|
シェイプにユーザー定義セルを作成する場合
<2>
|
- 「User
Cells Manager」というステンシルから、マスターシェイプ「Manager
Japan」を図面の上にドロップします。
<2>
- 図面にドロップしたシェイプの上で、マウスの右クリックで出てくるメニューから「User Cells
Manager」を選択します。
<2>
- 「User Cells
Manager」というダイアログが出ます。(上の図を参照)
|
|
ページにユーザー定義セルを作成する場合
<2>
|
|
|

|
ページにユーザー定義セルを作成する場合は、上の操作のようにマスターシェイプ「Manager
Japan」を図面の上にドロップしたあと、ページの上でマウスの右ボタンを押してメニュー「User
Cells Manager」をクリックします。
|
|
|
|
|
ドキュメントにユーザー定義セルを作成する場合
<2>
|
|
ドキュメントにユーザー定義セルを作成する場合は、ステンシルから「for
Doc Japan」をドロップします。
そうすると、ドキュメントのためのユーザー定義セルマネージャが起動します。あるいは、右の図のように、ドロップした「for
Doc Japan」の上で、マウスの右ボタンを押して、「User
Cells Manager for This
Document」をクリックします。
|

|
|
|
|
|
ユーザー定義セルエディターの起動
|
|
ユーザー定義セルエディターを起動するには、ユーザー定義セルマネージャのダイアログの上で、「Open
Editor」というボタンを押します。
|
|
ユーザー定義セルの複写の起動
(*2008年2月27日追加)
|
|
ユーザー定義セルの複写をきどうするには、ユーザー定義セルマネージャのダイアログの上で、「Copy
Usedr Defined Cells」 というボタンを押します。
|
|
ユーザー定義セクションの挿入
|
|
シェイプにユーザー定義セクションを挿入するには、ダイアログ「User Cells
Manager」の上で「Add User Section」というボタンを押します。 シェイプにすでにユーザー定義セクションがある場合は、「Add
User Section」というボタンは使用できません。
|
|
他のシェイプでユーザー定義セルマネージャを使用するには
|
|
他のシェイプにユーザー定義セクションを挿入したりするには、そのシェイプにもユーザー定義マネージャを起動したりするメニューが必要です。それには、以下のようにします。
|
- 上で述べたように、「User
Cells Manager」というステンシルからドロップしたシェイプを右クリックし、メニューから「User Cells
Manager」を選択します。
- 「User Cells
Manager」というダイアログが出ている状態で、他のシェイプをクリックし選択された状態にします。この場合、続けて2度クリックする必要があります。
- 「User Cells
Manager」というダイアログの上で「Add
Menus to Selected Shape」というボタンを押します。
- 「Close」ボタンを押して、ダイアログを閉じます。
- いま選択したシェイプの上で、マウスの右ボタンを押して、「User
Cells Manager」と「User Cells
Editor」と(*) 「Copy User
Defined Cells」というメニューが追加されていることを確認します。
|
|
ユーザー定義セクションに項目を追加するには
|
|
ユーザー定義セクションに項目を追加するには、ユーザー定義セルマネージャを使います。
|
- ユーザー定義セルマネージャを起動します。
- まだユーザー定義セクションがない場合は、挿入します。
- 「Add
Row」ボタンを押します。
このとき「Add
Row」ボタンの左側の「Row Name」というテキストボックスに名前を記入しておくと項目に名前をつけることができます。記入しなかった場合は、Visioの標準の「Row_1」という形式の名前になります。
|
|
ユーザー定義セクションに項目を確認するには
|
|
ユーザー定義セクションの項目を確認するには、「Row
List」という名前のコンボボックスを開きます。このコンボボックスの下にある「Sort
List」という名のチェックボックスをクリックしてONにしておくと、「Row
List」に表示される項目名がアルファベット順にソートされます。チェックボックスがOFFの場合は、実際の順番で表示されます。ここで「Sort
List」をONにしても、シェイプの中までソートされるわけではありません。
|
|
項目名を変更するには
|
|
たとえば、名前を付けるのを忘れて、Row_1
と登録されてしまった項目の名前を反抗するには、以下のようにします。
|
- 「Row
List」 という名前のコンボボックスを開き、表示されたリストの中から「Row_1」を探します。このとき、「Sort
List」をONにしておくと、項目名がアルファベット順に並ぶので探しやすいと思います。
- その項目名をクリックし、項目名を変更します。
- 「Edit
Row Name」というボタンを押します。
|
|
ユーザー定義セルエディターを開くには
|
|
いよいよこれからユーザー定義セルに数式を入力する、あるいは数式を見たいという場合は、ユーザー定義セルエディターを使います。ユーザー定義セルエディターを開くには、以下のようにします。
|
- ユーザー定義セルマネージャの上で、「Open
Editor」という名のボタンを押すか、シェイプの上でマウスを右クリックし、「User
Cells Editor」というメニューをクリックします。
|
|
ユーザー定義セルに書き込まれている数式を見るには
|
|
既存のシェイプやすでに作成済みのシェイプのユーザー定義セルの数式を見るには以下のようにします。
|
- 「Row
Name」 と書かれたリストボックスから、見たい項目の名前を探してクリックします。このとき。その下の「Sort
List」というチェックボックスをONにしておくと、項目名を探しやすいと思います。
- 項目名をクリックすると下の図のように右側のテキストボックスに数式が表示されます。数式だけでなくValue(値)やPrompt(コメント)も表示されます。下の図は、内接楕円のステンシルの「内接楕円
6」の場合の数式です。
|
|

|
|

|
|
数式を見やすくするには
|
|
上の数式はシェイプシートのユーザー定義セルの数式としては正しいのですが、決して見やすく、わかりやすいものではありません。そこで、上の図の数式には、"User.なになに"という文字列が繰り返し現れ、読みにくさを増しています。
|
|
|
|
|
|
そこで、「Hide
"User."」というボタンを押すと、数式から"User."という文字列が消去され以下のように表示されます。
|
|

|
|
上の図はユーザー定義セルに書き込まれている数式から、"User."という文字列だけを取り除いたものです。だいぶ見やすくなったと思いますがまだ、本当に見やすいとは言えません。その原因は"*"
(アスタリスク、掛け算を意味します)がやたらにたくさんあって、読みにくくしています。また
"^2" という文字列も読みにくいと思います。そこで「View
Human Formula」という長い名前のボタンを押すと、新しく、「Human
Formula Viewer」 というダイアログが開き、下の図のように表示されます。この方がずっと見やすいと思います。
|
|

|
|
|
|
ユーザー定義セルに数式を入力するには
|
|
ユーザー定義セルに数式を入力するには、ユーザー定義セルエディターの画面の「Formula」というテキストボックスに数式を書き込み、「Save
Formula」というボタンを押します。ボタンを押したとき、もしも数式に間違いがあると、エラーメッセージが出ます。数式はユーザー定義セルが受け付ける形式でなければなりません。
|
|
人が書いた数式をユーザー定義セルに合う形式に変換するには
|
|
人が書いた数式をユーザー定義セルに合う形式に変換することは、どんな場合でもできるわけではありませんが、このツールでできる範囲の例で説明します。 たとえば、上の図のような数式(下図参照)の場合について説明します。
|
|
|
- 上の項目で、「Human
Formula Viewer」に、まだこの数式が表示されている場合は、「Human
Formula Viewer」の上で「Copy」というボタンを押します。もしも表示されていない場合は、もう一度、表示させます。「内接楕円
6」の場合です。
- 「Close」ボタンを押して「Human
Formula Viewer」を閉じます。
- 「User
Cell Editor」の画面で、「Formula」のテキストボックス内の数式を消去します。(消去するには、テキストボックスをクリックし、キーボードで、[Ctrl]ボタンと[A]キーを押し、次に[Delete]キーを押します。)
- 次に先ほどコピーした数式を貼り付けます。(貼り付けるにはキーボードで[Cntl]キーと[V]キー)を押します。このとき画面は図のようになります。

- 「Replace
Chars for ShapeSheet」という名前のボタンを押します。

- すると以下のようなメッセージが出ますので「はい」を押します。「いいえ」を押すとこれで終わりになります。

- すると、テキストボックスの中の数式は下の図のように変わります。累乗の演算を示す上付きの数字は「^」 +
「数字」に変換され、掛け算を示す「*」が挿入されました。このほか、このボタンは、大括弧や中括弧を普通のカッコに変換します。

- このままでは、まだシェイプシートに入力できません。ユーザー定義セルの項目名には「User」とそれにすぐ続く「.」(ピリオド)が必要です。そこで次に「Show."User."」というボタンを押します。すると下の図のようになります。

- これで、シェイプシートに入力できる形式になりました。この式をもう一度チェックしこれでよければ、今度は、「Sva
Formula」という名前のボタンを押します。もしなにか不具合があれば、シェイプシートが受け付けないので、エラーメッセ字がでます。何も出なければ、入力されます。
- 以上が入力の説明です。しかしこのツールは完全なものではありません。不具合もあります。間違った数式が入力されることもあります。また正しい数式なのに入力できない場合も時々あります。不完全ですが、使い道によっては便利なツールです。
|
|
ユーザー定義セルの複写 (*
2008年2月27日追加)
|
|
|
|

|
|
Shape
から別の Shape へユーザー定義セルを複写するには、最初の
Shape を選択しておいて、上の図のように、Shape
A の [Select] ボタンを押します。このボタンを押すと、テキストボックスに選択された
Shape の名前が入ります。全く同様に別の
Shape を選択しておいて、 Shape B の [Select]
ボタンを押します。 次に、
[Copy] ボタンを押すと、Shape A のユーザー定義セルが
Shape B に複写されます。
|
|
Document
や Page への複写、Document や Page からの複写
|
|
Docuemnt
や Page への複写、Docuemnt や Page からの複写の場合は、Shape
A やShape B のテキストボックスの小さな逆三角形(▼)をクリックして
「Document」 あるいは 「Page」 をクリックします。(下図)
|
|

|
|
|
|
エラー発生時の対応
|
|
セルの複写は、単純なようで一筋縄では行かないところもあります。行の名前が重複していたり、式が参照しているセルが見つからないときは、エラーが発生します。
|
|
上の図の
「On Error」 で 「Stop」 が選択されているときは、エラーが発生したら即座に処理を中止します。
「Neglect」 の場合は無視して続行しますが、結果はVisioの標準的な対応になります。行の名前が重複している場合は、User.Row_3
というような行の名前になります。
式の参照が解決できないときは、0
が入ります。 「Skip」
の場合は、行の名前が重複している場合は上と同じですが、式の参照が解決できない場合は、「"<<
Skipped on error. >>"」という文字列が入ります。
|
|
|
|
|
|
|
|
ユーザー定義セルマネージャとエディターのステンシルはここからダウンロードできます。
|
|
|
|
2009年3月6日
|
|
|