1 名前:デフォルトの名無しさん [2013/02/15(金) 16:54:12.79 ] ここは 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/ 前スレ VBプログラマ質問スレ(Ver.6.0 まで) part61 toro.2ch.net/test/read.cgi/tech/1359721249/ ※「まず自分で調べる」クセを身につけよう。
448 名前:デフォルトの名無しさん mailto:sage [2013/04/06(土) 20:05:57.42 ] >>444 Redim Preserveすると、C言語で言うreallocみたいに ヒープ確保のサイズが変わるけど、メモリのフラグメント を起こすかと思ったんだ。 連続した領域を確保できるとは限らないでしょ。 新規にRedimするだけなら連続した領域を確保しやすい とは思う。Preserveみたいに、内容を保持したままなら プログラマからはあたかも配列がキレイに並んでいる かに見えて、実際は離散したメモリ空間を確保してるかも しれない、とね。 それぞれの配列の先頭アドレスを調べられたら フラグメント起こしてるかどうかわかりそうなのに。
449 名前:桃白白 mailto:sage [2013/04/06(土) 20:17:30.63 ] >>448 動きが悪いこととフラグメントが関係してるだなんてそんなこと知らないわよ。 桃白白はそういう心境だけど、配列の先頭アドレスを取得するのはこれでいけるんじゃないか。 Visual Basic では変数のアドレスを取得するには、方法 support.microsoft.com/kb/199824/ja
450 名前:デフォルトの名無しさん mailto:sage [2013/04/06(土) 20:21:11.97 ] redim preserve は新しい配列を作ってコピーしてるよ だから1行ずつ増やしていくのは遅いよ
451 名前:デフォルトの名無しさん mailto:sage [2013/04/06(土) 20:25:35.82 ] 何言ってんだこいつ。 フラグメンテーションは動的なメモリの確保と解放によって起こる。 つまりそんなものはありふれた現象であって、もしそんな根幹部分に不具合があるのなら とっくに修正されているだろう。 っていうか、何かもう絵に書いたような典型的なVBerだな。 無能なVBerはてめえのコードの問題を棚に上げて、すぐシステム側の問題だと 何の根拠もなく思い込む。 ついでに言っておけば、配列の要素がメモリ上に不連続に配置されるように 実装されてる言語なんて聞いたことないよw そんな実装、実行効率が悪くて使えたものじゃない
452 名前:デフォルトの名無しさん mailto:sage [2013/04/06(土) 20:37:11.99 ] >>441 がRedim Preservの話をしたいのか動きの悪いプログラムを修正したいのか さっぱりわからん展開だな。
453 名前:デフォルトの名無しさん mailto:sage [2013/04/06(土) 21:36:22.13 ] まあ、コードも出さずに遅い原因知りたいならエスパースレいってくれと
454 名前:デフォルトの名無しさん [2013/04/06(土) 22:15:11.41 ] >>441 地道にデバグをしろ。
455 名前:デフォルトの名無しさん mailto:sage [2013/04/07(日) 00:22:09.68 ] 1行ずつ増やしていくのが遅ければ、100行でいけよw
456 名前:デフォルトの名無しさん mailto:sage [2013/04/07(日) 23:58:31.36 ] >>451 >ついでに言っておけば、配列の要素がメモリ上に不連続に配置されるように >実装されてる言語なんて聞いたことないよw 441の言う、Cのreallocって、まさに不連続に配置されてしまう仕組みになってる。 mallocはヒープから確保するけど、reallocって確保したヒープのサイズを 変えるけど、それが連続した領域になるとは限らず、フラグメント化する。 ついでに言うと、VB6でも、文字列の連結をすると、おそらくは連続した 領域で連結するとは限らないはず。 だから、前に出てた論破くんの話題に戻すけど、 連続した領域を確保して、随時MIDステートメントで置き換えていく やり方が高速で、Stringを & でどんどん連結していくとすげー遅い。 文字列を&で連結していくと、連続した領域を確保しているとは限らない っていうのが正解かな。
457 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 00:07:14.31 ] >>456 連続してないと、Cで書いたライブラリとかWin32APIとやり取り出来ないと思うんだが、君のそれどこ情報?
458 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 00:10:43.45 ] へぇ、C言語ではポインタ操作の必要性から 配列はメモリ上に連続していることが保証されているのか reallocは連続して確保できない場合 他の領域にコピーすることで連続であることを保証しているんだね。 勉強になった。
459 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 00:15:21.08 ] reallocでメモリのフラグメントが起こるのは確かだが、それはバッファが分断されるからじゃないよ。 それとVBAの文字列領域も連続してると思うし、文字列を&で結合させると遅いのは、オブジェクトを再生産するからでは?
460 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 00:15:41.74 ] c言語のreallocって不連続になるっけ?
461 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 00:17:35.31 ] なるわけないっしょw 確保されたメモリが不連続だったら Cのポインタ=メモリアドレスを 順番にたどれなくなる。 常識だよそんなのwww
462 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 00:19:24.99 ] reallocでフラグメント化するのは、ヒープ全体が、だ。 よくもまあ適当な事ばかりを長文でレスしようと思ったもんだ。
463 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 00:37:40.75 ] なんで>>456 は適当なこと言うの?
464 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 00:43:24.07 ] 夜釣り
465 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 01:57:07.06 ] reallocした時に、連続した領域が確保できなかったらどうなるの?
466 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 02:06:12.27 ] >>465 C言語なら俺に聞け(入門編)Part 113 toro.2ch.net/test/read.cgi/tech/1362824689/
467 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 07:10:12.42 ] >>465 null返すんじゃね?
468 名前:デフォルトの名無しさん mailto:sage [2013/04/09(火) 00:51:34.97 ] またCの話題か
469 名前:デフォルトの名無しさん [2013/04/15(月) 17:34:48.32 ] そろそろVB6を休ませてあげよう ttp://el.jibun.atmarkit.co.jp/ahf/2011/08/vb6-7abc.html
470 名前:デフォルトの名無しさん mailto:sage [2013/04/15(月) 21:38:23.99 ] >>469 これももう2年近くも前になるんだな…
471 名前:sage mailto:sage [2013/04/15(月) 22:17:59.18 ] 俺もそろそろ休みてぇよorz VB6からC#への移行作業中でどっちのコードも見てると頭がこんがらがりそう。
472 名前:デフォルトの名無しさん mailto:sage [2013/04/16(火) 01:56:40.11 ] >>469 結局8でもサポート継続するハメになって いつ消えてもなんて事は全く無いって事が証明されちまったもんなぁ むしろ消したくても消せない状況に・・・
473 名前:デフォルトの名無しさん mailto:sage [2013/04/16(火) 02:04:44.51 ] 今日からVB6を始める俺に何か一言ください
474 名前:デフォルトの名無しさん mailto:sage [2013/04/16(火) 09:44:32.55 ] なんでやねん。
475 名前:デフォルトの名無しさん mailto:sage [2013/04/16(火) 23:04:30.80 ] >>473 信念を持って、初心を忘れず、自分を信じて、頑張って下さい。
476 名前:デフォルトの名無しさん mailto:sage [2013/04/17(水) 23:49:51.03 ] いまから自主的にVB6始めるやつは正気とはおもえん 仕事でやらされるなら貧乏くじ引かされてる
477 名前:デフォルトの名無しさん mailto:sage [2013/04/18(木) 12:19:26.17 ] VB6の代わりは他にないからねぇ 簡単さ、ネイティブバイナリ、GCなし
478 名前:デフォルトの名無しさん mailto:sage [2013/04/18(木) 12:24:55.07 ] Delphi 6 Personal
479 名前:デフォルトの名無しさん mailto:sage [2013/04/18(木) 18:46:27.47 ] VB6で開発・保守していた業務ソフトをそろそろ移行しないとまずいなと思っていましたが、 皆さんのようにVB6を使っている方が多いことを知って安心しました。 とりあえず実行環境で動かなくなるまではVB6を使い続け、開発環境はWinXPを強引にインストールして使い続けます。 MSの.Netに移行して、「イノベーション」と称して仕様がコロコロ変わりそれに適応していくのは我慢できません。 まったくの新規案件はDelphiで作っています。こんな人いますか?
480 名前:デフォルトの名無しさん mailto:sage [2013/04/18(木) 18:54:50.30 ] いてもいなくてもいいんじゃね?
481 名前:デフォルトの名無しさん mailto:sage [2013/04/18(木) 18:58:58.02 ] ってかスレチの話題なんだが。
482 名前:デフォルトの名無しさん mailto:sage [2013/04/18(木) 23:13:03.61 ] Delphiはいいよね。 確か今はボーランド製じゃなくて 数十万円するんだっけ?w 死滅してしまったじゃないか。
483 名前:デフォルトの名無しさん mailto:sage [2013/04/19(金) 01:28:52.18 ] 先日MSのジニアス平井さんが、VB6ランタイムのサポートはずっとやるだろうと言っていました。 これで安心です。 VB.NETなんかに移行しません。移行せざるを得ない場合は非MSで書き直します。
484 名前:デフォルトの名無しさん mailto:sage [2013/04/19(金) 01:48:22.23 ] 標準ランタイムしか使って無いならね あとはサポートの質 やるとしても致命的な障害に限定されるだようし
485 名前:デフォルトの名無しさん mailto:sage [2013/04/19(金) 10:12:21.64 ] プログラミング&VB初心者です。スレ違いだったら誘導お願いします。 下記のコードをどう作ればいいかわからず困っています。 (For ​i〜を使うのは分かるのですが条件をどう組み合わせればいいのかが分かりません) コードの正答や考え方などを教えていただけないでしょうか? 1.配列TBL(6,7)の中に、1日が金曜日で始まり31日で終わる日曜始まりのカレンダーを作成するコードを作りなさい。ただし、インデックス0の要素は使用しないものとする。 2.配列TBL2(4)の各要素にセットされている数字を小さい順に並び替えるコードを作りなさい(数字は左から8/90/20/12/2)。ワーク変数はWO1とする。 3.配列TBL(10,10)1-9行の1-9列に九九の値を代入し、10行目・10列目に縦計・横系を求めるコードを作りなさい。インデックス0は使用しない。
486 名前:デフォルトの名無しさん mailto:sage [2013/04/19(金) 10:26:10.23 ] 書いてる通りにやればいいんじゃない?
487 名前:デフォルトの名無しさん mailto:sage [2013/04/19(金) 12:32:16.72 ] 宿題ならVB6じゃなくてVB.Netだろ
488 名前:桃白白 mailto:sage [2013/04/19(金) 14:35:04.15 ] >>485 桃白白が教えてあげちゃう https://friendpaste.com/3odEM6sL0NAiz2SuWsaou0
489 名前:デフォルトの名無しさん [2013/04/19(金) 16:06:51.37 ] >>488 Forループ抜けた後のループ変数使うの男の人って・・・
490 名前:デフォルトの名無しさん mailto:sage [2013/04/19(金) 16:46:48.62 ] >>489 使ってもいいだろ
491 名前:デフォルトの名無しさん mailto:sage [2013/04/19(金) 17:46:56.32 ] >>489 使えるやろ、パスカルやないねんで
492 名前:デフォルトの名無しさん mailto:sage [2013/04/19(金) 17:48:04.34 ] 原理主義者が暴れる予感・・・
493 名前:デフォルトの名無しさん mailto:sage [2013/04/19(金) 18:01:23.99 ] 使っても問題ないけど、コードが汚いわ To 9 でマジックナンバーつかってるなら TBL(10,10)って書けよ
494 名前:デフォルトの名無しさん mailto:sage [2013/04/19(金) 18:15:47.30 ] >>493 そっちのが汚いわwww
495 名前:デフォルトの名無しさん mailto:sage [2013/04/19(金) 20:51:05.41 ] 丸投げだからパイパイのコードでもいいんじゃないか? っていうか、どうせならもっと汚く書いてほしかったなw マジックナンバー使いまくり 一文字変数使いまくり コメントなし コードを書いた本人も首をかしげるようなコード
496 名前:デフォルトの名無しさん mailto:sage [2013/04/19(金) 21:16:54.15 ] ループの内側にDimって置けたっけ?
497 名前:デフォルトの名無しさん mailto:sage [2013/04/19(金) 21:25:53.20 ] 置けるけど意図した動きをしない Dim I As Integer For I = 1 To 10 Dim J As Integer J = I Next Debug.Print I, J ' ここでJ がしっかり参照できる。
498 名前:デフォルトの名無しさん mailto:sage [2013/04/19(金) 21:59:46.75 ] マジックナンバーとかいうのって新人君だけだよね
499 名前:デフォルトの名無しさん [2013/04/19(金) 22:02:07.21 ] >>488 Q2の比較ループ通る回数が無駄に多い気がする
500 名前:デフォルトの名無しさん mailto:sage [2013/04/19(金) 22:02:35.53 ] >>488 日曜日、金曜日、土曜日を態々Constステートメントで書いてるけど VB自体にvbSunday、vbFriday、vbSaturdayとか用意されてるからせめて使おうよ。
501 名前:桃白白 [2013/04/19(金) 22:25:57.40 ] >>500 桃白白それには賛同しないわ。 その定数はVBの日付関数呼ぶときに使われるやつっしょ。 今回のプログラムがVBの日付関数と連関するものだったら 同じ定数使うのがいいと思うけど、別にそういう前提もないわけだから VBの日付関数と今回のプログラムがまったく連関しない可能性を示唆することの できる桃白白のコードの方が優れているよ。
502 名前:デフォルトの名無しさん mailto:sage [2013/04/19(金) 22:55:39.11 ] この人一人称が自分のHNなんだ アイドルかよw 気色悪っ
503 名前:デフォルトの名無しさん mailto:sage [2013/04/19(金) 22:57:34.72 ] >>501 めんどくせ
504 名前:鶴仙人 mailto:sage [2013/04/19(金) 23:22:12.25 ] さすがにそのHNはないわ
505 名前:デフォルトの名無しさん mailto:sage [2013/04/20(土) 00:13:52.87 ] >>456 あのさあ・・・・不連続って何?頭おかしいの?
506 名前:499 [2013/04/20(土) 08:01:34.42 ] 回らない頭でコードみるよりは早起きしようとおもったら今起きた。 バブルソートっぽいけど比較回数がn(n-1)回になるのってどうなのさ?>たおぱいちゃん
507 名前:デフォルトの名無しさん mailto:sage [2013/04/20(土) 12:01:55.54 ] >>505 いつの話してんだ
508 名前:桃白白 mailto:sage [2013/04/20(土) 12:14:05.08 ] >>506 桃白白としましては手続き上なんら問題はなく適切なバブルソーティングが行われるものとそのように認識しております。
509 名前:500 mailto:sage [2013/04/20(土) 15:59:51.96 ] >>501 MSDNを見ると確かに「日付関連の関数を呼び出すときに使用する」と書いてある。 msdn.microsoft.com/ja-jp/library/microsoft.visualbasic.constants.vbsunday (v=vs.95).aspx でも、これ以外の場合は使うなとは書いてない。 日付に関する処理で曜日を数値で扱う場合はこれをそのまま使ったほうがいいと思うけど。 日付関連の関数に使うんだったら、日付に関する関数も同じ値を使っておかないとかなり面倒なことが起きると思う。 パイパンの話からするとこんな感じになるのかな。 ・日付関連の関数の場合はVBで用意されているの値を使う。 ・日付関連の関数でない場合はVBで用意されている値とは別の定義、別の値を使う。 →VBで用意されている値と同じ値にするのであればあえて定義する意味がない。 別定義をすることで日付関連の関数でないことを示唆するというのは理解できる。 ただ、日付関連の関数でないことを示唆するのであれば、VBで用意されている値と全く同じ値にしてはいけない。 同じ値にすると日付関連の関数と整合性が取れてしまって、日付関連の関数も扱えてしまう。 なので>>488 のコードはVBで用意されている値と同じ値になっているので 「別定義をすることで日付関連の関数でないことを示唆する」というのは意味不明。 こんな意味の分からない定義の切り分けをやったら曜日の定数の種類がいくつも出てきて訳が分からなくなると思う。 せっかくVBで用意してくれているのであるのなら、それをそのまま使っておいたほうが無難。
510 名前:デフォルトの名無しさん mailto:sage [2013/04/20(土) 16:30:01.59 ] >>509 そんな必死になることかよ。 別にこの程度自分で定義したっていいだろうが。
511 名前:デフォルトの名無しさん mailto:sage [2013/04/20(土) 16:36:22.59 ] 必死とかガキみたいなこと言うんじゃないの。 特に理由がない限りシステムやライブラリが用意したものを使うのは当たり前のこと。
512 名前:デフォルトの名無しさん mailto:sage [2013/04/20(土) 16:36:48.97 ] >>509 >でも、これ以外の場合は使うなとは書いてない。 原則としてそういう場合は使っちゃいけないと考えるのが正しい まぁこういうのでバージョンアップ時等にエラーになってもMSのせいで通っちゃうけどね 定数を再定義したのは自分の管理下におくというのが趣旨なのでいくつもという事態にはならんよ で、金曜+1=土曜が仕様として保証されたと でもそんなのどっちでもいいよ
513 名前:デフォルトの名無しさん mailto:sage [2013/04/20(土) 16:38:29.39 ] >>510 だめ。 楽しようとしてないし、バグの元。
514 名前:デフォルトの名無しさん mailto:sage [2013/04/20(土) 16:41:51.36 ] >>512 なんか頭悪い意見だね。 それが曜日の値である限り、その値を使ってライブラリ(VBの場合は言語と一体だけれども) の関数を呼び出す可能性を想定しない方がおかしい。
515 名前:デフォルトの名無しさん mailto:sage [2013/04/20(土) 16:46:14.05 ] >>512 バージョンアップで使えなくなるというのなら、推奨しないと思うけど。 定義はそのままで値が変更される程度なら問題ないだろうし、定義自体なくなるのであれば できるだけ使わないようにという旨の文言がmsdnに書かれると思う。 >定数を再定義したのは自分の管理下におくというのが趣旨なのでいくつもという事態にはならんよ そんなの>>488 に全くコメントされてないし本人しかわからないこと。 いい加減独りよがりのコードはやめたほうがいいよ、パイパンw
516 名前:デフォルトの名無しさん mailto:sage [2013/04/20(土) 16:53:51.52 ] 仕様の問題をコードの再利用と勘違いしているな>>509
517 名前:デフォルトの名無しさん mailto:sage [2013/04/20(土) 16:54:59.00 ] >>515 >定義はそのままで値が変更される程度なら 問題あるから再定義の必要があると言ってる タオパイのコードは金曜+1=土曜という定数間の関係を前提にしているがMSDNにそんな事書いてない
518 名前:桃白白 mailto:sage [2013/04/20(土) 16:59:34.76 ] >>509 わけがわからなくなることはないだろ。桃白白の関数を使用するときは 桃白白の定数を使ってください。VBの関数を使用するときはVBの定数を 使ってください。以上。 >>515 独善という意味ではどっこいどっこいでしょ。 VBの日付関数と整合性がとれなければいけないということが 質問の前提として書かれているわけじゃないし、その辺を想像で補って VBの定数を使用するべきだって言ってんだから、そっちの考えが勇み足である 可能性もじゅうぶんにあるよ。
519 名前:デフォルトの名無しさん [2013/04/20(土) 17:02:16.23 ] vbSunday〜vbSaturdayを使うと dayIndex = dayIndex + 1 が Select Case dayIndex Case VbDayOfWeek.vbSunday dayIndex = VbDayOfWeek.vbMonday Case VbDayOfWeek.vbMonday dayIndex = VbDayOfWeek.vbTuesday (以下略) しないとだめなのかよ。こりゃめんどくさい。
520 名前:デフォルトの名無しさん mailto:sage [2013/04/20(土) 17:08:59.27 ] >>513 どういうバグの元?
521 名前:デフォルトの名無しさん mailto:sage [2013/04/20(土) 17:18:07.58 ] >>514 自分の気に入らないコードがあるからってむきになるなよ。 お前の意見はもうわかったから。
522 名前:デフォルトの名無しさん mailto:sage [2013/04/20(土) 17:20:53.73 ] パイパンが必死になってきましたw
523 名前:517 mailto:sage [2013/04/20(土) 17:27:44.79 ] >>519 そういう事 面倒だけど必要な手間 今回タオパイがその関数使ってたら標準定数使えや派だった
524 名前:デフォルトの名無しさん mailto:sage [2013/04/20(土) 17:35:42.93 ] 定数使うと、succ(土曜日)のときにラウンドさせる必要があるのか、succ(日曜日)のときにラウンドさせるのか、結局その定数の値を調べないとわからない。
525 名前:デフォルトの名無しさん mailto:sage [2013/04/20(土) 17:42:13.78 ] Trueが-1でFalseが0だからTrue+1はFalseだよねとか言われてる違和感。 定義済み定数を使うなら、原則としては+1とかしちゃいけないよね。
526 名前:デフォルトの名無しさん mailto:sage [2013/04/20(土) 17:48:24.24 ] (ライブラリによって)定義済みかどうかは関係がない。 列挙値の値に依存するようなコードを平気で書くようではプログラマ失格。
527 名前:デフォルトの名無しさん mailto:sage [2013/04/20(土) 18:16:58.81 ] 教条主義的だなー
528 名前:デフォルトの名無しさん [2013/04/20(土) 18:53:20.23 ] 自前の定数でも定数間の関係が崩れたら動かなくなるのって よくないんだろうなっていうとさすがに教条主義か
529 名前:デフォルトの名無しさん mailto:sage [2013/04/20(土) 19:09:31.15 ] 自分で定義するなら崩れないように定義しとけば良いだけで 自分で関係のある定数を定義したのにそれ崩すってことは、自分で動かなくしてることと同意なんだが
530 名前:デフォルトの名無しさん mailto:sage [2013/04/20(土) 20:58:00.74 ] >>529 それが典型的なダメグラマーの発想。 その発想の問題点は、そういう約束事をプログラマは忘れないはずだという前提に立っていること。
531 名前:デフォルトの名無しさん mailto:sage [2013/04/20(土) 21:57:35.07 ] VB6の入門者向けのおすすめ書籍を教えて下さい
532 名前:デフォルトの名無しさん mailto:sage [2013/04/21(日) 16:59:24.91 ] 7にVB6のLearning Edition入れたのだがMCIコントロールやWinsockコントロールが何故か使えた 95やXPに入れてたときはWinsockコントロールとか使えなかったのに・・・なじぇ? WMPが糞だから自前でプレーヤー作ろうと思ってひとまずMCIコントロールを使おうと配置したんだが いまいち使い方が分からなくて調べたら、MCIコントロールはProfessional Edition以上じゃないと使えないとか書いてあって 試しに使えなかったはずのWinsockコントロールも配置してみたら普通に使えた 7に入れてからなんか挙動が変だったが、やっぱマズかったのかな、7に直接VB6を入れたのは・・・ コンポーネント追加で1回目は必ずシステムエラー出るし Common Controlsなんか何故かアイコンが2つずつになったし
533 名前:デフォルトの名無しさん mailto:sage [2013/04/21(日) 17:50:36.57 ] チラシの裏にでも書いてろ
534 名前:デフォルトの名無しさん mailto:sage [2013/04/21(日) 18:38:11.62 ] >>485 はワーク変数すら指定してくるくらいだから 勝手にループ用の変数とか自前定数を使ったらまずいんじゃないの? つまり先生は TBL(1, 6) = 1 TBL(1, 7) = 2 TBL(2, 1) = 3 ... みたいな直書きしろっていう課題だったんじゃ
535 名前:デフォルトの名無しさん mailto:sage [2013/04/21(日) 19:14:15.38 ] よく思うんだけど先生もココ見るんじゃ
536 名前:デフォルトの名無しさん mailto:sage [2013/04/21(日) 20:20:33.55 ] >>534 じゃあ問2は変数一つでソートするプログラム作れって問題なのか 解ける気しねえな つかそれだけワーク変数指定してるし、それが何のワークなのかは明示してないし はしょってるだけでカリキュラムの流れがあるんじゃないかと思うんだが
537 名前:デフォルトの名無しさん mailto:sage [2013/04/21(日) 20:39:28.20 ] >>485 できたよ〜 'Answer 1 Dim TBL(6, 7), i For i = 1 To 31 TBL((i + 4) \ 7 + 1, (i + 4) Mod 7 + 1) = i Next 'Answer 2 Dim TBL2(4), WO1, i TBL2(0) = 8: TBL2(1) = 90: TBL2(2) = 20: TBL2(3) = 12: TBL2(4) = 2 For i = 0 To 24 If TBL2(i \ 5) < TBL2(i Mod 5) Then WO1 = TBL2(i \ 5): TBL2(i \ 5) = TBL2(i Mod 5): TBL2(i Mod 5) = WO1 Next 'Answer 3 Dim TBL(10, 10), i For i = 0 To 80 TBL(i \ 9 + 1, i Mod 9 + 1) = (i \ 9 + 1) * (i Mod 9 + 1) TBL(i \ 9 + 1, 10) = TBL(i \ 9 + 1, 10) + TBL(i \ 9 + 1, i Mod 9 + 1) TBL(10, i \ 9 + 1) = TBL(i \ 9 + 1, 10) Next
538 名前:デフォルトの名無しさん mailto:sage [2013/04/21(日) 21:08:14.97 ] 使用メモリが最小になるコード と 処理速度が最速になるコード の 2種類はよ
539 名前:デフォルトの名無しさん mailto:sage [2013/04/21(日) 22:11:27.86 ] 255未満の正数だから型を全部Byteにすれば小さくなるんじゃね
540 名前:デフォルトの名無しさん mailto:sage [2013/04/21(日) 22:29:49.11 ] >>537 0オリジンと1オリジンが混ざってて気持ち悪い。
541 名前:デフォルトの名無しさん mailto:sage [2013/04/21(日) 23:17:56.35 ] オリジン?
542 名前:デフォルトの名無しさん mailto:sage [2013/04/21(日) 23:27:40.74 ] 弁当
543 名前:デフォルトの名無しさん mailto:sage [2013/04/21(日) 23:30:57.13 ] オリジン - Wikipedia ja.wikipedia.org/wiki/%E3%82%AA%E3%83%AA%E3%82%B8%E3%83%B3
544 名前:デフォルトの名無しさん mailto:sage [2013/04/22(月) 02:08:11.58 ] >>532 普通に7に入れて開発してるし問題は無いよ 最初がエラーになるのはUACのせい そこでレジストリやらシステムファイルがシャドウコピーされて2回めからはエラーにならないというオチ 7は全てがユーザー単位で分けられてる真のマルチユーザー環境だからそういう動作になる まあ、故に古いCOMなんかが意図しない動作になるんだけども あと動作が不安定で心配ってんなら互換モード使っとき これは95からVISTAまでのそれぞれのAPIと7の対応表を内部で持ってて 自動的に変換してくれるって機能だからそれなりに動くようになるよ 当然オーバーヘッドは有るけど、今時のスペックなら気になる事は無い
545 名前:デフォルトの名無しさん mailto:sage [2013/04/22(月) 14:07:12.82 ] ライセンス制約突破したってレスじゃないの?
546 名前:デフォルトの名無しさん mailto:sage [2013/04/22(月) 19:13:26.84 ] ライセンスと言えば、トランジスタ技術の記事によくMSCommをEXCELのVBAのIDEから 使う方法が載ってたりしたが、あれどう考えてもアウトだよなあ。
547 名前:デフォルトの名無しさん mailto:sage [2013/04/22(月) 22:09:16.29 ] >>546 個人的に使うならアウトのはずないだろ アホかよ?
548 名前:デフォルトの名無しさん mailto:sage [2013/04/22(月) 22:11:40.67 ] 0オリジンはインド人が発明したアルヨ