• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ノーツのデータをVBScriptで取得したい)

VBScriptを使用してノーツのデータを取得する方法

このQ&Aのポイント
  • ノーツのデータをVBScriptを使用して取得する方法について、質問しています。
  • 現在、VBScriptを使用してノーツのデータを取得しようとしていますが、GetItemValue関数から値を取得できない問題に直面しています。
  • ノーツのバージョンは4.6aで、OSはWindows 2000 Professionalです。解決策をお知らせいただけると助かります。

質問者が選んだベストアンサー

  • ベストアンサー
  • nota55
  • ベストアンサー率37% (138/366)
回答No.1

メッセージをそのまま受け取ると, itemValueListが配列ではないにもかかわらず, 配列として扱っている(itemValueList(0)の部分) からではないかと思われます。 単なる勘なんですけど,LotusScriptにおいて, NotesDocumentクラスのGetItemValueの戻り値は 確かにString型の配列ですが,VBScriptで 暗黙的に型変換(文字列とか)されているのでは。 試しに7行目itemValueList = objDoc.GetItemValue("Subject") の後に,Msgbox(IsArray(itemValueList))で確認して みて下さい。(配列であればTrueが返るはずです) またMsgbox(itemValueList)などとして,中身をが改行や コロンで区切られた文字列リストであれば,Splitで配列を 作成してやればよいかもしれません。 っつーか,Subjectのアイテム数が1つだけ(配列ではない) ことが確実であれば,そのまま WScript.Stdout.Write(itemValueList&vbCrLf)とか できないんでしたっけ? ↑Stdout.Write使った事ないんで,かなりテキトーです。 参考までにWScript.Stdout.Write(TypeName(itemValueList)&vbCrLf) が何を標準出力に送信してるか教えて頂けると嬉しいです。

funi2
質問者

お礼

回答ありがとうございます。こんなややこしいことに回答いただけて本当にうれしいです。 Msgbox(IsArray(itemValueList)) はTrueが返ってきたので配列だとわかりました。 Msgbox(itemValueList)は, "実行時エラー: 型が一致しません。"と怒られてしまいました。やっぱりこいつが何かの原因と思われてしかたありません。 TypeName(itemValueList)の値は, String()でした。 文字列の配列ですね... 補足ですが, itemValueListのUBoundとLBoundは共に0でした... ついでですが, WScript.Stdout.Writeを使うと, cscriptと打って, コマンドラインから使わなくてはいけませんが, 大量に表示しなくてはいけない場合が私の場合多くあって, MsgBoxだと苦痛なのです。OKを何回も押さなくてはいけないので...

その他の回答 (1)

  • nota55
  • ベストアンサー率37% (138/366)
回答No.2

ありー だめですか。 んじゃワンクッションおいて itemValue = itemValueList(0) Msgbox(itemValue) なんてのはだめでしょうか。 相変わらず役立たずですみません。

funi2
質問者

お礼

itemValue = itemValueList(0) のところでエラーを出力されてしまいました。 自己レスになってしまいますが, 私も質問後にあっちへこっちへ検索していると, VBScriptで配列をOLEから受け取るときはVariant型の配列でないとだめよ, という記述を見つけました。GetItemValueの型はString()となっているので, おそらくLotus側でString()ではなく, Variant型で返すように変更しないといけないのでしょう... とはいってもそれは無理なので, VBScriptでの取り出しはとりあえずあきらめて別の手段を探します。 お付き合いいただき, 本当にありがとうございました!!