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/ ※「まず自分で調べる」クセを身につけよう。
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 のサイトのコードのようだが
276 名前:263 mailto:sage [2011/06/22(水) 23:56:16.48 ] >>270 レスありがとうございます。 エクセルで日付にしていましたが、Format関数?で出来るんですね。 わざわざありがとうございました。 >>271 説明が駄目駄目ですみません。 >>258 にも書いたのですが、 このように説明すれば分かりやすいでしょうか。 例えば、Q.次のシリアル値は何年/何月/何日 何時:何分:何秒を表しているかを求めるコードを書け。 という事をお聞きしたかったのです。 日付のデータが記録されているファイルを操作するのに、その中身がシリアル値だったので、日付形式 に変換したかったのです。 ところで、>>252 氏は私へのレスではなかったのでしょうか、アンカーもなくIDのないスレッドだったの でよく分からなくて。 >だからData自体が最初からシリアル値になってるのにどこに自前で変換かます必用があるのかと... >頭悪いのかな
277 名前:デフォルトの名無しさん mailto:sage [2011/06/22(水) 23:59:51.75 ] >>236 はさ、 >>238 を読んでんのかな。 1970/1/1 09:00:00を基準としたのが重要なの? もしそこにこだわらなくて良いなら、 Dim dateVal As Date Dim dblVal As Double dateVal = Now() dblVal = CDbl(dateVal) Call MsgBox(dblVal) Call MsgBox(CDate(dblVal)) これで、やりたい事はできんじゃねーの? 236がいうシリアル値ってのが、万国共通か規格があんのかな。 googleで上位に来るのは1900/01/01なんだけどな。
278 名前:デフォルトの名無しさん mailto:sage [2011/06/23(木) 00:07:06.39 ] >>277 シリアル値の時刻を求める(DateDiff, Timer) www.happy2-island.com/access/gogo03/capter01001.shtml > JavaScriptのDate/getTimeと同じシリアル値の日時を求める方法です。
279 名前:デフォルトの名無しさん mailto:sage [2011/06/23(木) 00:08:31.18 ] >>276 何か面倒臭そうな人なので一応レスしとくかな.... ひょっとして既に何らかの方式による既存のシリアル値のデータがあって、 それを日付に戻す方法が知りたかったのかも知れないけど、>>236 からそれを読み取れって そりゃ無理難題。 シリアル値っていったっていろんな方式があるんだから、>>236 みたいに 日付⇒シリアル値はできたが逆はできないって書かれたら、要は2つの日時の大小比較とかスパンが 計算できる値なら何でもいいはずだと普通は思うんじゃないの?
280 名前:263 mailto:sage [2011/06/23(木) 00:24:33.93 ] >>277 無知故にアンカーがないとレス内容だけでは、 私へ対してのレスか分からず>>238 自体は見ましたが、 別の人へのレスだと思ってしまいました。 あと、最初に書いたサンプルサイトの値のUTCというのでしょうか、 その値を基準にしたかったのです。 今この書き込みを見るまで、1970年1月1日0時0分0秒がシリアル値 の基準で1つしかないものと思っていました。 (+9されているのは日本時間?をしているようでしたのでそのままに) >>279 >>252 氏でしょうか? レスありがとうございます。 うまく説明できなくてすみません。 私としては、「任意の日時までのシリアル値」を求められれば、それは 逆を行えばシリアル値からyyyy/mm/dd hh:mm:ssと日時を求められると 単純に思ったのです。 サンプルサイトの例で下記のようにできたので、 2011/06/01 12:34:56 → 1306899296000 上に書いた通り、逆を行えば不明なシリアル値を下記のように日時に できるものとばかり。 1308799500000(何日の値か不明) → 2011/6/23 12:25:00 続きます。
281 名前:249 mailto:sage [2011/06/23(木) 00:27:55.96 ] 変な流れにしてしまってすみませんでしたが、 >>243 氏のレスで私にも理解でき、>>246 の通りできましたので、 皆さんに再度お礼を言って質問を終了させていただきたいと思います。 本当にどうもありがとうございました!
282 名前:デフォルトの名無しさん mailto:sage [2011/06/23(木) 00:30:33.31 ] 度々すみません訂正です。 誤:>>246 の通りできましたので、 正:>>249 の通りできましたので、 失礼しました。 ありがとうございました。
283 名前:デフォルトの名無しさん mailto:sage [2011/06/23(木) 00:42:05.54 ] lngTimeがLong型じゃないことのほうが気になっている俺がいる
284 名前:デフォルトの名無しさん mailto:sage [2011/06/23(木) 00:50:59.32 ] VB6付属のMSDNライブラリのVBの項目の定数と変数の名前付け基準によるとプリフィックスには Long型はlng Currency型はcur Double型はdbl をつけた方が分かりやすいとある
285 名前:デフォルトの名無しさん mailto:sage [2011/06/23(木) 00:51:48.77 ] Variant型はvnt Date型はdtm
286 名前:デフォルトの名無しさん mailto:sage [2011/06/23(木) 07:08:53.68 ] お前らさすがにレベル低すぎて開いた口が塞がらないぞ。
287 名前:デフォルトの名無しさん mailto:sage [2011/06/23(木) 08:09:18.92 ] >>286 のレベルの高いネタ振りに期待
288 名前:デフォルトの名無しさん mailto:sage [2011/06/23(木) 14:05:52.11 ] >>236 はさ、>>278 のサイトの掲載されているコードを使ったの?
289 名前:デフォルトの名無しさん mailto:sage [2011/06/23(木) 14:14:49.65 ] >>278 のサイトのはVBAっぽいような気がするんだけど プリフィックスが気持ち悪いな。Long型でもないのにlngを使うのはよくないと思う(誤解を招きかねない) getTime関数でTimerを2回呼び出すのは時刻の正確さを欠く可能性があると思う 同様の理由でNowとTimerを併用するのも時刻の正確さを欠く可能性があると思う getTimeB関数は任意の日時とあるのにTimerでミリ秒を補完するのはおかしいと思う getTime関数はWin32APIのGetSystemTimeAsFileTime関数、getTimeB関数はWin32APIのSystemTimeToFileTime関数を使えばいいと思う
290 名前:デフォルトの名無しさん mailto:sage [2011/06/23(木) 20:34:10.83 ] UTCの事を言っている人がいるのにそれには触れない件。 というか気付いていないんだろうな。 何にでも例外はあるがこのスレの連中はやっぱりほぼ・・・ 続く。
291 名前:デフォルトの名無しさん mailto:sage [2011/06/23(木) 20:51:46.69 ] UTCのことは>>278 のサイトの冒頭に書いてあるが?
292 名前:デフォルトの名無しさん mailto:sage [2011/06/24(金) 12:15:28.11 ] ここまで>>291 の自演。
293 名前:デフォルトの名無しさん [2011/06/25(土) 06:08:22.32 ] Form2.Show vbModal 'Form2をモーダルで呼ぶ Form2にはボタンが複数あって、状況によってデフォルトのボタンを設定したい Private Sub Form_Load() 'Me.Show ' ← Modal時は実行できない Command1.SetFocus End Sub Form_Load中でSetFocusしようと思ったら、その前にMe.Showしないといけない でもModalで呼ばれるからMe.Showはできない ★ ModalなForm2のCommand1をSetFocusする方法はありますか?
294 名前:デフォルトの名無しさん mailto:sage [2011/06/25(土) 13:32:36.53 ] >>293 デザイン時にTabIndexの0をあえて欠番にしておいて、Loadイベントで フォーム表示時に最初にフォーカスを設定したいコントロールのTabIndexを0にする。 VBを2年ぶりで触った俺でもすぐにできたぞ。 ところで、そういうのって「デフォルトのボタン」って言うのか....?
295 名前:デフォルトの名無しさん mailto:sage [2011/06/25(土) 13:44:37.84 ] TabIndexなんか触りたくないと言いそうだから別解 'Form2 Private mShown As Boolean Private Sub Form_Activate() If Not mShown Then OnShown End If End Sub Private Sub OnShown() mShown = True Command1.SetFocus End Sub
296 名前:デフォルトの名無しさん [2011/06/25(土) 15:57:49.62 ] >>294 ,295 なるほどActivateでしたか、ありがとうございました! Modalなのでその1回だけ実行するというロジックは不要と思います やるとしたらStatic変数が好きです デフォルトのボタンと言ったのは、要は自作のメッセージボックスを作っていたので・・
297 名前:デフォルトの名無しさん mailto:sage [2011/06/25(土) 16:31:29.25 ] デザイン時のコマンドボタンのプロパティでDefaultをTrueにすればいいんでないの?
298 名前:デフォルトの名無しさん [2011/06/25(土) 16:37:28.78 ] 申し訳ない コマンドボタンにDefaultプロパティというのがあって、 これをTrueにすることでデフォルトボタンにできるという初歩的な見落としがありました でもActivateは勉強になりました、Form_Loadの後に来るのはResizeかPaintかとか探してはいたのですが
299 名前:デフォルトの名無しさん mailto:sage [2011/06/25(土) 16:51:47.19 ] Defaultプロパティの本来の使い方は、Enterキー入力を受け取るボタンを決めること。 これは>>293 の言っていることと違うと思ったから、Defaultは知ってたけど紹介しなかったんだけど....
300 名前:デフォルトの名無しさん mailto:sage [2011/06/25(土) 16:58:50.28 ] ActivateはそのModalなFormからさらにModalな別のFormを開きそこから戻ってきたときにも発生するよ 例えば下の例ならForm1からForm2を呼び出したときとForm3からForm2に戻ったときにActivateが呼び出されるよ 'Form1 Private Sub Command1_Click() Form2.Show vbModal End Sub 'Form2 Private Sub Command1_Click() Form3.Show End Sub Private Sub Form_Activate() Debug.Print "Activate", Now End Sub
301 名前:デフォルトの名無しさん mailto:sage [2011/06/25(土) 17:00:08.84 ] >Form2にはボタンが複数あって、状況によってデフォルトのボタンを設定したい これから察するにプロパティのDefaultじゃちょっと違うよね?
302 名前:デフォルトの名無しさん mailto:sage [2011/06/25(土) 17:28:43.40 ] Default設定したら状況によってとかいうのが出来ないよね
303 名前:デフォルトの名無しさん [2011/06/26(日) 02:23:41.63 ] テストプログラム作ってForm_Load中でボタンのDefultプロパティを設定してみましたが Form1ではボタン周りに黒枠が表示されてEnterキーが効くのに Form2ではDefultプロパティの設定が無視される ヘルプではフォーム毎にEnterを受け付けるボタンが設定できると書いてあるのに どうもDefultプロパティの挙動がわからない・・ ボタンのキャプション周りのフォーカス枠表示も欲しいし、やはりSetFocusにします
304 名前:デフォルトの名無しさん mailto:sage [2011/06/26(日) 22:05:37.83 ] Defaultってデザイン時だけじゃなくて実行時にも変更可能なのか 知らなかったわ
305 名前:デフォルトの名無しさん [2011/06/28(火) 21:39:38.66 ] アプリの起動時に、ComboBox1に商品の情報を追加したいのですが 「ニンジン」、「かぼちゃ」、「キャベツ」の3品を追加するにはどうすればいいか。 また、初期表示として「ニンジン」が表示されているようにするにはどうすればいいですか 教えていただきたいです。メソッドの部分はどう書けばいいのでしょうか。 Private Sub frmMain_Load(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles MyBase.Load End Sub
306 名前:デフォルトの名無しさん mailto:sage [2011/06/28(火) 22:01:25.21 ] >>305 vb.netみたいだから、次からはこちらへ hibari.2ch.net/test/read.cgi/tech/1301828549/ '追加 Me.ComboBox1.Items.Add("ニンジン") Me.ComboBox1.Items.Add("かぼちゃ") Me.ComboBox1.Items.Add("キャベツ") '初期表示 Me.ComboBox1.Text = "かぼちゃ"
307 名前:デフォルトの名無しさん mailto:sage [2011/06/28(火) 22:04:02.00 ] すまん ニンジンが初期表示だった! Me.ComboBox1.Text = "ニンジン"
308 名前:デフォルトの名無しさん [2011/06/28(火) 22:38:14.08 ] >>306-307 ありがとうございます。
309 名前:デフォルトの名無しさん [2011/06/30(木) 15:21:23.15 ] For i%=1 to 4: Combo1.AddItem Choose(i%, "ニンジン","かぼちゃ","キャベツ","たまねぎ"): Next
310 名前:デフォルトの名無しさん [2011/06/30(木) 15:28:29.93 ] Dim t$,buf$(),i% t$="ニンジン,かぼちゃ,キャベツ,たまねぎ,セロリ,パセリ,ピーマン,ごぼう" buf$=Split(t$,",") for i%=0 to Ubound(buf$):Combo1.AddItem buf$(i%):next
311 名前:デフォルトの名無しさん mailto:sage [2011/06/30(木) 15:45:18.92 ] ひさびさに AS の無い宣言を見たw
312 名前:デフォルトの名無しさん [2011/06/30(木) 17:18:31.01 ] %とか&とか$とか#とか昔のBASICみたいで嫌う人がいるけど これはコード中で型が判るから絶対に有効だよ 変数名にいちいちstrnameとかlongpointとか入れる人もいるけど実に可読性が悪くて腹立つ
313 名前:デフォルトの名無しさん mailto:sage [2011/06/30(木) 17:30:20.52 ] strnameとname$のどっちが可読性が上かは 読む人の慣れとかクセとかでどっちが上とは言えないと思うが 世の中にはstrnameとかいう名前の数値型の変数を定義するような奴がいたりするからなぁ
314 名前:デフォルトの名無しさん mailto:sage [2011/06/30(木) 18:41:31.75 ] 型のある変数を使わなければ解決だな 毎回長文コーディングになるけど objectとかは知らん
315 名前:デフォルトの名無しさん mailto:sage [2011/06/30(木) 19:44:59.73 ] 10年遅れのハンガリアン っていうか、>>310 のようなマクロてんこ盛りのアセンブラみたいなコード読みたくないw
316 名前:デフォルトの名無しさん mailto:sage [2011/06/30(木) 23:35:59.77 ] 記号打つときシフトキー押すのしんどい Dim以外では変数名を途中入力で補完できりゃいいのに
317 名前:デフォルトの名無しさん mailto:sage [2011/06/30(木) 23:54:24.40 ] あずにゃ・・・じゃなくて、As 〜で型によって色が変われば分かりやすくね? つか、変えられなかったっけ? おれは、dblExsample lngExsample intExsample strExsample とか先頭みるだけで すぐわかるけどなー。 %とか&とか$とか#とか初めて知ったw 低レベルでさーせん。
318 名前:デフォルトの名無しさん mailto:sage [2011/07/01(金) 00:15:45.44 ] 俺は$が文字型ってくらいしか知らないな。ポケコン世代だけど
319 名前:デフォルトの名無しさん mailto:sage [2011/07/01(金) 14:08:40.58 ] その手の記号もAsと同じだから宣言時だけつけてりゃ使えたような気がする Dim name$, unko&(10) name = "namae" unko(5) = 1000 って
320 名前:デフォルトの名無しさん mailto:sage [2011/07/01(金) 14:10:25.36 ] >>317 >>265 のサイト見てみ。lngというプリフィックスが
321 名前:デフォルトの名無しさん mailto:sage [2011/07/01(金) 14:20:08.06 ] format$ とかで明示的にStringだってのも懐かしい話だな・・ MSDNもVariantのString みたいな言い回しがめんどくさかったなぁ
322 名前:デフォルトの名無しさん [2011/07/01(金) 19:47:55.35 ] 割り算で結果がどうもおかしいと思ったらIntegerで受けてたとか良くあるじゃん wari! = a% / b% ならそんな間違いは起こらないし、なんでこれが流行らなかったのか不思議
323 名前:デフォルトの名無しさん mailto:sage [2011/07/01(金) 19:55:21.14 ] そんな間違いあんただけだってw
324 名前:デフォルトの名無しさん mailto:sage [2011/07/01(金) 21:01:31.55 ] &とか%とかそういので型変換もできたらいいなと思う
325 名前:デフォルトの名無しさん mailto:sage [2011/07/01(金) 21:50:12.69 ] VB6.XまたはSP7に期待ですね そんなもの出ないけど
326 名前:デフォルトの名無しさん [2011/07/04(月) 18:41:27.30 ] 時々、Lineメソッドで間違ってないのにパラメータがどうこうってエラーが出る? プロジェクトを一旦閉じてから開き直すと直るけど
327 名前:デフォルトの名無しさん mailto:sage [2011/07/04(月) 20:27:45.01 ] >>326 エラーが出るのならば、どこかしらが「間違ってる」と思った方がいいよ。 詳細が分からないから勘だけど、どっかでメモリリーク起こしてるんじゃないかな。
328 名前:デフォルトの名無しさん mailto:sage [2011/07/04(月) 20:30:15.50 ] 馬鹿っぽい質問に馬鹿っぽい回答だな....
329 名前:デフォルトの名無しさん mailto:sage [2011/07/04(月) 20:38:46.74 ] >>326 変数はもちろん Variant 型だよな!
330 名前:デフォルトの名無しさん mailto:sage [2011/07/04(月) 21:19:46.26 ] >>326 >使用しているOS、VBのバージョン、サービスパックのバージョン
331 名前:327 mailto:sage [2011/07/04(月) 22:59:04.79 ] 馬鹿っぽくて悪かったな。
332 名前:デフォルトの名無しさん mailto:sage [2011/07/05(火) 03:16:49.63 ] エスパーか
333 名前:デフォルトの名無しさん mailto:sage [2011/07/06(水) 13:05:43.46 ] LE使いってどれくらいいる?
334 名前:デフォルトの名無しさん [2011/07/06(水) 18:53:51.59 ] >>327 やっぱり、メモリリークとかでしょうね、VBの Lineメソッドでエラーにはなるけど、決まったコードで出るわけではないし ある特定のプロジェクトで出るわけでもないので詳細は書きようもないですが プログラムがある程度大きい場合に、たまに発生するようです 再現したらキャプろうと思ったけど期待すると出てこない・・
335 名前:327 mailto:sage [2011/07/06(水) 23:13:20.19 ] >>334 エラー画面をキャプチャーしても原因はそこでは無いだろうから、 途中経過をモニタリングすべきだと思います。 (メモリの消費状況、インスタンスの開放、配列のErase等々) どうみてもプログラムに間違いが無さそうならば、 Service Packが最新になっているか確認してみてはどうでしょう?
336 名前:デフォルトの名無しさん mailto:sage [2011/07/06(水) 23:15:05.01 ] 環境を疑う前にコードを疑えって。 ダメな奴ほど環境を疑う。
337 名前:デフォルトの名無しさん mailto:sage [2011/07/07(木) 00:13:49.97 ] それほど対してソースコードは無いんですが実行速度が遅くて困っています 現状フォーム内にメソッドを記述して全ての処理を動かしているのですが クラスに書き込めば速度向上が望めるでしょうか それとも実行速度ってコード量に比例するってだけなのですか 教えてください。