伴 宙太 さん 2002年 07月 29日 16時 09分 42秒

すみません、半角カナを使ってしまいました。

12345 は 半角のカナとしてください

あいう  12,3きく 45

のような半角、全角文字混在のCSVファイルを読み込んで

あいう  12 ,3きく 45

といったスペースで埋めた各フィールド20バイト固定のレコードを作りたいのですが半角、全角文字混在のためバイト単位での文字数を取得できません。何かよい方法はあるのでしょうか。

伴 宙太 さん 2002年 07月 29日 16時 06分 05秒

はじめまして。

あいう  患,兇C@々コ

のような半角、全角文字混在のCSVファイルを読み込んで

あいう  患 ,兇C@々コ

といったスペースで埋めた各フィールド20バイト固定のレコードを作りたいのですが半角、全角文字混在のためバイト単位での文字数を取得できません。何かよい方法はあるのでしょうか。

さざなみ さん 2002年 07月 29日 15時 31分 48秒

さざなみです。

あいざわさん、
レスありがとうございます。

> Sendkey使ったりしちゃいけないんでしょうか?
Delphiでは、Execメソッドで引数の値を変えるだけで、
できるみたいなのですが、VBSではどうやるのかがよく
わかりません。

これに近い方法があれば、納得します。

タマ さん 2002年 07月 29日 09時 48分 38秒

To:筑集眺餅さん 30wさん

レスありがとうございます。

To:筑集眺餅さん

ご指導のとおりで解決しました。
大変ありがとうございました。

みじんこ さん 2002年 07月 29日 08時 38分 39秒

To:筑集眺餅 さん 30w さん

どうもレスありがとうございます。
やはり、ショートカットのホットキーは使えないんですね。
代わりの方法まで教えていただきありがとうございました。

管理人むたぐち さん 2002年 07月 28日 23時 44分 06秒

エピソード2なら私も先週の日曜日に梅田に見に行きましたヨ。
かなり楽しめましたね。
ヨーダカコイイ!!

相変わらず返信はしないんですけど(^^;

30w さん 2002年 07月 28日 23時 35分 51秒

「デスクトップ」と入れると「筑集眺餅」になるんですか???

30w さん 2002年 07月 28日 23時 33分 34秒

ありゃ、なんで「筑集眺餅」が「筑集眺餅」に置換されてるんだろ。

 他意はありません。なにかの操作ミスです。m(_"_)m

30w さん 2002年 07月 28日 23時 29分 23秒

To:筑集眺餅 さん

 ナタリーポートマン大好きです。可愛かったです。公開2週間前の先々行
ロードショウで見てきました。


To:みじんこ さん

 ホットキーって、ショートカットアイコンを右クリックでプロパティを
開いて設定する、「ショートカットキー(K)」のことですかね?

 だとしたら、アクティブウィンドウがないから、Sendkeysは使えない
でしょうね。

 こんなんでいいのでは?


'====================< run_lnk.vbs >===========================
option explicit
dim WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell")
WSHShell.Run """C:\WINDOWS\筑集眺餅\notepad.EXE へのショートカット.lnk"""

'====================< run_url.vbs >===========================
option explicit
dim WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell")
WSHShell.Run """C:\WINDOWS\筑集眺餅\掲示板.url"""



スタートボタン脇の「クイック・ランチ」に登録してあるのなら、こんな↓感じで。

'====================< run_launch.vbs >===========================
option explicit
dim WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell")
WSHShell.Run """C:\WINDOWS\Application Data\Microsoft\Internet Explorer\Quick Launch\notepad.EXE へのショートカット.lnk"""

筑集眺餅 さん 2002年 07月 28日 22時 47分 58秒

To:みじんこはん

>SendKeysメソッドでショートカットのホットキーを実行できますか?

はぁ、SendKeysメソッドはアクティブなウィンドウにキーの並びを
送れるはずでっせ。
ワテ、ショートカットのホットキーって何のことや判りまへんので
実行できるかどうかは判りまへんけどな。
どこのウィンドウに送りたいんだす?

けど、アプリの起動をしたいんやったら、WSHShell.Run メソッドを
使いはったら?


"Star Wars Episode II"

梅田で観てきましたがな。スターウォーズ。 いや、大きい画面で
観るのんは、スカッしますがな。 ビデオを借りて見んのんと、
ぜんぜんちゃいまんな。 久しぶりに堪能しました。
いやー、良かった。

みじんこ さん 2002年 07月 28日 18時 41分 08秒

はじめまして、みじんこと申します。
わからないことがあるので教えてもらえたらありがたいです。

SendKeysメソッドでショートカットのホットキーを実行できますか?

Ctrl+Alt+Rのホットキーを実行するのを下に載せました。
これを実行してもアプリが起動しません。
わかる方がいらっしゃいましたらお願い致します。

option explicit
dim WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell")
WSHShell.SendKeys "^%R"

あいざわ さん 2002年 07月 27日 22時 47分 39秒

to:れなぽんさん

あの、ここWSHの板なんですけど...
ごりごりのVBの質問されてもちょっと困っちゃうんですが^^;

VB5でも確かDoEvents使えましたよね?試してご覧になりました?

れなぽん さん (NCZ03854@nifty.com) 2002年 07月 27日 22時 09分 04秒

プログラム実行中にWaitをかけるAPIを探しています。
VB5.0で開発しています。
Sleep()関数を使用していましたが、あるパターンで
上手くいかないことが分かりました。
CreateProcess()関数を使用して、exeを起動し、
そのexeが終了するまで、Sleep(1000)で待機しながら、
Loopするという方法をとっていましたが、
起動したexeが、別のexeを起動する際にどうも、
スレッドを止めてしまっているようです。

Sleep()なしでLoopすることも考えましたが、CPU使用率が
100%になるためできません。

何か、よい方法がありませんか?

あいざわ さん 2002年 07月 27日 21時 57分 39秒

to:30wさん

>oImg.SaveAs savePath, 3 '<-- bmp形式で保存
>
>とやれば、Bitmap形式で保存してくれるとばかり思っていたのですが・・・

あの、70−24のソースコードで上記のようにすればBMPで保存されてますよ。
そのあとペイントでも問題なく開きます。
私の環境はW2Kですが問題にしてる個所に関する限り環境の問題とも思えないし。
なにか混乱してる?!

30w さん 2002年 07月 27日 20時 34分 53秒

 あいざわ さんレスをありがとうございます。


>> ファイルサイズを小さくするのは容量の問題ですか?

 はい。どんな画像であるかが確認できればいいので、ファイル
全体の容量を小さくできればと思います。


>> なりペイントなりを使用して画像を
>> 表示させようとしているのはなぜですか?

 えーと、LoadPictureで読み込ませたのは、もともとこいつを
スクリプトに使おうと考えていて失敗したからです。ですので、
スクリプトの動きとは直接関係ありません。

 ペイントで読み込んでいるのは、加工した画像をイメージングに
再び読み込むと縦横の長さが指定通りに見えないので、どうした
ものかと試行錯誤していたら、ペイントで読み込むと期待通りに
表示され、かつ手動で保存すれば、LoadPictureで読み込んでも
エラーが出ないことに気づいたからです。


>> http://www.borncity.com/WSHBazaar/News6.htm

では、以下の部分で参考にさせていただいてます。

Const wiFileTypeTIFF = 1 ' Tag Image File Format
Const wiFileTypeAWD = 2 ' At Work Document (MS Fax)
Const wiFileTypeBMP = 3 ' Microsoft Bitmap Format
Const wiFileTypePCX = 4 ' ZSoft PCX
Const wiFileTypeDCX = 5 ' modfied ZSoft PCX for Fax
Const wiFileTypeJPG = 6 ' JPEG
Const wiFileTypeXIF = 7 ' Xerox image documents
Const wiFileTypeGIF = 8 ' Graphic Interchange Format
Const wiFileTypeWIFF = 9 ' Wang Image File Format

ですので、
oImg.SaveAs savePath, 3 '<-- bmp形式で保存

とやれば、Bitmap形式で保存してくれるとばかり思っていたのですが・・・


to:タマ さん

 僕の環境では、WScript.を削除しただけで、メモ帳を起動することが出来ました。

筑集眺餅 さん 2002年 07月 27日 20時 27分 39秒

To:タマはん

HTMLの中のスクリプトからでは、WScript オブジェクトは
参照でけまへんねん。
せやから、まず、WScript.CreateObject(..)でなくって、
CreateObject(..)を使ことくれやす。

ほれから、HTMLの中ではセキュリティの関係でオブジェクトが
作れまへんねん。
せやから、次に、HTMLをHTAに変えとくれやす。
たいていは、中を変えんでも、拡張子をHTM(HTML)から
HTAに変えたらしまいだす。

To:あいざわはん

>過ぎちゃったけど7/26は「シスアドの日」だって。あはは。

はぁ、システムの係の方はいつも急がしそうにトラブル退治に
飛び回っておられますなぁ。
ユーザにとっては動いて当たり前、なかなか感謝されることは
おまへんのやろなぁ。ほんまに、ご苦労さまでございます。

ワテも若い頃、ミニコンの世話係というのを仰せつかった事が
おましたけど、内容は、プリンタ用紙の補充とテープリールの
交換で、イメージと違ごて”ガテン”な仕事でおましたなぁ。

タマ さん (tama_tec@ybb.ne.jp) 2002年 07月 27日 16時 18分 25秒

はじめまして、タマと申します。VBS暦2日の超初心者です。
質問です。

業務メニューをHTMLで作ろうと思い、「Lesson9 アプリの起動とレジストリ」を参考に、下記のようにしてみたのですが、

Set WSHShell=WScript.CreateObject("WScript.Shell")
の個所で、”オブジェクトがありません。:'WScript'”と怒られます ,泙拭「

Set WSHShell=CreateObject("WScript.Shell")
にすると、”ActiveXコンポーネントはオブジェクトを作成できません。:'WScript.Shell'”と怒られてしまいます。
ご教授していただければ助かります。
======================================================================
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<META name="GENERATOR" content="IBM WebSphere Studio Homepage Builder Version 6.5.0.0 for Windows">
<META http-equiv="Content-Style-Type" content="text/css">
<TITLE></TITLE>
<LINK rel="stylesheet" href="hpbsite.css" type="text/css">
<SCRIPT language="VBScript">
<!--
Sub WSHExecute(ExeName)
Dim WSHShell
Set WSHShell=WScript.CreateObject("WScript.Shell")
WSHShell.Run ExeName
End Sub
'-->
</SCRIPT>
</HEAD>
<BODY>
<P><A onclick="WSHExecute '問合せ.exe'">問合せ</A></P>
</BODY>
</HTML>
======================================================================
動作環境
Windows98
Intenet Explorer 6.0.2600.0000
WScript.exe 5.6.0.6626

あいざわ さん 2002年 07月 27日 11時 46分 56秒

過ぎちゃったけど7/26は「シスアドの日」だって。あはは。

http://www.sysadminday.com/

あいざわ さん 2002年 07月 27日 10時 16分 40秒

to:30wさん

70−30へのレスですがLoadPictureは画像をメモリーに"load"するのに
使うので格納時とは関係ありません。筑集眺餅さんと話がびみょーに
食い違ってませんか。
ちなみに拡張子だけをbmpに変更してもファイルの中味がtifなら
ペイントは(おそらく多分推測でmaybe)データ形式を認識してしまうの
で食ってくれません。

てか70−24のImagingの処理ですでに正しく格納までされていると思
うんですがさらにそこでLoadPictureなりペイントなりを使用して画像を
表示させようとしているのはなぜですか?

あいざわ さん 2002年 07月 27日 01時 27分 10秒

気が狂うほど暑いぜぇぇぇぇ!!

to:SHさん

コンボボックスにしてもホイールマウスにしてもどんな物を使っているのか
具体的に教えていただけないと多分回答できないと思います。
#ホイールマウスって何種類もありますよね?なんか勘違いしてる、私?

to:さざなみさん

Sendkey使ったりしちゃいけないんでしょうか?
#だめ?じゃちょっとたんま。出直してきます...

to:neoさん

>例えばファイルをコピーした場合、フラグとか立てれるのですか?

ファイル自体にフラグをって言う意味でしたら無理でしょう。
まえに筑集眺餅さんも言っていたようにファイルコピーしたとき
そのログを作っておいてそれと比較するっていうあたりが妥当かな
と思うんですがいかがですか?

to:30wさん

>2.画質を落としてファイルサイズを小さくする方法を探したが不明。

これですけど私もMSDN見た限り無理そうな気がします。
#同じ資料見てるんだからあたりまえか^^;
でファイルサイズを小さくするのは容量の問題ですか?
そうでないなら(現実解かどうかわかりませんが)表示するときに縮小表
示するってのもありかなと。

あと質問とは直接関係ないんですがこのページImagingに関するコードが
てんこもりなんで何かの参考になるかもしれません。

http://www.borncity.com/WSHBazaar/News6.htm

30w さん 2002年 07月 26日 22時 41分 44秒

 筑集眺餅 さん、レスをありがとうございます。


> >1.LoadPicture で読み込むと「ピクチャが不正です」
>
> 関数が、TIFFに対応してへん、っちゅう事でっしゃろな。
> オフィッシャルマニュアルやと、↓やそうで。
>
> LoadPicture 関数が対応しているファイル形式は、
> ビットマップ (.bmp)、アイコン (.ico)、RLE (.rle)、
> メタファイル (.wmf)、EMF (.emf)、GIF (.gif)、JPEG (.jpg) です。

 下記のようにやっても駄目でした(泣)。

  savePath = foder & "\" & baseName & "bmp.bmp"
  ・・・・
  ・・・・
  oImg.SaveAs savePath, 3 '<-- bmp形式で保存

 ・・・なにかが間違っているんでしょうね。

 このスクリプトを書いている過程で、ピクセルと dpi が違う
ものだと気づいたくらいの知識しかないので、この先どうすれば
いいのか見当もつきません。


> >oImg.Pages(1).ImageResolutionX =
> >CLng(oImg.Pages(1).ImageResolutionX * x)
>  
> てゆうか、ImageResolutionXとかでサイズが変えられることに
> ビックリしてまっけど。

はい。画像が赤みがかったりするので、きっと使っている関数が
間違っているのだろうなと思っています。

neo さん 2002年 07月 26日 17時 13分 32秒

To:あいざわさん、To 筑集眺餅 さん
なんとかうまく行きました。

これは、今後もしかすると仕様が変わるかもしれないので
先に勉強しておきたいのですが、

例えばファイルをコピーした場合、フラグとか立てれるのですか?
もしかするとファイルをコピーしたものをFTPで移動しなくてはいけないかも
しれません。その際の参照に使用するかもしれませんので、、、


さざなみです。 さん 2002年 07月 26日 15時 38分 22秒

さざなみです。
IEが表示しているファイルがhtmlのとき、右クリックメニューの
[ソースの表示]をVBSにて行いたいのですが、どうすればできますか?

また、インターネットオプションダイアログをタブを指定して表示したい
のですが、どうすればいいでしょうか。

SH さん 2002年 07月 26日 12時 20分 41秒

activeXのコンボボックスのスクロールをホイールマウスに対応させるのは、
どうしたらいいんでしょうか?
コンボボックスのプロパティの設定では、いかないっぽいんですが、、、

AL さん 2002年 07月 26日 11時 49分 24秒

To:あいざわさん

ありがとうございます。
さっそくDLして実行してみました。
まさにコレですね(汗)

これからまた勉強します。
本当にありがとうございました。

筑集眺餅 さん 2002年 07月 26日 06時 31分 43秒

To:30wはん

>D&Dで指定の大きさに加工してくれるスクリプトを作れないかと
>言われ試してみたのですが、うまく動きません。

はぁ、画像の加工でっか。
ご存知と思いまっけど、とりあえずイメージングのレファレンスは
http://msdn.microsoft.com/library/default.asp?URL=/library/sdkdoc/3rdparty/chapter1overview.htm
ここで見ておりま。

>1.LoadPicture で読み込むと「ピクチャが不正です」

関数が、TIFFに対応してへん、っちゅう事でっしゃろな。
オフィッシャルマニュアルやと、↓やそうで。

>LoadPicture 関数が対応しているファイル形式は、
>ビットマップ (.bmp)、アイコン (.ico)、RLE (.rle)、
>メタファイル (.wmf)、EMF (.emf)、GIF (.gif)、JPEG (.jpg) です。

>2.画質を落としてファイルサイズを小さくする方法を探したが不明。

これ判りまへんなぁ。
oImage.ImagePalette プロパティの説明↓やと、

>The ImagePalette property must be set prior to opening the
> ImageFile object. For this property to take effect after
> an image is open, you must reopen the image.

やから、開く前に("prior to")セットせないかんのかなぁ?
開いた後で使えるようになるさかいに、セットしたけりゃ、も一回
開け・・・ちゅうこと?
他に、PageObject.CompressionType プロパティも読み取り専用やし、
適当なモンが見つかりまへんな。

>3.変換後の大きさが、指定よりピクセル1個分だけズレたりする。

これ、計算誤差とか出てんのとちゃいまっかな?

>oImg.Pages(1).ImageResolutionX =
>CLng(oImg.Pages(1).ImageResolutionX * x)
 
てゆうか、ImageResolutionXとかでサイズが変えられることに
ビックリしてまっけど。ワシもやってみよ。

>なにか良い方法はないでしょうか?

画像の加工は詳しおまへんねん。ワテはノーアイディアだす。
すんまへん。

ついでに、知ってはることかもしれまへんけど、

>Select Case LCase(extention)
>  Case "tif": Case "tiff": Case "awd": Case "bmp": Case "pcx"

Case の後でリスト使こたらすっきりしまっせ。

Case "tif","tiff","awd","bmp","pcx"

30w さん 2002年 07月 25日 22時 33分 55秒

 ウィンドウズのマクロとしてスクリプトを使い始めて30週くらいの
者です。

 最近、筑集眺餅 さんが書かれていたTIFFファイルを回転する
スクリプトを人にみせたところ、Excelで画像を保存・管理するのに、
D&Dで指定の大きさに加工してくれるスクリプトを作れないかと
言われ試してみたのですが、うまく動きません。

1.イメージングで加工した画像をLoadPicture で読み込むと、
  「ピクチャが不正です」エラーとなる。
  (→仕方がないので、ペイントに読み込んで手作業で保存)

2.画質を落としてファイルサイズを小さくする方法を探したが不明。
  (→oImage.ImagePalette =ゥ・ とやってみたが保存されず)

3.変換後の大きさが、指定よりピクセル1個分だけズレたりする。


 なにか良い方法はないでしょうか?

 よろしくお願いします。


☆ ↓全角空白あり。

'=====================< 画像加工.vbs >==============================
x1 = 200: y1 = 200 '<-- 大きさをピクセルで指定

'-- ドラッグ&ドロップしたファイルと保存先のファイルのパスを取得。
argPath = WScript.Arguments(0)
Set fs = WScript.CreateObject("Scripting.FileSystemObject")
extention = fs.GetExtensionName(argPath)
baseName = fs.GetBaseName(argPath)
foder = fs.GetParentFolderName(argPath)
savePath = foder & "\" & baseName & "_.tif"

'-- ドラッグ&ドロップしたファイルが画像でなければスクリプト終了。
Select Case LCase(extention)
  Case "tif": Case "tiff": Case "awd": Case "bmp": Case "pcx"
  Case "dcx": Case "jpg": Case "xif": Case "gif": Case "wiff"
  Case Else
    MsgBox "Unknown extension " & ext,, Title
    WScript.Quit
End Select

'-- イメージングの起動と読み込み。
Set oImage = CreateObject("Imaging.Application")
Set oImg = oImage.CreateImageViewerObject(1)
oImg.Open argPath

'-- 画像の加工
x = oImg.Pages(1).Width
y = oImg.Pages(1).Height
btn = MsgBox("保存先: " & savePath & VbCrLf & VbCrLf & _
  "大きさ: ("&x&", "&y&") → ("&x1&", "&y1&") ",1,"大きさの変更")
if btn = 2 then
  msgbox "加工を中止します。",,"中止"
else
  x = CDbl(x1 / x)
  y = CDbl(y1 / y)
  oImg.Pages(1).ImageResolutionX = CLng(oImg.Pages(1).ImageResolutionX * x)
  oImg.Pages(1).ImageResolutionY = CLng(oImg.Pages(1).ImageResolutionY * y)
  oImg.SaveAs savePath, 1 '<-- TIFF形式で保存
  '-- ペイントの起動と読み込み。
  Set WShell = CreateObject("WScript.Shell")
  WShell.Run """C:\Program Files\Accessories\MSPAINT.EXE """ & savePath
  Set WShell = Nothing
end if

'-- 後始末。
oImg.Close
oImage.Quit
Set oImg = Nothing
Set oImage = Nothing
Set fs = Nothing
WScript.Quit

あいざわ さん 2002年 07月 25日 21時 09分 13秒

to:筑集眺餅さん

ほーいやDelphiにもTrim関数があってそっちは
制御文字も削れるらしいっす。
Delphiユーザーでっか?>筑集眺餅さん

筑集眺餅 さん 2002年 07月 25日 21時 02分 13秒

To:ああさんはん、あいざわはん

>ただTrim関数って空白を削るだけじゃ???>筑集眺餅さん

げ、ほんまや! スペースしか削りまへんな。
間違いだす。すんまっせん。<もちっと静養せえよぉ。


To:neoはん、あいざわはん

>それなら最初から同じ要素数の配列3つ使ったほうが良いような気が
>します。

ワテも、とりあえず素直に配列3本使こたらよろしと思いま。

A=Array("cg","ck",........)
B=Array("java","html",........)
C=Array(cgPath, ckPath, .......)
みたいな感じやなぁ。

x = InputBox(...)
For I=0 To UBound(A)
 If x=A(I) Then
  y = InputBox(...)
  If y=B(I) Then
   MsgBox C(I)
   Exit For
  End If
 End If
Next

あいざわ さん 2002年 07月 25日 18時 20分 47秒

to:ALさん

管理人さんがお書きになっているこの板の実用スクリプトダウンロード
の「ディレクトリのTree構造を書き出す」がそのものずばりだと思いま
す。2つあるうちのfiletree.vbsのほうです。違うオブジェクト使って
ますが考え方は同じということで。

あいざわ さん 2002年 07月 25日 18時 09分 56秒

to:neoさん

>1番目に"a"、2番目に"e"の場合C(0,1)は空だからばつ
>1番目に"d"、2番目に"e"の場合C(1,1)は"f"だからまる

Aが1次元、Bが2次元目に対応するようにして
A(0)="a" かつ B(1)="e"に対応するのはC(0,1)になります。

AL さん 2002年 07月 25日 16時 42分 43秒

はじめまして。数日前からVBSの勉強をはじめ、いろいろなサイトを
見てまわっているウチにこちらに来ました。
それで少し教えていただきたいのですが、現在、とあるフォルダの
中にあるファイルをサブフォルダの中にあるファイルも含めて一覧表示
させるようなモノを作ってみようと思い、下記のようなカンジでやってみました。
しかしこれだとフォルダの中にあるファイルとサブフォルダしか表示できません。
サブフォルダの中にあるファイルを表示させるにはどうすればよいのでしょうか?

Option Explicit
Dim fs, f, subf, f1

On Error Resume Next
Set fs = WScript.CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(".")

For Each subf In f.SubFolders
WScript.Echo("[" & subf.Name & "]")
Next

For Each f1 In f.files
WScript.Echo(f1.Name)
Next

neo さん 2002年 07月 25日 16時 22分 35秒

To あいざわ さん
ありがとうございます。
あいざわさんが教えて頂いた方が本当は僕も理想的な手段なのですが、
そうするとAとBの結果を参照しCを表示するときの参照する方法が
今ひとつわかりません。

どうすればいいのでしょうか?




あいざわ さん 2002年 07月 25日 15時 03分 28秒

to:neoさん

んー、自分で使いやすいようなやり方を使うのが良いと思いますが。
ただ強いていうなら配列を使う場合それぞれの要素が同じ意味合い
であったほうが見てわかりやすいかなと。たとえばA(x,y)という配列
を考えた場合A(0,1)もA(1,0)も同じ意味を持ったものを表して欲しい。
しかしneoさんの例でいうと

A(0,0)="a" 'これは最初に比較する要素
A(0,1)="b" 'これは2番目に比較する要素
A(0,2)="c" 'これは比較した結果の要素

と、要素ごとの意味合いが違っちゃいますよね。
それなら最初から同じ要素数の配列3つ使ったほうが良いような気が
します。
この例であえて2次元配列使うんなら最初の比較用の配列A、2番目の
比較用の配列B、結果表示用の2次元配列Cを用意して、

A(0)="a" :A(1)="d" :A(2)="g"
B(0)="b" :B(1)="e" :B(2)="h"
C(0,0)="c":C(1,1)="f":C(2,2)="i" 'Cの残りの要素は""

とかしておくと

1番目に"a"、2番目に"e"の場合C(0,1)は空だからばつ
1番目に"d"、2番目に"e"の場合C(1,1)は"f"だからまる

のように使えるでしょう。
#あんまいい例じゃないかも。

limiv001 さん 2002年 07月 25日 12時 31分 59秒

To:たるさん

大変ありがとうございます。
HPを見ましたが、感染原因は私の場合では、別でした。また、Syashin3.vbsというものをインテーネットで検査しませんでした。これは、ただのファイル名だと認識しました。

さざなみ さん 2002年 07月 25日 10時 12分 12秒

さざなみです。
レス遅れて申し訳ありませんでした。
土曜日に腰を痛めて、療養していました。

> アオタ さん
> はじめましてアオタと申します。
はじめましてさざなみです。

> http://www.geocities.co.jp/SiliconValley/4334/unibon/asp/getimagesize.html
> ここを見ると幸せになれると信じております。
ありがとうございます。

set objPicture = LoadPicture("D:\index1.jpg")
x = CLng(CDbl(objPicture.Width) * 24 / 635)
y = CLng(CDbl(objPicture.Height) * 24 / 635)
MsgBox "width = " & x
MsgBox "Height = " & y
Set objPicture = Nothing

で試したところ、きちんと変換できました。

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

neo さん 2002年 07月 25日 10時 06分 06秒

がたがたになった。見にくくなってすいません。

neo さん 2002年 07月 25日 10時 04分 53秒

To 筑集眺餅 さん
ありがとうございます。試してみました。
1次元配列は昨日から色々やっていて何とか理解してきたのですが、
2次元配列が今ひとつ、、、

intputBoxで文字を入力し、
"a"|"b"|"c"
___|___|____
"d"|"e"|"f"
___|___|____
"g"|"h"|"i"
___|___|____

とある2次元配列のうち、まず1列目("a","d","g")をそれぞれ見に行って
該当しているのがあれば、再度intputBoxで次の文字の入力させます。
それを2列目("b","e","h")でそれぞれ見て
1番目の入力文字と
2番目の 入力文字が一致しているものがあれば3列目の文字を表示させたいと思っています。
ex.intputBox = a
1列目("a")と同じ。
intputBox = b
2列目("b")と同じ。
aとbが同じだったのでcという表示結果を出力したいです。
こうした場合やはり2次元配列を使用したほうがいいですよね。。。

あいざわ さん 2002年 07月 25日 09時 38分 14秒

to:binさん

すみません。先にも書いたように自分の環境では
なんの問題もなく動くんです。もし環境に依存す
るのだとしたら自分にはちょっとフォローできません。
いちおう調べてみたんですが1つだけ説明なしに動かない、
とだけかかれたページがあった意外はおっしゃるような
現象を見つけることができませんでした。

どなたかのレスを待っていただくか、あるいは(無駄になる
かもしれませんが)ご自身のPC環境と動かしたスクリプトを
見せていただいたらなにかわかるかもしれません。

あいざわ さん 2002年 07月 25日 09時 09分 59秒

to:ああさんさん 筑集眺餅さん

私もメッセージの中に改行コードが含まれているだけだと思います。
ただTrim関数って空白を削るだけじゃ???>筑集眺餅さん

eventlog.message

Replace(eventlog.message, vbnewline, " ")
なんてしたらいかがでしょ。

neo さん 2002年 07月 25日 09時 06分 03秒

To 筑集眺餅 さん
おはようございます。僕はだいぶ調子が戻ってきました。
ありがとうございます。一度やってみます。

河童 さん 2002年 07月 24日 21時 44分 33秒

はじめまして
質問です
WSHでMicrosoft speech5.1を利用して
音声による指示が出せるのでしょうか
できるとしたらその方法は?
よろしくお願いします

筑集眺餅 さん 2002年 07月 24日 21時 26分 59秒

To:neoはん

こんなんもいけましたで。

'''----------------------
Y=Array( _
Array("j","k","l"), _
Array("m","n"), _
Array("o","p","q","r"))
MsgBox Y(0)(0) & Y(1)(1)
'''---------------------

へぇえ。

筑集眺餅 さん 2002年 07月 24日 21時 11分 50秒

うぅ、とりあえず、リハビリ中どすえ。<まだ熱あるんちゃう?

To:neoはん

こんなんで、いけます。
'-----------------------------
Dim X(2)
X(0)=Array("a","b","c")
X(1)=Array("d","e")
X(2)=Array("f","g","h","i")
MsgBox X(0)(0) & X(2)(3) '何が出るかな?
'---------------------

しやけど、上のは配列の配列っちゅうやつでおます。
2次元配列っちゅうのは一応別モノで、碁盤の目みたく
きれいに四角が埋まってる変数のことでおます。
Dim X(2,3) ' 3行×4列の碁盤の目
とか書くやつでおます。ちょっと書き方違いますやろ?
けど、朦朧としてる位やったら静養しなはれ。<ひと事ちゃうがな。

To:ああさんはん

わて、WMIはよう知りまへんけど、項目に改行コード
みたいのが引っついとんのとちゃいまんのか?
Trim関数でよけいなモンは削って並べはったら?

ところで、NECの一部のノートで、モノによっては
蓋をしめても電源が切れへんで90度位になるそうでっせ。
http://www.zdnet.co.jp/news/0207/24/njbt_05.html

キーボードを打ってアチチ、と思ったらすぐコール
センターへ。はしれ、はしれ。<違ぁう

ああさん さん 2002年 07月 24日 19時 18分 24秒

以前に二度ほど、質問させて頂きましたああさんと申します
ネットワークでつながっているPCの色々な情報を取るためにWMIが便利と言うことを管理人さんから
お聞きし、独学で学んでいる所です。
WMIとても便利ですね
ところで今、PCのイベントログをテキストファイルに書き出すという事をやっているのですが1つわからない
事がありまして、また書き込みさせて頂きました。
テキストファイルの1行に、間にカンマを入れながら3つの情報を並べて行こうと思っているのですが
改行の指示を出していないのにテキストに書き出すときにどうしても2行になってしまうのです。
具体的には下記のように指示を出すと(WMIで取った情報をWSHで書き出したいのです)
fa.writeline ebentlog.timewritten&","&eventlog.message&","&eventlog.computername

2002072413,Event log サービスが開始されました。
,computerA

となってしまうのです。(改行コードが2項目目のあとに入ってしまう、順番を変えても同じです)
writelineメソッドでは1行に書き込める字数などに制限があるのでしょうか?
よろしければお知恵をお貸し下さい。

ああさん さん 2002年 07月 24日 19時 17分 56秒

以前に二度ほど、質問させて頂きましたああさんと申します
ネットワークでつながっているPCの色々な情報を取るためにWMIが便利と言うことを管理人さんから
お聞きし、独学で学んでいる所です。
WMIとても便利ですね
ところで今、PCのイベントログをテキストファイルに書き出すという事をやっているのですが1つわからない
事がありまして、また書き込みさせて頂きました。
テキストファイルの1行に、間にカンマを入れながら3つの情報を並べて行こうと思っているのですが
改行の指示を出していないのにテキストに書き出すときにどうしても2行になってしまうのです。
具体的には下記のように指示を出すと(WMIで取った情報をWSHで書き出したいのです)
fa.writeline ebentlog.timewritten&","&eventlog.message&","&eventlog.computername

2002072413,Event log 三凡修アZ呂気譴泙靴拭」
,computerA

となってしまうのです。(改行コードが2項目目のあとに入ってしまう、順番を変えても同じです)
writelineメソッドでは1行に書き込める字数などに制限があるのでしょうか?
よろしければお知恵をお貸し下さい。

ああさん さん (aasan@moon.ne.jp) 2002年 07月 24日 19時 17分 23秒

以前に二度ほど、質問させて頂きましたああさんと申します
ネットワークでつながっているPCの色々な情報を取るためにWMIが便利と言うことを管理人さんから
お聞きし、独学で学んでいる所です。
WMIとても便利ですね
ところで今、PCのイベントログをテキストファイルに書き出すという事をやっているのですが1つわからない
事がありまして、また書き込みさせて頂きました。
テキストファイルの1行に、間にカンマを入れながら3つの情報を並べて行こうと思っているのですが
改行の指示を出していないのにテキストに書き出すときにどうしても2行になってしまうのです。
具体的には下記のように指示を出すと(WMIで取った情報をWSHで書き出したいのです)
fa.writeline ebentlog.timewritten&","&eventlog.message&","&eventlog.computername

2002072413,Event log 三凡修アZ呂気譴泙靴拭」
,computerA

となってしまうのです。(改行コードが2項目目のあとに入ってしまう、順番を変えても同じです)
writelineメソッドでは1行に書き込める字数などに制限があるのでしょうか?
よろしければお知恵をお貸し下さい。

neo さん 2002年 07月 24日 18時 55分 35秒


ひとつの変数に複数Array関数を使う際、どのような記述をすればよいのでしょうか?
Dim X
X = Array("cg","java",m_cgPath)の場合に
X(0) = cg
が取得できると思いますが、
Dim X()
X() = Array("cg","java",cgPath) & ("ck","html",ckPath)
という風に記述するとエラーがかえってきます。
X(0)を他の代入Bと一致しているかどうか調べる際、
まずX(0)に入っているのを調べ、該当しているものがあればX(1)を
しらべX(0)もX(1)も該当しているものがあれば最終的にPathを取得したいと思います。

説明が下手だと思いますが、それはいつものことと勘弁してください。



。。 さん 2002年 07月 24日 18時 52分 12秒

>そーいえば、WSHスレ@2chWindows板で、スレ主の名無しさん募集中。。さんがDoMacroと
>補完クンチェックしたみたいっすよ。
>降臨キボンヌ、と言ってみるテスト。

亀レスになりますが・・・
はじめまして、空気ハンのスレ主です。
ここはいつもチェックしてます。と同時に、皆さんの見識の広さには頭が下がるばかりです。

って、あのタイミングでカキコすればバれて当然ですね。
もちろん、TeraPad関係繋がりで確認してからなんて言って保留していて、そのまま何をすべきか忘れてしまったと言うのは内緒です。半コロ物ですね。
無断リンクの非礼はまず詫びた上、紹介がなかった事に意図のない事を分かっていただきたく。

>そこのあなた、
>2chが生き甲斐になっていませんか?
はうっ、矢が刺さりました。
まーでも、言い訳はしませんよ。コミュニティの形成を見るようで楽しいですし。

それでは、何かありましたら書き込ませていただきます。
そのときはどうぞよろしく。

bin さん 2002年 07月 24日 16時 49分 44秒

to:あいざわ さん

>サンプル例というと応用編のショートカットの作成あたりでしょうか。

そうです。デスクトップにショートカットが作成され、ホットキー
も Ctrl+Alt+A に設定されますが、このホットキーを押してもエク
スプローラが開きません。再起動すれば開くようになりますが、再
起動しなくても設定したキーが効くようにするにはどうすればよい
のかをお教え頂きたいのです。

Return