[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 02/01 06:17 / Filesize : 260 KB / Number-of Response : 964
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

VBプログラマ質問スレ(Ver.6.0 まで) part57



1 名前:デフォルトの名無しさん mailto:sage [2011/04/30(土) 01:50:27.76 ]
ここは Visual Basic 〜6.0 の質問スレです。
質問者は使用しているOS、VBのバージョン、サービスパックのバージョン、
「何がしたくて、どうしたけど、どう困っているのか」を明確に書きましょう。

VB.NETは別物なので専門スレで、VBA、APIの質問もそれぞれのスレで。

○ 質問者の心得
 一.質問する前にMSDNやGoogle、過去ログにも目を通してみる。
 二.VBScript、インストーラーなどはこのスレでOK。
 三.質問は第三者にもわかりやすいよう簡潔かつ具体的に。
 四.荒らしは相手しない。

○ 回答者の心得
 一.答えられない質問は無駄に罵倒せずスルー。無理するな。
 二.代用法を強制しない。
 三.回答する上で必須ではない情報をむやみに聞き返さない。
 四.荒らしは相手しない。
 五.VB情報募集中。
 六.回答は質問者が理解できるよう具体的に。

MSDN Online Japan ホーム
 www.microsoft.com/japan/msdn/default.asp
Visual Studio 6.0 Service Pack 6
 msdn.microsoft.com/vstudio/downloads/updates/sp/vs6/sp6/default.aspx
Google
 www.google.co.jp/

※「まず自分で調べる」クセを身につけよう。

175 名前:デフォルトの名無しさん mailto:sage [2011/06/12(日) 12:06:46.28 ]
そこまで追い詰めるつもりはなかったんだが
鸚鵡返しするような状態になっちゃお終いですね
こんな人が社会に出てからとか言ってんだからお笑いです

176 名前:デフォルトの名無しさん mailto:sage [2011/06/12(日) 12:34:17.84 ]
一体誰を追い詰めた気になってるんだろう…
まあ、本人満足してるみたいだからいいか (w

177 名前:デフォルトの名無しさん mailto:sage [2011/06/12(日) 12:38:25.19 ]
総理大臣のようだNE!

178 名前:デフォルトの名無しさん mailto:sage [2011/06/12(日) 12:40:40.77 ]
道化を装う総理ならいいが
近年の人は愚かにしか見えない

179 名前:デフォルトの名無しさん mailto:sage [2011/06/12(日) 18:39:16.06 ]
スレ伸びてると思ったら
質問があったとかそれに対する返事だとかそういうのじゃないので伸びてたのか
残念だ

180 名前:デフォルトの名無しさん mailto:sage [2011/06/12(日) 18:55:49.70 ]
気づけばもう3日前からずっとこの流れなんだなw

181 名前:デフォルトの名無しさん mailto:sage [2011/06/12(日) 19:10:39.68 ]
>>179
同じく。
そもそも、このスレでバージョンは○○ですって書いてる人あんま見ないけどな。
ところで、COM使った開発とか新規でまだやってたりする?
この間.NETじゃないただのASPで動かさなきゃいけない案件があって、
バッチでも使う共通処理があったから、COMで作る事にしたんだが、VB.NET
でも簡単にCOM作れるのな。
中身はマネージドだから、VB6.0で作った方が動作は早かったかな。

182 名前:デフォルトの名無しさん mailto:sage [2011/06/12(日) 19:18:18.05 ]
終わった言語なんだし、ひっそりしていたほうが健全なんだ。

183 名前:デフォルトの名無しさん mailto:sage [2011/06/13(月) 17:10:31.72 ]
未だに終わった言語で開発させられている俺に謝れw



184 名前:デフォルトの名無しさん mailto:sage [2011/06/13(月) 17:41:27.35 ]
フヒヒ

185 名前:デフォルトの名無しさん mailto:sage [2011/06/13(月) 20:30:45.05 ]
なんかwordにVBエディタが入ってるんだけど
まさかこれってコンパイラDLしなくでもVBできる?
VBはじめようと思ってんだけど
誰かコレについて教えてくれ

186 名前:デフォルトの名無しさん mailto:sage [2011/06/13(月) 20:51:09.21 ]
それは別物です

187 名前:デフォルトの名無しさん mailto:sage [2011/06/13(月) 23:10:28.61 ]
>>185
まあ VB と似たようなもんだけど、Word がないと動作しないよ。

まずは word vba あたりでググレ。

188 名前:デフォルトの名無しさん mailto:sage [2011/06/14(火) 06:26:34.17 ]
みんなツンデレだなぁw助かってるけど^^
言い方きっついレスポンスは幼馴染みが
照れ隠しで怒っている感じに変換して
読んでる

189 名前:デフォルトの名無しさん mailto:sage [2011/06/15(水) 10:20:39.97 ]
質問です。

Set xlBook = xlApp.Workbooks.Open(xlTestFile)で開いた場合
Arrayって使えますか?
読込んだTextを文字列か標準かを指定してデータをExcelに挿入したいのですが・・

190 名前:デフォルトの名無しさん mailto:sage [2011/06/15(水) 11:00:48.32 ]
VB6言語すらまともに使えない奴には
日本語での質問もまともに出来ない奴が多い件

191 名前:デフォルトの名無しさん mailto:sage [2011/06/15(水) 11:19:07.01 ]
VB6言語?

192 名前:デフォルトの名無しさん mailto:sage [2011/06/15(水) 12:23:24.38 ]
WinXP、VB6、SP6です。

Controls.Addで動的に作成したTextBoxのMultiLineプロパティをTrueにする方法を教えてください。
普通にコードで設定しようとすると「値の取得のみ可能なプロパティに値を設定することはできません。」というエラーが出ます。

デザイン時にMultiLine=TrueにしたTextBoxをコントロール配列にしてLoadすれば、
MultiLine=TrueのTextBoxを動的に作ること自体は出来るのですが、都合によりコントロール配列ではダメなので。

最悪、デフォでMultiLine=TrueなTextBoxをユーザーコントロールとして作って、それをControls.Addで動的に作成するという
手法も考えてますが、もっと簡単な方法があればご教示ください。

193 名前:デフォルトの名無しさん mailto:sage [2011/06/15(水) 14:40:03.68 ]
VB6LEじゃActiveX作れんからプラグイン作れないんだな…orz



194 名前:デフォルトの名無しさん [2011/06/17(金) 00:34:45.03 ]
>>183
うらやましい
次の言語はなんですか

195 名前:デフォルトの名無しさん mailto:sage [2011/06/17(金) 03:39:58.92 ]
VB6のランタイムライブラリってぶっ壊れることあるんだな
家族の誰かが何かインストールしたらしくその際にVB6ランタイムが上書きされたかで
VB6およびVB6製アプリが正常動作しなくなった
ベクターにあったVB6ランタイムをインストールしたら直ったけど
ウィルス感染かと思ったわ

196 名前:デフォルトの名無しさん mailto:sage [2011/06/17(金) 08:37:41.49 ]
>>195
それは壊れるとは言わない。
古いライブラリに入れ替わっただけ。

そんなのはVB関係ないし、OSだって関係なく
起こり得る話。

197 名前:デフォルトの名無しさん mailto:sage [2011/06/17(金) 13:07:36.93 ]
どうせインストーラ型のVB6製アプリ入れる時にシステムに既に同じのあるけど上書きする?って聞かれて、
「なにこれわかんない。とりあえずはいでいいよね」って選択していったんだろ

198 名前:デフォルトの名無しさん mailto:sage [2011/06/17(金) 15:32:50.01 ]
spの古いランタイムに変わるとVB起動時およびVB製アプリ動作時にmsiとか起動するもんなの?

199 名前:デフォルトの名無しさん mailto:sage [2011/06/17(金) 17:00:17.40 ]
3文字ごとに[,]を打つのに作った↓コレが不具合の原因で
OutputBox.Text = Format(CDec(OutputBox.Text), "#,###.##############")
'[2.0]で持ってくると
'CDecで文字列を数値にしているので
'ただの[2]として認識されて[2]だけが出力される
'[2.03]だとそのまま[2.03]で認識してくれる

別の書き方ってあります?

200 名前:デフォルトの名無しさん mailto:sage [2011/06/17(金) 17:30:29.57 ]
OutputBox.Text = FormatNumber(OutputBox.Text)

201 名前:デフォルトの名無しさん mailto:sage [2011/06/17(金) 17:33:52.00 ]
Oh…小数第二位までしか表示されないけどこんな方法が。

ありがとうございます

202 名前:デフォルトの名無しさん mailto:sage [2011/06/17(金) 17:42:38.47 ]
MSDN
数値表示書式指定文字 (Format 関数)
数値を表すその他の書式 (Format 関数)
定義済み数値書式 (Format 関数)
の項目でも読め

203 名前:デフォルトの名無しさん mailto:sage [2011/06/17(金) 17:44:47.98 ]
FormatNumberの仕様読んでから使えよ



204 名前:デフォルトの名無しさん mailto:sage [2011/06/17(金) 17:47:38.21 ]
そもそも質問が意味不明
何を知りたいのかよく分からん

205 名前:デフォルトの名無しさん mailto:sage [2011/06/17(金) 17:50:27.71 ]
落ち着いてすぐ質問レスするのではなく
一度文章をメモ帖か何かで整理してから
投稿したほうがよい

206 名前:デフォルトの名無しさん mailto:sage [2011/06/17(金) 22:02:15.12 ]
ここは俺のメモ帳だ

207 名前:デフォルトの名無しさん [2011/06/18(土) 07:13:23.83 ]
メモ :
乱数系列を繰り返すには、数値を指定して Randomize ステートメントを
実行する直前に、負の引数を指定して Rnd 関数を呼び出します。
Number に同じ値を指定して Randomize ステートメントを使用しても、
前の乱数系列を繰り返すことはできません。

Rnd -1
Randomize 1234

208 名前:デフォルトの名無しさん mailto:sage [2011/06/18(土) 15:42:55.71 ]
>>207 言っている意味がよくわからんちん

'Rnd -1
Randomize 1234

Dim i
Debug.Print "Start"
For i = 1 To 10
Debug.Print i, Rnd
Next i
Debug.Print "End"

209 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 09:25:09.86 ]
VB6SP6で、ある文字列値がCBoolで変換できる値か否かを調べる関数とかって無いの?

"0"、"1"、"false"とかならTrueを返し
""、"a"、"t"とかならFalseを返すみたいな

今はOn Error Resume NextでCBoolに掛けちゃってるけど、もっと良い方法ある?

210 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 12:11:39.83 ]
俺様しか使わないような機能が実装されるはずだとかかもしれんとか思うのは軽い病気だと思う。
っていうか、関数の一覧見れば分かるだろ。
VBってもう死亡宣告されて10年経過してる言語だぞ

211 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 12:39:11.53 ]
ないなら作ればいいじゃない

212 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 12:59:22.41 ]
>>210
>>209 の書き込みから、「実装されるはずだとかかもしれんとか思う」と
読み取れちゃうのはちょっと重い病気だと思う。

適切な病院に行くか、小学校からやり直すべき。

>>209
なんでそんなことする必要があるのか気になるが、「CBool() で変換でき
ること」が絶対条件なら On Error にするしかないと思う。

213 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 13:25:14.89 ]
>212
馬鹿だろお前。



214 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 13:43:07.32 ]
>>212 の書き込みに対して「馬鹿」としか言えない >>213
ちょっとかわいそうだ。

早い目に、小学校からやり直せよ。(w

215 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 13:46:09.83 ]
(お前が)言われなきゃ分からない、の間違いじゃないのかしら。

逆に聞くが、存在するはずが無いと思ってる機能が存在するかどうか人に聞く馬鹿がいるのか。
あるはずとかあるかもしれないと思ってるから聞くんだろうが。

本当馬鹿だろお前。

216 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 14:08:32.40 ]
>>215
ないと思ってても、だめ元で聞いてみる奴はいくらでもいるだろ。

小学校に行って、勉強はもとより友達と会話するところからやり直してこい。

217 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 14:15:46.08 ]
[だめ元] ⊆ [あるかもしれない]
人に手取り足取り一から十まで全部説明されないと理解できないのは馬鹿の特徴か。

218 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 14:28:58.25 ]
>>217
>> 存在するはずが (*無いと思って*) る機能が存在するかどうか人に聞く馬鹿がいるのか。
> ないと思ってても、だめ元で聞いてみる奴はいくらでもいるだろ。

自分の書いたことには責任を持ちましょう。(w

219 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 14:33:26.21 ]
意味不明。
高校の数Iでやるような論理学が理解できないのも馬鹿の特徴の一つだな

220 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 16:06:27.63 ]
>>219
日本語が理解できてないクズよりましだけどな。

221 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 16:46:23.41 ]
>俺様しか使わないような機能が実装されるはずだとかかもしれんとか思うのは軽い病気
非常に解りにくい日本語なのですが
実装されるはずだと思う、あるいは、実装されてるかもしれんと思う だと解釈しよう

俺が使いたい機能なんだから絶対に実装されてるはずだ、と思うのは病気かもしれんが
こんな機能があったらいいな、すでに実装されてないかな?と思うのは病気でもなんでもないと思うが


222 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 16:55:44.86 ]
アスペルガーの人は病識がない。
自分を客観的に見られないという自覚が一切ない。

どう考えても一般性がない(そんな機能お前以外誰が必用とするんだってこと)
機能を、普通の人は「すでに実装されてないかな?」なんて思わないんだよ。
絶対に。

そう思うのは病気だから。
まあ病識がない人に自覚しろって言っても無理だろうけどねえ

223 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 17:26:57.93 ]
>>222
>アスペルガーの人は病識がない。
>自分を客観的に見られないという自覚が一切ない。

自己紹介乙。



224 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 17:46:17.47 ]
つか、>222は
ある変数がほかの型に変換可能かどうかチェックする機能
は一般性がないと思うのか


225 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 18:01:11.11 ]
変数って何だよ。
それを言うなら"値"じゃないのか。

そもそも>>209のいうような機能の需要が一般的かどうかの話をしているのであって、
「ある変数がほかの型に変換可能かどうかチェックする機能」の話なんかしてない。

馬鹿じゃないのか。

226 名前:デフォルトの名無しさん [2011/06/19(日) 18:56:17.63 ]
>>208
やっぱり分かり難いでしょ
Randomizeのヘルプの文章なんだけど

×Number に同じ値を指定して Randomize ステートメントを使用しても、
 前の乱数系列を繰り返すことはできません。
○Number に同じ値を指定して Randomize ステートメントを使用しただけでは、
 前の乱数系列を繰り返すことはできません。

昔のBASIC知ってる人には何でRandomizeだけで乱数系列初期化してくれないの?と思ってしまう
ヘルプも分かり難いけどVBの仕様も変

227 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 18:57:57.97 ]
あのね、二人とも。
そんなに喧嘩する程のものでは無いと思うんだ。
CBoolで変換出来るものを判定すればいいだけでしょ?
それってIsNumericでいいんじゃないかと思うんだ。
たしかCboolで変換出来るものって数値型で、0ならFalse、0以外ならTrueだったんじゃないかと思うんだけど。
もっとも、厳密にTrueやFalseを判定したいなら0か-1と言う条件を付け加えることになるけど、
今回はそうじゃなさそうだし。
違ってたらごめんね。

みんな仲良くやるわさ。

228 名前:デフォルトの名無しさん [2011/06/19(日) 19:00:55.40 ]
>>208
あ、毎回同じ乱数を発生させたい場合ね
例えばプロシージャ中で3回乱数を使ったとして
そのプロシージャを何回実行させても、いつも同じ乱数値を使いたい場合

229 名前:デフォルトの名無しさん [2011/06/19(日) 19:09:41.30 ]
>>209
Option Compare Text
private function is_bool(byval q$) as boolean
Select Case q$
  Case "1","0","false","true": is_bool = True
  Case else: is_bool = False
end select
end function

230 名前:デフォルトの名無しさん [2011/06/19(日) 19:12:16.34 ]
Select Case q$
  Case "1","0","false","true": is_bool = True
end select


231 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 19:22:02.49 ]
Select Case ucase(q$)
  Case "false","true": is_bool = True
  Case else: is_bool = IsNumeric(q$)
end select


232 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 19:31:44.23 ]
あら、TrueやFalseは文字列にするとIsNumericに反応しなくなるのね。
じゃ多分>>231の人が言ってるUCaseのをLCaseにしたのがFAだわさ。

233 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 19:58:20.77 ]
>>225
もうそろそろ引っ込んだら?
どう見ても哀れだよ、君。



234 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 20:06:36.54 ]
またスレが伸びてるから言い争いしてると予想したが、裏切ってくれなかったか。
毎回同じ人が煽ってんのかな。

235 名前:デフォルトの名無しさん mailto:sage [2011/06/20(月) 00:52:07.32 ]
>>226,228
もしかしてVB6より前のVB?
>>208のコードをCommand1_Clickにいれて何度か押したけど
Rnd -1のある場合の10個の数字と、ない場合の10個の数字は違うけれど
Rnd -1のあるなし関わらずコマンド何度クリックしても同じ10個の数字しか出なかった(Randomizeで初期化されてる)けど

236 名前:デフォルトの名無しさん mailto:sage [2011/06/20(月) 09:21:33.52 ]
下記サイトを参考に任意の日付までのシリアル値の計算はできたのですが、
逆にシリアル値からyyyy/mm/dd hh:mm:ssというように変換するにはどのように
すればよいのでしょうか?

VB6を使用しています。
よろしくお願いします。

www.happy2-island.com/access/gogo03/capter01001.shtml
'----------------------------------------------------------------------
'任意の日時までのシリアル値を求める
'----------------------------------------------------------------------
Public Function getTimeB(pNow As Date) As Currency

Dim lngTime As Currency

'pNowまでの経過秒数を求める
lngTime = DateDiff("s" _
, "1970/1/1 9:0:0" _
, pNow)

'1/1000秒部分を求める
':元の値を1000倍する
lngTime = lngTime * 1000
':Timer関数で求めた1/1000秒部分を加える
lngTime = lngTime + Fix((CDbl(Timer) - Fix(CDbl(Timer))) * 1000)

getTimeB = lngTime

End Function

237 名前:デフォルトの名無しさん mailto:sage [2011/06/20(月) 19:58:50.60 ]
>>236
MSDNの説明ではDate型の実体はDoubleだとあるから、
ある意味Date型そのものが既にシリアル値であるといえる。

自前でシリアル値に変換する意味がわからない。

238 名前:デフォルトの名無しさん mailto:sage [2011/06/20(月) 22:25:52.66 ]
Debug.Print CDbl(Now)
Debug.Print CSng(Now)
Debug.Print CDec(Now)
Debug.Print CLng(Now)

Dim v
v = Now
Debug.Print v
Debug.Print CDec(v)

239 名前:デフォルトの名無しさん [2011/06/20(月) 23:33:02.67 ]
>>235
VB6だけど何で違うんだろ〜
Private Sub Command1_Click()
Dim i%
  Debug.Print "---"
  Randomize 123
  For i% = 1 To 3: Debug.Print Rnd: Next
End Sub
---
0.7545646
0.5271199
0.3011898
---
0.1030034
0.2489544
0.3967338
-Rndしないと毎回違うパターンがでる

240 名前:236 mailto:sage [2011/06/21(火) 01:31:17.21 ]
>>237
レスありがとうございます。
私がやりたいのはシリアル値に変換するのではなくて、
シリアル値からyyyy/mm/dd hh:mm:ssというように変換したいのです。

241 名前:デフォルトの名無しさん mailto:sage [2011/06/21(火) 02:22:59.69 ]
Win32APIとかでそういうの扱えるの無かったっけ?よく覚えてないけど

242 名前:デフォルトの名無しさん mailto:sage [2011/06/21(火) 02:24:20.96 ]
SystemTimeToFileTime
FileTimeToSystemTime
あたり?

243 名前:デフォルトの名無しさん mailto:sage [2011/06/21(火) 02:45:14.26 ]
>>236の逆変換をやるの?
dt = DataAdd("s", lngTime \ 1000, "1970/1/1 9:0:0")
これでいい?




244 名前:デフォルトの名無しさん mailto:sage [2011/06/21(火) 02:47:55.34 ]
>ngTime = lngTime + Fix((CDbl(Timer) - Fix(CDbl(Timer))) * 1000)

これTimer2回呼び出してるけど問題ないの?

245 名前:デフォルトの名無しさん mailto:sage [2011/06/21(火) 02:57:11.65 ]
>>239
もう一度やってみたら貴公の言うとおり再現した
でも>>235のレスしたときは>>235のとおりだった。>>235のレスしたときコメントアウトし忘れてたのかもしれない
疑ってすまなかった

246 名前:デフォルトの名無しさん mailto:sage [2011/06/21(火) 03:00:03.19 ]
あれ、でもコメントアウトの問題なら表示される数字はどちらの試行でも同じはずなのに違ってたな。なんでだろう


247 名前:デフォルトの名無しさん mailto:sage [2011/06/21(火) 03:04:06.73 ]
あ、原因判明したかも。コメントアウトの問題じゃなくてイミディエイトのカーソル位置の問題だ。おそらく。
カーソルが一番下じゃなく一回分の試行の手前あたりにあったんだなきっと

248 名前:デフォルトの名無しさん mailto:sage [2011/06/21(火) 11:47:09.85 ]
あれはカーソル位置から書き始めるから困る

249 名前:236 mailto:sage [2011/06/21(火) 14:45:46.70 ]
>>243
ありがとうございました。
教えていただいた通り以下の通りで出来ました。
DataAddという物があったのですねー。
236で書いたのは、シリアル値から日付へ変換する方法を
探している際に見つけて、これの逆をやればできるかなと
思ったんですが、差分の部分でつまづいていました。
本当にどうもありがとうございました!

'---------------------------------
'シリアル値から日付へ
'---------------------------------
Function STD(SR As Double)


Dim lngTime As Double
lngTime = SR

Dim DT As Variant
DT = DateAdd("s", (lngTime / 1000), "1970/1/1 9:0:0")

STD = DT


End Function

250 名前:デフォルトの名無しさん mailto:sage [2011/06/21(火) 16:13:03.13 ]
>>244
最初のTimerの呼び出し時に 1234.999秒ですぐ次の呼び出しで1235.000になっていた場合、さてどうなるかな?

251 名前:デフォルトの名無しさん mailto:sage [2011/06/21(火) 16:15:41.80 ]
その理屈ならミリ秒取得前に引数で日付取得じゃ秒のズレが起きたりしないの?
t1 = Timer
n = Now
t2 = Timer
とかして挟んでt1とt2からミリ秒取得したほうが

252 名前:デフォルトの名無しさん mailto:sage [2011/06/21(火) 19:15:05.59 ]
だからData自体が最初からシリアル値になってるのにどこに自前で変換かます必用があるのかと...
頭悪いのかな

253 名前:デフォルトの名無しさん [2011/06/22(水) 00:28:38.30 ]
頭悪いのかな
だって
一言多いのねこの人
コンプレックスを抱えてる人間のようです
だから誰かを貶さないといられないのです
自分だって無知な頃があったはずなのに
いや、今も無知だから心が狭くなっているのでしょうか
もっと精進すべきです



254 名前:デフォルトの名無しさん mailto:sage [2011/06/22(水) 00:45:52.70 ]
Dataの中身のDouble値そのままじゃ他の言語と互換性無いからじゃね
小数点以下が時間とかどうなの?

255 名前:デフォルトの名無しさん mailto:sage [2011/06/22(水) 01:13:50.55 ]
質問です。

JP1(日立の運用ツール)からVBSを起動し、
VBSからExcelマクロを起動しようとしています。

つい最近、WinServer2003からWinServer2008のサーバーへと
環境が移ったのですが、移行後にJP1からVBSを起動したところ、
"Workbooks クラスの Open プロパティを取得できません"
とエラーを吐きExcelマクロが起動できなくなりました。
似たような経験をお持ちの方がいましたら、
どうやって解決したかを教えてもらえないでしょうか。

256 名前:255 mailto:sage [2011/06/22(水) 01:16:18.70 ]
以下のソースコードの「ワークブックを開く」の箇所で
"Workbooks クラスの Open プロパティを取得できません"
とエラーになるようです。

<VBS ソースコード>

'Excel
Set objExcelApp = CreateObject("Excel.Application")

'ワークブックを開く
Set objExcelBook = objExcelApp.Workbooks.Open("C:\workspace\perl_test\test_vba.xls", , True)

'Excel側マクロ(main)を起動
objExcelApp.Run "'" & "test_vba.xls" & "'!main", 2

257 名前:255 mailto:sage [2011/06/22(水) 01:18:28.93 ]
<参考>
・手動実行なら問題なく起動します。
・旧環境、新環境ともにJP1がインストールされている
 サーバーにはExcelがインストールされていないが、
 実行先のサーバーにはExcelがインストールされている。

よろしくお願いします。

258 名前:249 mailto:sage [2011/06/22(水) 01:19:11.34 ]
>>252
わたしへのレスですか?
もしそうだとしたら、HelloWorld!卒業くらいのレベルなので、
おっしゃっている事がさっぱり分からないです。

私がやりたいのは、あるシリアル値があったとして、それが
何年何月何日なのか分からないため、それを日付にしたいんです。

もっとスマート?な方法があったら、ご教示いただければ幸いです。

259 名前:デフォルトの名無しさん mailto:sage [2011/06/22(水) 01:23:38.59 ]
>>257
適当だけど、実行元のサーバーにEXCELのランタイムは設定されてる?

260 名前:デフォルトの名無しさん mailto:sage [2011/06/22(水) 01:23:53.23 ]
なるほど、自分で>>239に書いた内容はもう忘れたわけですか。

261 名前:デフォルトの名無しさん mailto:sage [2011/06/22(水) 01:25:27.92 ]
いや>>239じゃなくて>>236

262 名前:255 mailto:sage [2011/06/22(水) 01:40:11.91 ]
>>259
確認しないとわからないですが、
ないかもしれません。
明日調べてみます。
ありがとうございます。

263 名前:249 mailto:sage [2011/06/22(水) 01:53:29.94 ]
>>260-261
失礼ですが、>>249の4-6行目をよく読んでみてください。
それで双方理解できないならば、いづれかもしくは双方の
理解力に問題があるということで。

ちなみに、>>258で書いたスマート?な方法はご存知ないですか。



264 名前:デフォルトの名無しさん mailto:sage [2011/06/22(水) 01:57:08.22 ]
"シリアル値"が分からない私も初心者

265 名前:デフォルトの名無しさん [2011/06/22(水) 02:47:12.69 ]
>>252
シリアル値の時刻を求める(DateDiff, Timer)
www.happy2-island.com/access/gogo03/capter01001.shtml
> JavaScriptのDate/getTimeと同じシリアル値の日時を求める方法です。





266 名前:デフォルトの名無しさん mailto:sage [2011/06/22(水) 13:49:31.56 ]
時刻のシリアル値ってふつー秒単位じゃないのか

267 名前:デフォルトの名無しさん mailto:sage [2011/06/22(水) 17:25:47.73 ]
なにいってんだこいつ

268 名前:デフォルトの名無しさん mailto:sage [2011/06/22(水) 21:38:11.18 ]
VBやエクセルなどのVBAではシリアル値とは整数部が1970/1/1からの日付で、小数部が時間を表すフォーマット
エクセルの普及からシリアル値といったらこっちになることが多い

269 名前:デフォルトの名無しさん [2011/06/22(水) 21:48:02.32 ]
>>256
プロジェクト→参照設定
でエクセルのライブラリ参照とかじゃない?

270 名前:デフォルトの名無しさん [2011/06/22(水) 22:04:33.32 ]
>>263
文字列に変換するなら
Debug.Print Format(DT, "yyyy/mm/dd(AAA)")

271 名前:デフォルトの名無しさん mailto:sage [2011/06/22(水) 22:38:20.41 ]
>>270
いや、俺も最初そう思ったけど、ある年月日から現在までの期間を"YYYY/MM/DD hh:mm:ss"のフォーマットで
何年、何ヶ月、何日の何時間、何分、何秒経ったかを表示したいって言ってるんじゃないの?

272 名前:デフォルトの名無しさん mailto:sage [2011/06/22(水) 22:57:14.49 ]
それ、「ある年月日から現在までの期間」が例えば 31日だったとして、
今日だったら、1ヵ月と表示するけど、同じ期間でも来月だったら、
1ヵ月と1日って表示するってこと?

うるう年まで考慮するなると、一発でちゃんとしたものができるか俺
には自信がない...。

273 名前:デフォルトの名無しさん mailto:sage [2011/06/22(水) 23:04:35.40 ]
>>255
>サーバーにはExcelがインストールされていないが、
>実行先のサーバーにはExcelがインストールされている。
これ、1行目はJP1の管理サーバーって事で良いんだよね?
Excelは実行先だけで良いはず。気になるのは、手動で動かした
ときは上手くいって、JP1から起動させるとダメだってとこだな。
思いつくのは、JP1からキックしたときの権限じゃないかな。
実行ユーザーを指定できるなら、手動で動かしたときと同じ
ユーザーで起動するようにしてみたらどうだろ。
後は、objExcelAppにちゃんとインスタンスが入ってるか(nullじゃないか)
と、FileSystemObjectで、Excelファイルが開けるか試してみて
CreateObject周りでおかしいのか、Excelオブジェクトの何かが
いけないのかを切り分けるかな。



274 名前:デフォルトの名無しさん [2011/06/22(水) 23:13:20.30 ]
ある時刻のt1 as dateがあって、そこから今までの時間なら
Dim sec&
sec& = DateDiff("s", t1, Now)
秒はこれで出るけど
月は30.5日くらいにしとく?って客先に聞かないと

んん?これって求めたいものはt1そのもの・・謎は深まるばかり・・

275 名前:デフォルトの名無しさん mailto:sage [2011/06/22(水) 23:50:29.54 ]
>>236のコードは>>265のサイトのコードのようだが






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<260KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef