ホームへ戻るData Base 桐 User Board過去ログ一覧検索プロパティほっ!
過去ログ No135


   書き込み数 : 6750件


<6750> Re:桐とエクセルの関係/hidetake 2005年10月27日 木曜日 17時06分15秒
> 確か、桐の表そっくりに色付けしてたと思いますけど。
> データベースとは全然関係ない部分なのでDAOではできないのかも?

そういう関係ですかね? でも、それだけだともったいないようなぁ〜
Excel なしで Excel ファイルを作成できる方がメリットは大きいような?

それと、Excel.Application を使う事のデメリットは、Excel が起動して
いると、「Excel書き出し」は行えないという事と、連続して書き出すとき
に、Excel が終了するのを待てないという、毎度毎度出てくる質問もある
問題はありますよね。・・・
<6749> Re:桐とエクセルの関係/うにん 2005年10月27日 木曜日 10時00分38秒
確か、桐の表そっくりに色付けしてたと思いますけど。
データベースとは全然関係ない部分なのでDAOではできないのかも?
<6748> Re:桐とエクセルの関係/hidetake 2005年10月27日 木曜日 09時13分42秒
何か、書き出しにおいては DAO では kthree の(ユーザの?)希望するような
要求に答えきれなくて、Excel.Application では、それが可能で、仕方なく
書き出しだけは Excel.Application を使うようにしたのかなぁ〜?

だとしたら、それはいったい何?
<6747> 桐とエクセルの関係/hidetake 2005年10月27日 木曜日 09時04分53秒
桐は、読み込みにおいて DAO を使い、書き出しにおいては Excel.Application
を遣っているという事は何回か書きましたが、どうして、このようになったので
しょうかね?

DAO は Windows 2000 以降、2000 / XP と OS 標準で持っていて、Excel の
導入とは関係なしに使えるわけですが、Excel.Application の方は Excel その
ものですから Excel のインストール無しでは使えません。

で、折角、読み込みの方は DAO 使っているので、本来ならば Excel 無しで
.XLS ファイルの読み込みは可能にしているわけです。それに対し、書き出しの
方は、わざわざ Excel を必要とする Excel.Application を使っているのです
が、何故でしょうね!?

折角ならば、書き出しの方も DAO を使ってしまえば(今だと ADO 方が良いので
しょうが)、Excel 無しで、読み込みも書き出しもできたでしょうに・・・

# まぁ〜、Excel のアドインについてはおまけで十分な範囲でしょう!!! :-)


DAO を使った Excel ファイル作成の例
CreateXLS.VBS
'----------------------------------------------------------------
DBPath = "L:\Book1.xls"

Set DBE = WScript.CreateObject("DAO.DBEngine.36") '97の場合は35
Set DB = DBE.Workspaces(0).OpenDatabase(DBPath, False, False, "Excel 8.0;HDR=yes;")

DB.Execute "CREATE TABLE Sheet1 (id int, data char(255));"
DB.Execute "INSERT INTO [Sheet1$] (id, data) values (111, 'ABC');"
DB.Execute "INSERT INTO [Sheet1$] (id, data) values (222, 'XYZ');"

DB.Close
Set DB = Nothing
Set DBE = Nothing
'----------------------------------------------------------------
<6746> re:<6741>表現(ことば)を、まちがえていました/たゆー 2005年10月26日 水曜日 23時02分07秒

<6741>の、
>>リストボックスって使ってないみたいですが。
>▼のスライドバーと連動し、どちらを動かしても反映するようになってます
は、入力支援ボタンのドロップダウンリストの意味です
訂正させていただきます

<6745> 桐では「*」なのに/たゆー 2005年10月26日 水曜日 21時50分12秒

>たゆーさん、なでしこ使ってますよね。それにタイムスタンプ変更機能があるようですが?
>http://nadesi.com/doc/cmd-func.htm#623
情報ありがとうございます。またじっくり調べてみます

ところで、
>#すごいなあ、なでしこ

コメントの先頭文字ですが、桐では「*」ですよね。
しかし掲示板等で見かけるのは「#」が多いですね。これはいったいどうしてでしょうね
VBSでは「'」(参考:<6714>)のような書き方もあるようです
私が強いて知ってる唯一の言語(BASIC)でも「'」を、コメントとして使用可能でした
あと「REM」だったかな?も可能でした

<6744> re:オブジェクトの順でイベントが効かなくなる・・のかな?/たゆー 2005年10月26日 水曜日 21時27分53秒

>あえて、「グループボックス」でマウスイベントを使用しない場合は、
>チェックを外すと良いです。
今回は、グループボックスに「ソース値更新」を設定してましたので簡単には
修正できませんが、本当に必要ならそれぞれのオブジェクトの「マウスイベント」
あたりで対応すればいいということですね。了解いたしました

と、書いた後、少し気になり「イベントを使用しない」に設定したところ
「ソース値更新」は残りました(????)
つまり、「ソース値更新」は、マウスイベントの使用有無でなく利用できるようです

これを知ってれば・・・・
<6743> re:ファイル複写時のタイムスタンプ/うにん 2005年10月26日 水曜日 17時27分45秒
たゆーさん、なでしこ使ってますよね。それにタイムスタンプ変更機能があるようですが?
http://nadesi.com/doc/cmd-func.htm#623
#すごいなあ、なでしこ
<6742> Re:オブジェクトの順でイベントが効かなくなる・・のかな?/hidetake 2005年10月26日 水曜日 15時34分53秒
> この画像は現在グループボックスより前面(リストボックスでは下方)に
> ありますが、画像の重なり順をフォーム上では背面へ(リストボックスでは
> 上方)に移動すると、画像のクリックで選択できなくなってしまうようです

これって、「グループボックス」の「イベント」で「マウスイベント」を
使用するにチェックが入っているので、「ピクチャ」より全面になっている
と、「グループボックス」の「マウスイベント」の方を処理しようとして
「ピクチャ」の方の「マウス左ダウン」には処理がわたらないからでしょう。

あえて、「グループボックス」でマウスイベントを使用しない場合は、
チェックを外すと良いです。

# バッチファイル経由で VBS を実行しているのですか・・・ (^^;
# 「シェル実行」コマンドって不便ですね! :-(
<6741> re:オブジェクトの順でイベントが効かなくなる・・のかな?/たゆー 2005年10月26日 水曜日 13時57分48秒
>け、けんじくん。。。
お気に召していただけましたか?

>動かないというのはどんな現象でしょう。
イベントの件ですが「naoko」「kenji」を選択するのに
現在はグーループボックスの中の「○チェックボックス」「名前そのもの」の
他に画像をクリックしても変更されるように作成してあります

この画像は現在グループボックスより前面(リストボックスでは下方)に
ありますが、画像の重なり順をフォーム上では背面へ(リストボックスでは
上方)に移動すると、画像のクリックで選択できなくなってしまうようです

ややこしい書き方をしましたが、意味が通じますでしょうか

>リストボックスって使ってないみたいですが。
▼のスライドバーと連動し、どちらを動かしても反映するようになってます
<6740> Re:オブジェクトの順でイベントが効かなくなる・・のかな?/うにん 2005年10月26日 水曜日 12時58分21秒
け、けんじくん。。。
複雑ですね〜。スライドバーを作ったんですね。
リストボックスって使ってないみたいですが。動かないというのはどんな現象でしょう。

<6739> re:ファイル複写時のタイムスタンプ/うにん 2005年10月25日 火曜日 23時37分49秒
cygwinつうのはUNIXのコマンドをWindowsで使えるようにする環境です。
touchはまんま「触る」で、ファイルのタイムスタンプを変更するコマンドです。
内容を変更せずに「最終アクセス」「最終変更」日時を(片方でも両方でも)変えられまです。

vbsでtouchを作ったのがありますね。桐からならこれをいじれば使えるかも?
http://www.vector.co.jp/soft/winnt/util/se310142.html
<6738> パソコンって/たゆー 2005年10月25日 火曜日 21時55分02秒

パソコンって、やはり使いこなすのは難しいですね

(もしかして前にも書いたかも知れませんが。古〜いはなしです。)

某学校の校長をされてて定年退職されたかた(今はお亡くなりになってます)から、何度も
メールをいただいたことがあります

それまで、いろいろ質問のメールをお送りいただき、それなにり返事を書いたつもりですが
最終的に、こんな言葉をいただきました

「私は、約40年教壇に立ち授業の最後に、本日のところでわからない所はありませんか?と
 聞いても、生徒からは質問はなし・・・とりあえず、今日の分は終了」と思った(思ってた)

この校長先生とメールでお話をしているうちに、最後はこのように言葉が変わりました
「生徒が質問しないのは理解したからでなく、その日のの内容すら理解できなく、質問する
 ところがわからない?状態ではなかったのだろうか」

たぶん、そのときの私の説明が不十分だったとは思いますが、いまの私の教訓として受けとめて
います


「桐質問掲示板」を開いて約3ヶ月。ぜんぜん井戸端BBSの代わりまでは行きませんが
質問をされるかたは、すばらしいと思っております

今後ともよろしくお願いいたします

<6737> オブジェクトの順でイベントが効かなくなる・・のかな?/たゆー 2005年10月25日 火曜日 21時22分18秒
subtitle>re:テキスト読み上げ/たゆー
これは、決してコマーシャルではありませんが、
先日、「ほっ!」の53に設定変更をできるものを掲載しました・・・が
このなかの「Naoko」さんと「Kenji」君(ピクチャーオブジェクトです)

もちろん、アップした状態ではうまくイベントが動くのですがオブジェクトリストを
利用し上方(グループボックスの下・リストボックスの上?)へ移動するとうまく動きません

どこかあとすこし設定ですむとおもうのですが。

ちなみに「Naoko」さんと「Kenji」君の画像は、私のイメージです

<6736> re:ファイル複写時のタイムスタンプ/たゆー 2005年10月25日 火曜日 21時08分24秒
なるほど、わかりました。
なぜフォールダの日付が更新されたりそうでなかったり・・・・
「NTFS」「FAT32」とかの関係があったのですね

ps
>GUIだと桐から使いにくいなあと思って、cygwinのtouchコマンドを使ってみたら
こんなことばが理解できるようになりたい
<6735> Re:ファイル複写時のタイムスタンプ/うにん 2005年10月25日 火曜日 12時50分51秒
Vectorに色々あるので、標準じゃできないのでしょうね。
GUIだと桐から使いにくいなあと思って、cygwinのtouchコマンドを使ってみたら
フォルダのタイムスタンプ変更もあっさりできてしまいました^^;
でもNTFSだと「中身が弄られれば、その時の時刻」になっちゃうのでやはりあまり意味なさそう。
FAT32だと中身の変更では維持されますが、これは「中身の変更はフォルダの変更とみなしてない」
からで、作成日を表示してるからではないのですね。
(touchでは作成日は変更されません)
エクスプローラで表示を詳細にすると作成・最終アクセス・最終更新を表示できますね。
最終アクセスだけ「日時」なのにFAT32だと時刻は全部00:00だ^^;
<6734> Re:ファイル複写時のタイムスタンプ/うにん 2005年10月25日 火曜日 12時23分22秒
>中身が弄られれば、その時の時刻でフォルダの更新時刻も更新

されてないマシンがあるので、?と思ったらFAT32でした。なるほど。
しかしNTFSでもフォルダのプロパティで「作成日時」と表示されてるのは、変ですね。

DIRコマンドのオプションでこんなのがあるので、作成と更新は別に管理されてるようです。
Win2kのFAT32でも区別されてます。
それなら作成日を変えられてもよさそうな。

/T どのタイムフィールドを表示するか、または並べ替えに使用するかを
指定します。
タイムフィールド C 作成
A 最終アクセス
W 最終更新
<6733> Re:ファイル複写時のタイムスタンプ/hidetake 2005年10月25日 火曜日 06時13分26秒
下のは私です! (^^;
<6732> Re:ファイル複写時のタイムスタンプ/ 2005年10月25日 火曜日 06時12分48秒
> フォルダの時間は、複写処理時間になるようです

フォルダの時刻の複製は基本的に無理です。
無理矢理やろうとすれば、OS の日付を一時的に
複写したい時刻に変更した上で、複写(フォルダの
複製)を行う方法がありますが、ファイルシステムが
NTFS の場合は、デフォルトの設定として、フォルダの
中身が弄られれば、その時の時刻でフォルダの更新時刻
も更新されます。

なので、面倒な事をして時刻を複製しても直ぐに希望の
時刻から変更させられる場合が多いです。
なお、このフォルダの中を弄られた場合のフォルダの更新
時刻が変化しないようにレジストリで設定変更できたと
思いますが、基本的には OS デフォルトの設定で使われた
方がよろしいかと思います。

まら、ファイル管理ツールでフォルダの時刻を変更できる
ものがありますが、これもパソコンの時刻を一時的に変更
してフォルダを操作しているものが(でないとNT系列では
無理(NTFS系))多いようです。でも、これも先に書いたよう
に中身を弄ると直ぐに変わってしまいますので、それほど
意味のあるものではありません。

私の場合、CR-R に焼くときにフォルダの時刻を統一して
焼きたい場合は、そうしていますけれど! (^^;
<6731> re:ファイル複写時のタイムスタンプ/うにん 2005年10月24日 月曜日 23時10分15秒
フォルダは複製というのはなくて同じ名前で作っているだけなので現在日時になるんですよね?
DOSでいえばCOPYではファイルしか複写できず、MDというのが必要で。。。
XCOPYつうのもありましたがディレクトリは「作成」されますね。
システムの時間を変更するのが一番簡単そう^^;
<6730> re:ファイル複写時のタイムスタンプ/たゆー 2005年10月24日 月曜日 20時31分01秒
ちなみに、桐のコマンドでできれば最高ですが
エクスプローラ等標準の操作でもかまいません

よろしくお願いいたします

<6729> ファイル複写時のタイムスタンプ/たゆー 2005年10月24日 月曜日 20時28分21秒

ファイルの複写で新しくできたファイルのタイムスタンプについてですが
ルールをご存知ないでしょうか?

複写元にあって、複写先にない場合、新しくできるファイルの日付は
複写元のファイルのタイムスタンプになるようです(これも、さだかでないです)が
フォルダの時間は、複写処理時間になるようです

これを、複写元と同じタイムスタンプで複写できないでしょうか?
とりあえず、全複写後、再度上書き複写とか・・・・

<6728> Re:テキスト読み上げ/hidetake 2005年10月21日 金曜日 09時49分12秒
もし、私が書いたスクリプトを XP + Office 2002 もしくは 2003 の
環境だけでなく、Windows 2000 でも動かしたければ、下記から SAPI
5.1SKD をダウンロードし、Office の日本語音声合成エンジンと組み
合わせればそのまま使えるかな? (あるいは 98 も)

http://www.microsoft.com/speech/download/sdk51/
http://www.microsoft.com/downloads/details.aspx?familyid=5E86EC97-40A7-453F-B0EE-6583171B4530&displaylang=en

必要なのは SpeechSDK51.exe [69606 KB]の方(だけ)です。

SpeechSDK51LangPack.exe [83492 KB]の LangPack に惑わされて
しまいますが、これに入っているのは日本語と中国語の音声認識
エンジンだけであり、音声合成エンジンは含まれていません。 (;_;)

と言う事で、Office の日本語合成エンジンを持っていない人は
Agent + TTS の古いバージョンを使うしかない。
Office の 2002 以降を持っている人は XP であれば、そのまま
OS 標準の機能を、それ以外の OS の人は SpeechSDK51 を入れて
使う方法もあるのかな!? と一応、まとめて書いておこう。 (^^;


# .NET の新しい SpeechSKD と言うのも出ているようだけれど
# まだβ版のようですね! それにやけに大きいしファイルが多い。 :-)
<6727> re:<6726>/ド・モ・ONnoji 2005年10月20日 木曜日 21時16分37秒
>>もちろん、サポート対象外でしょうけれど
>そういうのもあるでしょうね

御意です。(^^v

<蛇足>

変な話ですが、私は日系二世のおフランス人であるにもかかわらず(これはウソですよ)、
フランス式の庭園よりも、
イギリス式の庭園のほうが自分の好みに合うのですよね。(^^ゞ

<6726> re: <6724>もちろん、・・・・/たゆー 2005年10月20日 木曜日 20時58分42秒

>もちろん、サポート対象外でしょうけれど
そういうのもあるでしょうね
しかし、私は「タブメニュー」や「桐V9」で「*.gif」表示等、1年以上使用していますが
大きな問題はないですね

しかし、「サポート対象外」の機能を利用した作品までは、みなさんに紹介できませんが

<6725> re:テキスト読み上げ/たゆー 2005年10月20日 木曜日 20時25分35秒

「どんな場合でも使える」というわけではないが、使い方によってはいろいろ
楽しめるかも知れない

例えば「メッセージボックス」・・・なんてあるが

音声ボックス,発生文字列,音声=男性,スピード=ややはやく・・・
なんて、楽しみですね
<6724> re:<6723>/ド・モ・ONnoji 2005年10月19日 水曜日 23時54分07秒
>>桐V9で追加・変更されたプロパティ
>との事ですが、以下の方法を利用すると「桐V8」でも、「ステータスバー」の非表示が
>できるかも知れない・・・が、試していません

以前偶然発見したのですが、何というプロパティ名かは失念しましたが…
桐ver.8 でも、後期のSPの場合には、
桐ver.9 のプロパティ名が登録されていることが確かにありますね。
もちろん、サポート対象外でしょうけれど…

<6723> re:フォームのステータスバーを消すには/たゆー 2005年10月19日 水曜日 21時56分08秒

桐質問掲示板に「フォームのステータスバーを消すには 」という質問がでていました
すでにONnojiさんがお答え紹介されてますが、別の方法で探してみました

ちょっとファイルの中を(バイナリで)見た結果ですが

テストの方法は
・「暦.wfm」のオリジナルを複写
・いったん定義で開き「オーバラップ」を「チャイルド」に変更
・編集モードで、「ステータスバー」が表示されるのを確認
・再度定義で 「チャイルド」を「オーバラップ」にもどす

この状態で編集モードで開く
・これが従来の「オーバラップ」状態で、「ステータスバー」が表示されることになる

>桐V9で追加・変更されたプロパティ
との事ですが、以下の方法を利用すると「桐V8」でも、「ステータスバー」の非表示が
できるかも知れない・・・が、試していません
もちろんアドレス自体も・・・

○さて、リストを見ると数行の変更箇所があります
変更内容には更新日やその他もあります。・・・が、少し気になったのは
他とは少し番地の離れた
>000024DB : 01 00  000024DB : 01 00
です

ためしに、ここを変更したら、質問の通りの結果になります

ただし、これは、私の環境でファイルも「暦.wfm」と限定し、
上記条件で行った結果ですから、試さないでください
<6722> re:フォームのステータスバーを消すには(DUMP)/たゆー 2005年10月19日 水曜日 21時55分36秒

「FILENAME 暦.wfm」の変更前と変更後

 [1回目]       [2回目]
----------------  -----------------
00000002 : 00 14  00000002 : 00 14
00000004 : 00 02  00000004 : 00 02
00000005 : 00 24  00000005 : 00 24
00000006 : 00 F8  00000006 : 00 F8
00000007 : 00 77  00000007 : 00 77
00000008 : 04 20  00000008 : 04 20
00000009 : 00 55  00000009 : 00 55
0000000A : 00 F7  0000000A : 00 F7
0000000B : 00 77  0000000B : 00 77
0000000C : 8C FF  0000000C : 8C FF
0000000D : A6 FF  0000000D : A6 FF
0000000E : 69 FF  0000000E : 69 FF
0000000F : 00 FF  0000000F : 00 FF
00000010 : 00 F5  00000010 : 00 F5
00000011 : 00 16  00000011 : 00 16
00000012 : 00 F5  00000012 : 00 F5
00000013 : 00 77  00000013 : 00 77
00000014 : 2B 0F  00000014 : 2B 0F
00000015 : 00 2E  00000015 : 00 2E
00000016 : 00 F5  00000016 : 00 F5
00000017 : 00 77  00000017 : 00 77
00000018 : 01 0B  00000018 : 01 0B
00000019 : E8 18  00000019 : E8 18
0000001A : 00 F5  0000001A : 00 F5
0000001B : 00 77  0000001B : 00 77
0000001C : DC 00  0000001C : DC 00
0000001D : CE 00  0000001D : CE 00
0000001E : 14 00  0000001E : 14 00
00000020 : 81 03  00000020 : 81 03
00000021 : 1B 00  00000021 : 1B 00
00000022 : B1 00  00000022 : B1 00
00000023 : 6A 00  00000023 : 6A 00
00000024 : CD B2  00000024 : CD B2
00000025 : AB 8E  00000025 : AB 8E
00000026 : BA CF  00000026 : BA CF
00000027 : DC 77  00000027 : DC 77
00000028 : 00 01  00000028 : 00 01
0000002C : B8 EE  0000002C : B8 EE
0000002D : CB 04  0000002D : CB 04
0000002E : 14 49  0000002E : 14 49
0000005C : 14 42  0000005C : 14 42
0000005D : 00 3B  0000005D : 00 3B
0000005E : 00 CF  0000005E : 00 CF
0000005F : 00 77  0000005F : 00 77
00000060 : 8C 06  00000060 : 8C 06
00000061 : A6 00  00000061 : A6 00
00000062 : 69 00  00000062 : 69 00
00000064 : 00 81  00000064 : 00 81
00000065 : 00 1B  00000065 : 00 1B
00000066 : 00 B1  00000066 : 00 B1
00000067 : 00 6A  00000067 : 00 6A
00000088 : 00 10  00000088 : 00 10
00000090 : 01 00  00000090 : 01 00
00000094 : 00 BC  00000094 : 00 BC
00000095 : 00 CB  00000095 : 00 CB
00000096 : 00 14  00000096 : 00 14
00000098 : 00 19  00000098 : 00 19
00000099 : 00 74  00000099 : 00 74
0000009A : 00 CF  0000009A : 00 CF
0000009B : 00 77  0000009B : 00 77
000000A3 : 35 32  000000A3 : 35 32
000000A5 : 30 32  000000A5 : 30 32
000000A7 : 39 32  000000A7 : 39 32
000000A9 : E5 FF  000000A9 : E5 FF
000000BA : D5 D2  000000BA : D5 D2
000000BC : 0A 0C  000000BC : 0A 0C
000000BE : 13 0C  000000BE : 13 0C
000000C0 : 14 15  000000C0 : 14 15
000000C2 : 2F 1C  000000C2 : 3A 1C
000000C4 : 06 0B  000000C4 : 22 0B
000000C6 : 61 85  000000C6 : 90 85
000000C7 : 02 01  000000C7 : 02 01
00002006 : BD 00  00002006 : BD 00
00002007 : 77 00  00002007 : 77 00
00002008 : 00 FF  00002008 : 00 FF
00002009 : 00 FF  00002009 : 00 FF
000024DB : 01 00  000024DB : 01 00

<6721> Re:テキスト読み上げ/hidetake 2005年10月19日 水曜日 20時58分12秒
> reporterは、ちゃんとキャラクタが出てきます。

そうなのですか・・・
VBScript でも、なんか呼び出すための API(手法) とか
無いのですかね?
あえてやろうとすれば HTA の方を利用すれば良さそう
ですが!?

さすがに私自身はそこまで試す興味までは持てませんで
した。 _o_

<6720> re:テキスト読み上げ/うにん 2005年10月19日 水曜日 20時28分13秒
reporterは、ちゃんとキャラクタが出てきます。常時表示としゃべるときだけ表示が選べます。
キャラクタを4種類全部入れてみたけど、同じ声(Kenji?)^^;
声を変える設定は見当りません。

たゆーさんが「無理みたいです」と言っているのは、どのマシンでも動くようにしたい
ということなんでしょうかね?
<6719> Re:テキスト読み上げ/hidetake 2005年10月19日 水曜日 18時19分31秒
>>that these text-to-speech engines are licensed only for use in Microsoft Agent
>>enabled applications and Web pages with a visibly displayed Microsoft Agent
>>character.
>と書いてあるのでAgentのキャラクタが出てこないSpeech.vbsのような使い方はまずそう
>ですが。

なるほど・・・

私は、これらのファイルは一応はダウンロードしてみたのですが
タイムスタンプがあまりに昔のものだったので、インストールは
行わずに削除してしまいました。 :-p

だから、古い Agent や TTS 、それに SAPI4.0 は試してもいな
いのですが、これらをダウンロードして使うと書いてあるフリー
のスピーチソフトは Agentのキャラクタが必ず出てくるような
作りにしてあるのですか? それも、何か・・・ (^^;

私の場合は、今まで書いたスクリプトもそうですが、もし使う
場面があったとしても、2つも使い分けるのは面倒そうなので、
XP 標準の機能と Office の日本語エンジンを使いたいと思い
ます。 (^^;
<6718> re:テキスト読み上げ/うにん 2005年10月19日 水曜日 14時29分04秒
なるほど。regsvr32したら確かに吉岡さんのvbsではちゃんと女声でしゃべりました。
TTs.vbxでNaokoとKenjiがいてSamがいません。
コンパネの音声認識の方(SAPI5.0?)はSamしかいない。
新旧混在でいや〜んな状態になってるようです?_?

このNaokoらはどこにいたんだろう?
http://www.microsoft.com/msagent/downloads/user.asp
からインストールしたL&Hの日本語エンジンだとすると、
>that these text-to-speech engines are licensed only for use in Microsoft Agent >enabled applications and Web pages with a visibly displayed Microsoft Agent >character.
と書いてあるのでAgentのキャラクタが出てこないSpeech.vbsのような使い方はまずそうですが。
<6717> Re:テキスト読み上げ/hidetake 2005年10月19日 水曜日 10時33分26秒
XP の標準の機能(SAPI5.0)を使うか、それ以前の Agent や
TTS を使うかで、どの COM を使うか VBScript も異なって
くるわけですが、古いのを使う場合は、そこには VText.DLL
があるはずなんで、そこで regsvr32 VText.DLL して登録
してしまえば、

CreateObject("TextToSpeech.TextToSpeech.1")
なり
CreateObject("TextToSpeech.TextToSpeech")
で使えるようになるはずだけれど・・・

詳しくは吉岡照雄さんの Speech.TXT を見れば書いてあり
ます。

XP の新しいのと、msagentサイトからダウンロードできる
古いのの混在も可能ではあるようです。


> Samは入ってるのにね。日本語版WindowsXPなんだからSamなんていらないのに。
> 国際化の際のパッケージミスじゃないかな:-P

バージョン間の非互換性とかも面倒だし・・・
日本語版なのだから、最初から日本語対応のエンジンを
入れてくれれば良かったのに! ホントに (-_-;
<6716> re:テキスト読み上げ/うにん 2005年10月19日 水曜日 10時16分09秒
サンプル試して見ましたが、うちの自作デスクトップでもだめでした。
エラーの意味がわかりませんが、<6714>で試すと「Naokoさんがいません」なので
Officeが入ってないからでしょう。
Samは入ってるのにね。日本語版WindowsXPなんだからSamなんていらないのに。
国際化の際のパッケージミスじゃないかな:-P

msagentは入れたのでreporterは日本語をしゃべってます。
<6715> re:テキスト読み上げ/たゆー 2005年10月17日 月曜日 22時19分03秒
先日来いろいろ考えた(自分なりのテスト)結果・・・ですが
やはり無理みたいです

とりあえず、hedetakeさん紹介<6710>の
>次にテキストファイルを読み上げるスクリプト。
>コマンドラインで起動オプションとしてファイル名を
>指定しても良いし、ドラッグドロップでテキスト
>ファイルをドロップしても良いです。
を、桐化してみました

「ほっ!」に、サンプルとしてあげておきます
もしよろしかったら・・・・・
<6714> Re:テキスト読み上げ/hidetake 2005年10月15日 土曜日 06時21分25秒
若干のエラー処理などを入れたものです。
Text の受け渡しなどは処理によって変更するとして・・・
音量やスピードレートの変更は Text に埋め込んでも
構いませんし!

'--------------------------------------------------------------------------------
Option Explicit

Dim Text, Arg
Text = ""
For Each Arg In WScript.Arguments
  Text = Text & Arg & vbCRLF
Next
If Text = "" Then Text = "コマンドラインオプションを指定して下さい。"

Dim Fs, File
Set Fs = CreateObject("Scripting.FileSystemObject")
File = "KillVoice.txt"  ' 中断処理のためのフラグファイルを指定

Dim Speech, Talker
On Error Resume Next
Set Speech = CreateObject("SAPI.SpVoice")
If Err then Err.Clear:Msgbox "SAPIがインストールされていません!!!":WScript.Quit

Talker = "LH Naoko"    ' Talker = Microsoft Sam / LH Kenji / LH Naoko
If Speech.GetVoices.Count > 0 Then
  Dim i
  For i = 0 To Speech.GetVoices().Count
    If Speech.GetVoices.Item(i).GetDescription = Talker Then
      Set Speech.Voice = Speech.GetVoices.Item(i)
      Exit For
    End If
  Next
Else
  Msgbox "このパソコンには音声合成ファイルがインストールされていません!!!"
  WScript.Quit
End If

If Speech.Voice.GetDescription <> Talker Then
    Msgbox "このパソコンには指定された日本語の話せる " & _
           vbCRLF & _
           Talker & _
           " さんがインストールされていません!!!"
    WScript.Quit
End If

Speech.Rate   =   0 ' -10 〜 +10
Speech.Volume = 100 ' 0 〜 100
Speech.Speak Text, 3

Do
  If Fs.FileExists(File) Then
    Speech.Speak "", 2
    Fs.DeleteFile File, True
  End If
Loop Until Speech.WaitUntilDone(10)

WScript.Quit

' Enum SpeechVoiceSpeakFlags
'    'SpVoice flags
'     SVSFDefault          =    0
'     SVSFlagsAsync        =    1
'     SVSFPurgeBeforeSpeak =    2
'     SVSFIsFilename       =    4
'     SVSFIsXML            =    8
'     SVSFIsNotXML         =   16
'     SVSFPersistXML       =   32
' 
'    'Normalizer flags
'     SVSFNLPSpeakPunc     =   64
' 
'    'Masks
'     SVSFNLPMask          =   64
'     SVSFVoiceMask        =  127
'     SVSFUnusedFlags      = -128
' End Enum
'--------------------------------------------------------------------------------
<6713> Re:テキスト読み上げ/hidetake 2005年10月13日 木曜日 09時52分01秒
うっ!
Set Status = Speech.Status
の行は不要だ・・・

Status では非同期で実行した場合の状態は正しく
取得できないみたい! (;_;)
と言う事で WaitUntilDone で読み上げ終了を
待ちながら、ファイルの存在をチェックする!
<6712> Re:テキスト読み上げ/hidetake 2005年10月13日 木曜日 09時49分11秒
KillVoice.txt が存在したら読み上げを中止するスクリプト!
途中で KillVoice.txt が作成されても中断します。
中断したら KillVoice.txt は削除します。

-----------------------------------------------------
Set Fs = CreateObject("Scripting.FileSystemObject")
File="KillVoice.txt"
Text = _
"クリップボードのテキストを読み上げる VBScript" & _
"クリップボードの操作には前に書いたともうけれど" & _
"AutoItX を使っています。" & _
"クリップボードに適当なテキストをコピーした上で" & _
"実行して下さい。"

Set Speech = CreateObject("SAPI.SpVoice")
Set Speech.Voice = Speech.GetVoices().Item(1)
Set Status = Speech.Status

Speech.Rate =     0 ' -10 〜 +10
Speech.Volume = 100 ' 0 〜 100
Speech.Speak Text,3

Do
  If Fs.FileExists(File) Then
    Speech.Speak "",2
    Fs.DeleteFile File
  End If
Loop Until Speech.WaitUntilDone(10)
WScript.Quit
-----------------------------------------------------
<6711> re:テキスト読み上げ / たこすぱげてぃ 2005年10月13日 木曜日 09時23分23秒
うっ、hidetakeさんの好奇心に火をつけてしまったみたい。
久しぶりに、hidetakeさんの連続書き込みをみてしまった。(懐かしひ)
私も後でゆっくりと勉強させていただきます。

たこすぱげてぃ
<6710> Re:テキスト読み上げ/hidetake 2005年10月13日 木曜日 06時52分05秒
折角だから・・・

クリップボードのテキストを読み上げる VBScript
クリップボードの操作には前に書いたともうけれど
AutoItX を使っています。
クリップボードに適当なテキストをコピーした上で
実行して下さい。

-----------------------------------------------------
Set oAutoIt = CreateObject("AutoItX.Control")
Text = oAutoIt.ClipGet
Set Speech = CreateObject("SAPI.SpVoice")
Set Speech.Voice = Speech.GetVoices().Item(1)
Speech.Rate = -10 ' -10 〜 +10
Speech.Volume = 100 ' 0 〜 100
Speech.Speak Text
-----------------------------------------------------


次にテキストファイルを読み上げるスクリプト。
コマンドラインで起動オプションとしてファイル名を
指定しても良いし、ドラッグドロップでテキスト
ファイルをドロップしても良いです。

-----------------------------------------------------
Set arg = WScript.Arguments
If Arg.Count < 1 Then
    WScript.Quit
End If

Set fs = CreateObject("Scripting.FileSystemObject")
Set txt = fs.OpenTextFile(arg(0))

Text = txt.ReadAll
txt.Close

Set Speech = CreateObject("SAPI.SpVoice")
Set Speech.Voice = Speech.GetVoices().Item(1)
Speech.Rate = -10 ' -10 〜 +10
Speech.Volume = 100 ' 0 〜 100
Speech.Speak Text
-----------------------------------------------------

細かいエラー処理などは省略してあります。後は作り方
さえだけで、結構遊べると・・・
<6709> re:テキスト読み上げ/たゆー 2005年10月12日 水曜日 23時35分41秒
いまの気持ち
「ここを10mくらい歩けば目的地に到着しますよ」
と、教われて、歩きました。結果目的地に着いたのですが

結果は、ビルの7階くらいに貼ってある綱渡たりをした直後の気分で、
もちろん後もどりもできないし、周りは曇りで見えなくてとりあえず
「とにかく行って見るか」という気分です

きちんと、希望通りに動いたのですが、まだ疑問だらけです
いったいなにがあったのだろう?

<6708> re:テキスト読み上げ/たゆー 2005年10月12日 水曜日 23時20分07秒
ご報告です

>CreateObject("SAPI.SpVoice").Speak "こんにちは"
>
>と言う、1行のテキストファイルを speek.vbs と言うファイル名で
>作成し、それをダブルクリックなりコマンドラインから実行すれば
>読み上げてくれると思いますよ!
出ました!!
先ほどコントロールパネルで、初期設定から「Naoko」に変更しましたので
Naokoさんの声で「こんにちは」と聞こえました

感激ですね。
何事も、第一歩がなければ前には進まないと思います。
これをきっかけに桐のファイルを読み上げてくれたり・・・
考えただけで感激です


また、「speech.zip」をダウンロードし、テストした結果「SpeechXP.VBS」は
なにか音声(言葉)を出しました。他はエラーです
ダウンロードしたファイルは
><6699> Re:テキスト読み上げ・・・の
>吉岡 照雄さんのところから拝借したが
>http://www.vector.co.jp/vpack/browse/person/an010222.html・・・でなく
>http://www.vector.co.jp/soft/winnt/util/se329712.html
こちらのほうです

これからが楽しみです
<6707> Re:テキスト読み上げ/hidetake 2005年10月12日 水曜日 22時19分43秒
> きっとテキストファイルで何かの拡張子で保存して、きっとなにかすれば
> 音声が・・・と

たゆーさんのパソコンでは Excel の音声読み上げができるようなので

CreateObject("SAPI.SpVoice").Speak "こんにちは"

と言う、1行のテキストファイルを speek.vbs と言うファイル名で
作成し、それをダブルクリックなりコマンドラインから実行すれば
読み上げてくれると思いますよ!
(コンパネで Sam 以外を指定してある場合)

あとは

Option Explicit
Dim Text, Speech, Voice
Text="こんにちは"
Set Speech = CreateObject("SAPI.SpVoice")
Set Speech.Voice = Speech.GetVoices().Item(1)
Speech.Rate = -10 ' -10 〜 +10
Speech.Volume = 100 ' 0 〜 100
Speech.Speak Text

とかもテキストファイルで適当な名前+ .vbs の拡張子をつけて保存し

Text="・・・"の欄に読み上げさせたい文章を入れれば読み上げてくれます。

あとは、コマンドラインからの引数を利用したい場合は
吉岡 照雄さんの SpeechXP.VBS を利用して
SpeechXP.VBS (一部改変)
-------------------------------------------------------------------
' SpeechXP.VBS V1.02 (C) yoshioka.teruo@nifty.com 2005-05-28
' SpeechXP.VBS speeches text with SAPI.
' Usage: SpeechXP.VBS text

Option Explicit
Dim Text
Dim arg

Text=""
For Each arg In WScript.Arguments
Text=Text & arg & vbCRLF
Next

If Not Text="" Then CreateObject("SAPI.SpVoice").Speak Text
-------------------------------------------------------------------

と言ったスクリプトを利用すればコマンドラインオプションから
自由に読み上げさせたい文章を指定できます。
<6706> re:テキスト読み上げ/たゆー 2005年10月12日 水曜日 21時36分53秒
掲示板を拝見して・・・・て、という書き方は変かも知れませんが
hidetakeさんの手にかかったらなんでも自由自在に操られるのだなと、
あらためて驚いています

が、私の場合、まず最初に、hidetakeさんご紹介の
>Microsoft Speech SDK Version 5.1
>http://msdn.microsoft.com/library/default.asp?url=/library/en-us/SAPI51sr/html/VB_SpVoice_Interface.asp
クリックしたとたん私には無理かと感じました
(横文字は見たとたんアレルギー症状です・・・なさけない)

他にも、<6694>〜の紹介文は私にはかなり難しそうです
しかし私もこれには興味がありますので勉強したいと思います

不明な点は改めて質問させていただきますがよろしくお願いいたします

ちなみに、エクセルで「セルの音声読み上げ」や
コントロールパネルで
>Item(0) LH Naoko
>Item(0) LH Kenji
>Item(0) Sam
の、切り替え程度くらいはわかります

しかし、私には、最初にかかれてました
> <6694> Re:テキスト読み上げ
>Winodws XP だと VBScript で
>CreateObject("SAPI.SpVoice").Speak "Hello!!!"
すら・・・悲しい

きっとテキストファイルで何かの拡張子で保存して、きっとなにかすれば
音声が・・・と

<6705> Re:テキスト読み上げ/hidetake 2005年10月12日 水曜日 21時31分35秒
ついでに

> Dim Text, Speech, Voice
> Text="<volume level='100'><rate speed='-10'>こんにちは</rate></volume>" _
> &"<volume level='100'><rate speed='+10'>こんにちは</rate></volume>"
> Set Speech = CreateObject("SAPI.SpVoice")
> Set Speech.Voice = Speech.GetVoices().Item(0)
> Speech.Speak Text,8

は、Speech.Speak Text,16 と SVSFIsNotXML を指定してやれば
流すテキストにタグが含まれていようと、そのまま音声出力して
くれる。それ以外はタグを解釈して制御してくれる SVSFIsXML = 8
と一緒となるようだ。すなわちデフォルトは XML フォーマット
としてテキストを解釈して制御される。
<6704> Re:テキスト読み上げ/hidetake 2005年10月12日 水曜日 21時10分30秒
> Text="<volume level='100'><rate speed='-10'>こんにちは</rate></volume>" _
> &"<volume level='100'><rate speed='+10'>こんにちは</rate></volume>"

スピードと音量の制御は、途中での設定変更がある場合は
上記、タグを埋め込んだテキストの方が自由に制御できる
けど、全体の設定だと、次の方が簡単ではありますね!
Option Explicit
Dim Text, Speech, Voice
Text="こんにちは"
Set Speech = CreateObject("SAPI.SpVoice")
Set Speech.Voice = Speech.GetVoices().Item(1)
Speech.Rate = -10 ' -10 〜 +10
Speech.Volume = 100 ' 0 〜 100
Speech.Speak Text
<6703> Re:テキスト読み上げ/hidetake 2005年10月12日 水曜日 19時34分50秒
「桐」もエクセルのインストールを前提とした機能も
ある事だし、Office 入れて「音声」機能がインストール
されていたら、これを利用して「音声読み上げ機能」を
(制御も含む)次のバージョンの「桐」で持たせるのも
おもしろしろいでしょうし、結構役に立つかも知れない!!!
<6702> Re:テキスト読み上げ/hidetake 2005年10月12日 水曜日 19時28分59秒
音声読み上げを途中で強制終了する方法を考えてみたけれど
通常は内部で作り込んで Resume() なり Pause() なりするの
だろうけど、外部からとなると、全く別のスクリプトでこれ
らを実行したところで、既に別のタスクで動いている SAPI
には影響しないようである。
(別の音声読み上げを実行しようとするとエラーにはなる)

と言う事で、内部で作り込むとなると結構面倒だろうし
「桐」からの制御の範疇を随分超えてしまいそうだ。

もしやろうとすると、現在読み上げている VBScript 自体を
kill してしまうと、音声読み上げも当然止まる。

まぁ〜これをやろうとしても「桐」は自分がシステムなり
シェル実行したプロセスIDすら知る方法も提供していないので
桐からターゲットをちゃんとめがけて強制終了させる方法は
ない! (-_-;
無理矢理やろうとすると wscript.exe なり csript.exe なり
VBScript 全部を終了させようとするとそれは可能だろ・・・

あるいは、桐からは終了のフラグファイルでも投げかけて
それを VBScript が監視していて、それによって途中終了って
言う方法もあるだろう・・・

でも、そこまでは私には必要なさそうなので、これぐらいに
して止めておきます。 (^^;

Microsoft Speech SDK Version 5.1
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/SAPI51sr/html/VB_SpVoice_Interface.asp

# なお、SAPI 4.0 と 5.x では互換性無し!
# 5.0 と 5.1 では若干の違いがあるそうですけれど
# 5.1 には日本語のエンジンが(MSには)無いので意味無し
# と言う事で、上記 SDK の記述はバージョンの違いを
# 十分に注意しながら参照の必要がある。 :-)
<6701> Re:テキスト読み上げ/hidetake 2005年10月12日 水曜日 17時53分15秒
Dim Text, Speech, Voice
Text="<volume level='100'><rate speed='-10'>こんにちは</rate></volume>" _
&"<volume level='100'><rate speed='+10'>こんにちは</rate></volume>"
Set Speech = CreateObject("SAPI.SpVoice")
Set Speech.Voice = Speech.GetVoices().Item(0)
Speech.Speak Text,8

音量やスピードは上記のようにして設定可能なようです。

最後のしゃべらすオプションの 8 の指定で XML フォー
マットのデータだと指定するはずだけれど、VBSript
からだと無指定でもそのまま有効だ! ・・・ (^^;
Copyright (C) 2000 CGI Arkadia All rights reserved.
Script written by Shintaro Wakayama.
BBS-TypeN Ver.2 Preview4
remodel advice by hidetake