- 01: 名前:さとう 投稿日:2000/06/01(木) 18:16
- 最近、度々お世話になっています、さとうです。
お題の内容を過去ログから検索したところ
VBによる設定方法がありました。
〜〜以下、過去ログから抜粋〜〜
もし、すぎTさんの言われているものが文字列であるならば、
ダブルクォーテーションの数が足りないだけではないでしょうか。
たとえば、カスタムプロパティ(Prop.Row_1)のプロンプトを
変更したいのであれば、
....Cells("Prop.Row_1.Prompt").Formula = """abcd"""
とすれば、"abcd"に変わると思います。
〜〜以上、過去ログから抜粋〜〜
そこで、上記を真似てVC++上で以下のように記述して
実行してみました。
〜〜以下、私が勝手に真似て作ったプログラム〜〜
1. CVisioShape shape;
2. CVisioCell cell;
3. :
4. hr = shape.cells(VBstr("Prop.ProcessName.Value"),cell);
5. hr = cell.putFormula(VBstr("""abcd"""));
〜〜以上、私が勝手に真似て作ったプログラム〜〜
その結果、5行目の戻り値が「-2032466907」で、失敗に終わりました。
ちなみに、5行目の「"""abcd"""」を「"abcd"」にしても、同じ結果と
なりました。
どのように記述すれば成功するのでしょうか?
どなたか助けて下さいぃぃぃぃ!!!
- 02: 名前:さとう 投稿日:2000/06/01(木) 19:04
- セル("Prop.ProcessName.Value")の存在を、CellExistsメソッドで
fExistsLocallyは"-1"にして調べてみました。
その結果、戻り値はFALSEになってました。
これが原因なのでしょうか?
もし、これが原因なのであれば、戻り値をTRUEにする方法はあるのでしょうか?
それとも、Label、Prompt、SortKey、Type、Format、Invisible、Ask以外は、
絶対にユーザプログラムから更新することはできないのでしょうか?
- 03: 名前:管理人投稿日:2000/06/02(金) 02:23
- >セル("Prop.ProcessName.Value")の存在を、CellExistsメソッドで
>fExistsLocallyは"-1"にして調べてみました。
>その結果、戻り値はFALSEになってました。
シェイプシートを開いてみて ProcessName があれば問題ないハズです。
Formula は継承に依存しないはずなので・・・
- 04: 名前:さとう投稿日:2000/06/05(月) 18:36
- いろいろ試しているのですが、うまくいきません。
もしかして、カスタムプロパティの設定方法がまずいとかってあります?
- 05: 名前:管理人投稿日:2000/06/05(月) 19:38
- >もしかして、カスタムプロパティの設定方法がまずいとかってあります?
詳しくないので・・・
DVSのサンプルは役に立ちませんでしたか?
最悪の場合は英語の公式サイトで質問する手が残されていたんですが・・・直URLをメモしてなかったので(^^ゞ
もし覚えている方が居たらコッソリ(じゃなくても良いと思うけど)教えてください。
- 06: 名前:さとう 投稿日:2000/06/06(火) 12:42
- VBでやったら、すんなりうまくいきました。
原因わからず...
個人的には、Cに慣れ親しんでいるので、最後まで
Cでやりたかったのですが、断念します。
(マニュアル等もVBベースで説明されていますし)
- 07: 名前:みやざわ 投稿日:2000/06/08(木) 11:38
- もう、遅いかもしれませんが、私の場合、こんな関数を作ってうまくいってますけど・・。
ちなみにプロパティ名にドットを二つ持たせたことはないので、まったく同じ条件ではないですけど。
僕も、C++でプログラム作ってますが、かなり苦労しました。
まぁ、癖を掴めばだいたい大丈夫ですけど。(まだEventの制御はしてませんが)
オンラインヘルプはC++での記述が少ない上に、時々嘘を書いてますので注意してください。
特に、GetResultsについては、コンパイルの通らないサンプルプログラムが記載されています。
//-----------------------------------------------------------------------
// PutCellFormula 指定されたCellに値を設定する
//-----------------------------------------------------------------------
HRESULT PutCellFormula(
CVisioShape Shape // (I) 対象Shape
,char *CellName // (I) セル名
,char *buff) // (I) 設定値
{
HRESULT hr ;
CVisioCell Cell ;
if((hr = Shape.Cells(VBstr(CellName), Cell)) != S_OK)
return(hr) ;
hr = Cell.putFormula(VBstr(buff)) ;
return(hr) ;
}
■トップに戻る リロード 単独スレ表示
|