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/ ※「まず自分で調べる」クセを身につけよう。
754 名前:753 mailto:sage [2011/12/09(金) 05:10:49.37 ] 勘違いしてたり間違ってたりしてたらごめんなさいね
755 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 07:12:29.84 ] >>751 UI部品のインスタンスを動的に作成する場合にはいくつか制限がある。 フォーム上にボタンを張り付けて、Indexに0と指定しておく。 でもってコントロール配列に対して「Load Button1(1)」とすれば、 インスタンスを生成できる。
756 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 07:27:23.06 ] >>742 答えは>>743 。VB6が勝手にUNICODEにしてしまうところでそうなった。 境界またぎはさせてないよ。
757 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 08:17:21.17 ] 配列にしなくても動的作成できるなんて始めてしった 7ujm.net/VB/VB6Controls.html
758 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 09:26:32.58 ] 配列でロードする方法ならIndex 0のプロパティがほとんどコピーされるから 実行時に型を変える(TextBoxに入力したコントロール名のを作成)とかで ない限り、配列ロードでいいんじゃないの。
759 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 09:28:04.83 ] えー ださいよー
760 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 15:15:33.32 ] New使ってるからLoadでのコピーは用途違うんじゃねの?知らんけど
761 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 16:24:09.53 ] >>753 ああ、なるほど、ケツにつけるから併用出来るのか MsgBox(&HFFFF&)ででけた 自動でキャストされることになれてないから、キャストを明示的に指定しなきゃいけない様に設定できたら VB初心者のおいらでも安心してくめるかなと。そうした方が後継者もあんまり混乱しなくてすむし。 >>755-760 thx。要素数に応じて、コントロールを並べることを考えてたからコントロール配列で良さそうだわ。 コントロール配列使えばたぶん必要ないことだと思うけど、 VB6にはまだ匿名関数でクロージャをやったりとか出来ないよね?(確認) コールバックとか難しそうだな…AddressOfで取得したのを直接実行できないのかよ。
762 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 16:33:10.59 ] AddressOfは外部APIに渡すときしか使えなかったような
763 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 17:08:05.52 ] 何言ってるのかさっぱりわからん
764 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 18:31:41.95 ] >>763 いやさ、おまえらみたいになれてる奴には気にならんかもしれんけど d.hatena.ne.jp/snaka72/20100126/1264514893 ここに書いてあるようにCallByNameっていうevalっぽいものじゃなくて Sub hoge(callback as Method) callback() End Sub hoge(AddressOf(foonction)) みたいに出来るもんだと思っててさ。まあ、セキュリティ的に直接関数ポインタを実行出来ない方が正しいと思うけど。 しかし、このIDE使いにくいな… &HFFFF& <-コレはいい、 &HFFFFF& <-勝手に&外される &H0FFFF <-勝手に0を消される
765 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 20:09:16.34 ] 勝手に&が消されるのは指定しなくてもLong型で認識されるからじゃねの
766 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 20:16:14.63 ] CallByNameで諦メロン
767 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 20:33:37.14 ] (インスタンスとか意識して作ったことないから俺には話の内容が高度すぎて)何言ってるかさっぱりわからん
768 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 20:36:46.71 ] ちげーよw
769 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:10:33.06 ] VBはじめたいのですがもうVB6.0は手に入らないのでしょうか? VB6用の本を買ったのですがVB2010というのでもいけますかね?
770 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:12:46.13 ] VB6とVB2010では全然違うから VB6のやり方ではVB2010では何もできない VB2010のやり方ではVB6では何もできない
771 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:12:58.41 ] >>769 6.0と2010は全く違うものです それに6.0は今から覚えるには古すぎるのでお勧めしない
772 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:14:34.67 ] 数年前はMSDNのイロイロ入りの奴で手に入れるのが通説だったんだが 今はどうなのかねえ。
773 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:15:44.89 ] >>770 >>771 そうなんですか・・・2010用の学習書を買い直しますありがとうございました
774 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:21:16.77 ] >>769 VB2010はVB6とは全く別物。.netベースになってる。 VC++2010みたいにWin32も開発できるなんてことは”ない”。完全に.net専用。 つか、新しく始めるならなぜにVB6とか苦行するしw .netでもかまわないならC#とかおすすめよ。C#の方が新機能とかの追加が早いし。 研究とかで.netが使えないなら、C/C++あたりが無難。誰でも使えるしな。 RADツールがほしいならDelphi3〜7という手も悪くない。マイナーだが、プログラム経験があれば1週間もあれば誰でもかけるようになるだろう。 過去の遺産の引き継ぎとか、明確にVB6でなければならない限り、VB6を使う理由もないし、使うべきじゃない。 入手先の前にまず再考を。 別にその本をどぶに捨てたところで全然惜しくないしな。
775 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:31:06.68 ] >>774 Cはある程度できるんでC++にしようかなと思います。 ただ簡単なソフトを作ったりするのにはVBが一番簡単かな?と思ったんです
776 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:32:18.67 ] ディスコンになって10年経過してる商品について>>769 はさすがにネタ投入(ただし全然面白くないが) としか思えんけど。 逆にネタじゃないなら相当頭がどうかしてる。 こんなところに書き込んでるわけだから、最低限webにアクセスできる環境にはあるんじゃないの?
777 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:36:23.30 ] たとえそうだとしてもそのレスをする必要はないような
778 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:38:39.02 ] いつもイライラしてるIT土方が来たようだな^^
779 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:39:04.41 ] いつまでもVB6なんて使ってる化石をからかっただけですけどね
780 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:41:04.82 ] やべえ、真性のアスペかよこいつw どこに「いつまでもVB6なんて使ってる」なんて書いてあるんだw
781 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:41:39.00 ] おい、つまらんレスはするなバカども
782 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:42:54.61 ] >>781 じゃああなたが面白いレスの手本見せて下さいよ〜
783 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 05:39:23.55 ] 簡単なもの作るだけならExcelでも使っとけ つかVBマクロて人気なんだな OpenOfficeに最も望まれてる追加機能がVBA対応とか これじゃVB無くならんわ
784 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 16:03:38.31 ] >>783 Excelっていう土台と、初心者と本格的プログラミングの中間にある 開発環境が他にないからね。 Accessまでいっちゃうと、本格的プログラミング寄りで、何より、データベース って土台は初心者にキツイ。 ということなのだろう。 ただ、そろそろVBAは、言語体系を.NETに近づけたほうがいいとは思う。
785 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 16:14:13.29 ] Excelとかのマクロ言語はVBAやめてJavascript系にしちゃえばいいのに
786 名前:デフォルトの名無しさん [2011/12/11(日) 16:34:15.51 ] 学校のVisual Basic 6.0で線形探索とファイル処理を使ったプログラムを作る課題がでました。 Excelでデータを作って対応させるのように指示を受けました。 私は商品名を入力し、実行するとその商品の画像を表示するようにしたいのですが、 この場合、Excelのデータ作成はどのように行えばいいですか?
787 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 16:44:32.25 ] 商品名と画像ファイル名だけじゃないの?
788 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 17:39:35.98 ] 学校ってまだVB6使ってるの?
789 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 17:41:41.90 ] >>784 近づけるというか、いっそうVBAとCOMを取り除いて、.netベースにしてしまって VBAの代わりにVB.NET(移植向け)、C#(新参/初心者向け)を使えるようにすればいいんじゃね? ExcelやAccessでlinqが使えれば、業務系の人にもうけが良いだろうし。(むしろにて異なるものでキモがられるかね?) >>785 .netって基盤を作ってきたMSだから、今更Javascriptはないと思う。 OOoはVBAとか誰得なものをつけるより、Javascriptでマクロを組めた方が遙かに現実敵だとは思うが。 Google Docsの方はJavascriptだけども、サーバサイドで動くので使いにくいね。
790 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 17:43:13.57 ] >>786 研究室の過去のプログラムの更新にやむなくってのは分かるが 学校で今更VB6を教えてるって、その学校かなりヤバくね? 中学校の部活か何かでVBAでプログラミング体験とかなら分からんでもないが。課題もそのレベルだし。
791 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 17:48:42.38 ] 情報系じゃないが、若いセンセが嘆いてた 教える老人のノート、数十年前のものいまだに使ってるって
792 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 02:34:55.91 ] ワイは日本人やが聞いた情報によると、もうじき中国はバブルがはじけて昔の貧乏な元の中国に戻るらしいで みんなも知っての通りもう経済は破綻してて、取り戻すのは無理なんだそうや その世界ではごっつい有名な政府関係者筋から聞いた確かな情報やで まあお前らほどの頭の良い連中には、今さらなくらいのネタやな、失礼なくらいかもしれん お前らからすればもう常識的なくらいの知識やろ?
793 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 10:26:11.26 ] Windows7で「Microsoft Shell Controls And Automation」を参照設定してexeファイルを作り、XPのパソコンで実行すると、 実行時エラー430(クラスはオートメーションまたは予測したインターフェースをサポートしていません。)が発生しました。 shell32.dllのバージョンが原因なのでしょうか? Dim oShell As New Shell Dim oFolder As Folder2 Set oFolder = oShell.BrowseForFolder(0, "選択してください。", 1) If oFolder Is Nothing Then Exit Sub ElseIf oFolder.Title = "デスクトップ" Then MsgBox "デスクトップは選択できません。", vbOKOnly + vbCritical Set oFolder = Nothing End If If Not (oFolder Is Nothing) Then txtFolder.Text = oFolder.Items.Item.path pFileDir(lstFile.ListIndex + 1) = txtFolder.Text End If Set oFolder = Nothing
794 名前:デフォルトの名無しさん [2011/12/12(月) 15:51:10.15 ] VB初心者なのですが、 xlsmファイルって読み取ることができますか? 読み取れるようであれば例文教えていただけると ありがたいですm(_ _)m
795 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 15:52:47.84 ] Excelが入ってれば読めるよ
796 名前:デフォルトの名無しさん [2011/12/12(月) 15:58:29.53 ] >>795 Excelも入れていて読み込めるはずなのですが xlsmfile = New FileIO.TextFieldParser("ファイル名.xlsm", System.Text.Encoding.GetEncoding("Shift_JIS")) xlsmfile.TextFieldType = FileIO.FieldType.Delimited xlsmfile.SetDelimiters(",") この文では読みこめないのでしょうか?
797 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 16:09:00.17 ] >>796 createobjectして読み込むんだよ
798 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 16:23:43.16 ] >>796 ひょっとして.net+VSTO?VSTOは実は単なるCOMラッパーだったりするから微妙だけど。 そもそも、Microsoft.VisualBasic.FileIO.TextFieldParserって、zipしてある奴も読めるのか? MSDNをさっと目を通すと、CSV/TSVとかのテキストファイル前提っぽいが。 >.GetEncoding("Shift_JIS")) あれ?普通、xlsx/xlsmの中身のエンコードってUTF-8とかUnicode系じゃねーの? あと念のために聞くけど、PC初心者?まるで分かってないオーラが漂いまくってるけど。 ついでに、VSTOはそんな便利じゃないよ。イテレートもろくに使えないし。
799 名前:デフォルトの名無しさん [2011/12/12(月) 16:27:08.33 ] >>797 試してみたんですができませんでした。 createobject の使い方教えてくれませんか?
800 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 16:41:55.33 ] そういえばExcel2007以降とか見たこと無かった。
801 名前:デフォルトの名無しさん [2011/12/12(月) 17:01:08.62 ] >>798 テキストファイルを読むことを前提にしているので大丈夫です。 >あれ?普通、xlsx/xlsmの中身のエンコードってUTF-8とか Unicode系じゃねーの? 調べてみます。 PC初心者です。 これから勉強していきたいのでよろしくお願いします。
802 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 17:01:50.87 ] >>794 読めます。 中身はZIP形式で圧縮されたテキストファイルです。 試しに拡張子をzipに変更した後、開いて、中のファイルをメモ帳ででも開けばよい。
803 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 17:02:57.81 ] >>799 どう試してみたの?
804 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 17:06:09.39 ] >>799 ググった? あと、ここはVB6スレなんだが間違いはないか?
805 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 02:14:57.18 ] >>796 のコードはVB6のコードには見えないな。文法が違う
806 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 08:17:11.38 ] 細かいこと気にスンナよ
807 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 12:45:11.56 ] >>801 ここID出ないから、名前欄に1個前のレス番を毎回入れるか 最初にレスしたレス番を入れるとかしてくれないと誰か分かりづらい。 絞り込みして見る事もできね。 Googleで VB6 XML 読み込み をキーワードに検索して結果の1件目。 t-yoshi-tomi.at.webry.info/200905/article_2.html >Dim XmlDoc As DOMDocument 'xmlデータ用変数 >Set XmlDoc = CreateObject("Microsoft.XMLDom")
808 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 22:12:37.25 ] >>806 言語が全く違うんだから気にスンナレベルじゃねーだろw >>807 VB6ならExcel COMから読み出せば良いんじゃね? VB.NETなら、どこかのZIPライブラリ使って中のxmlをlinqで列挙するのがお手軽かと思うけど
809 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 02:49:46.98 ] すげー初歩的、ランゲージリファレンス嫁ってレベルだと思うんだが イベントについてさっぱりなので教えてくれ。 eventキーワードでのイベントの定義については分かった RaiseEventでのイベントの発生も分かる だけど、実際にメソッドを結びつける方法が分からん まるでわかめ。 privatepaste.com/3e1d507e11
810 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 03:29:20.92 ] イヴェントの使い方 'Class1.cls Public Event EventDaYo() Public Sub Hoge() RaiseEvent EventDaYo End Sub 'Form1.frm Private WithEvents c1 As Class1 Private Sub Form_Load() Set c1 = New Class1 End Sub Private Sub Command1_Click() Call c1.Hoge End Sub Private Sub c1_EventDaYo() MsgBox "EventDaYo" End Sub
811 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 03:46:13.88 ] >>810 キモの部分は Private WithEvents c1 As Class1 Private Sub c1_EventDaYo() これ? でもコレって、ClassAの中にあるCoClassBのイベントにはどう対処するんだ? ClassA: Public Property Get CoClassB(index as integer) as CoClassB CoClassB: Public Event CoClassScream() ってあった場合… ClassAが内包しているクラスのイベントをリレーしないとだめ? というか単純に配列の中にオブジェクト入れてた場合はどうなるの?
812 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 04:51:35.30 ] WithEvents 発生したイベントをキャッチするための入れ子を宣言する (配列にできない、Newで宣言できない、Moduleでは宣言できない) WithEventsを宣言したForm(またはClass)内でしかそのイベントをキャッチできない
813 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 04:55:05.51 ] >>810 Class1で宣言したイヴェントはClass1内からのみ発生させられる Class1のインスタンスから発生したイヴェントをキャッチするには WithEventsでClass1のイヴェントをキャッチする入れ子を宣言し それにあらかじめインスタンスをつっこめばそのインスタンスから発生したイヴェントをキャッチできるようになる が入れ子に設定されたインスタンスからのイヴェントしかキャッチできない
814 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 04:57:03.36 ] >>812 (配列にできない、Newで宣言できない、Moduleでは宣言できない) ↓訂正 (配列にできない、Newで宣言できない、標準Moduleでは宣言できない)
815 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 05:05:48.74 ] 内包リレーってこんな感じか? 'Class1.cls Public Event EventDaYo() Private WithEvents c2 As Class2 Public Sub c2_EventKaYo() RaiseEvent EventDaYo End Sub Private Sub SetC2(c As Class2) Set c2 = c End Sub 'Class2.cls Public Event EventKaYo() Public Sub HogeHoge() RaiseEvent EventKaYo End Sub 'Form1.frm Private WithEvents c1 As Class1 Dim c2 As Class2 Private Sub Form_Load() Set c1 = New Class1 Set c2 = New Class2 c1.SetC2 c2 End Sub Private Sub Command1_Click() Call c2.HogeHoge End Sub Private Sub c1_EventDaYo() MsgBox "EventDaYo" End Sub
816 名前:デフォルトの名無しさん [2011/12/14(水) 05:09:59.08 ] VB6 イベントを作る - RaiseEvent, WithEventsなど homepage1.nifty.com/rucio/main/shokyu/jugyou29.htm
817 名前:デフォルトの名無しさん [2011/12/14(水) 05:20:06.22 ] 質問者は質問をわかりやすく明確に 回答者は回答をわかりやすく明確に カオスな流れになってるぞ
818 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 05:25:49.38 ] イヴェントをキャッチしたいForm(またはClass)内でWithEvents入れ子を作れ Class1内のClass2インスタンスのイヴェントを そのClass1のインスタンス内でキャッチしたけりゃClass1内にWithEventsを書いてそのClass2のインスタンスへの参照入れろ Class1以外、たとえばForm1でClass1内のClass2のイヴェントをキャッチしたけりゃ Form1内にClass2のWithEvents書いてClass1内のClass2のインスタンスの参照を渡すか Class1内でClass2のイヴェントをキャッチしてClass1でイヴェントをキャッチしたってイヴェント発生させろ
819 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 05:36:14.32 ] 質問者と回答者の会話が噛み合ってないな
820 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 08:25:05.62 ] イベントは別のクラスに書くんだよ
821 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 11:32:10.37 ] ヴェとか書くからなんかごちゃごちゃした文章に見える
822 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 11:36:56.97 ] これが参考になる oshiete.goo.ne.jp/qa/504573.html
823 名前:デフォルトの名無しさん [2011/12/14(水) 16:28:56.24 ] VBのアプリで、USBメモリにテキストファイルを書きだした後 タスクバーから取り出しを実行すると定番の 「デバイス'汎用ボリューム'を今停止できません。」 の表記が出て、アプリを終了するまで停止できません。 一応調べましてFileSystemObjectを使い、ファイル保存の際に使用していた dirからFolderExistsに変更ましたが、"アプリ起動後"にUSBメモリを挿すと 想定通りUSBメモリの取り外しが行えるものの"アプリ起動前"から USBメモリが刺さっていると上記のエラーが出て取り出しができないのです。 更に調べて、上記に加えて最後にchdir("C)でローカルドライブに変更してやると アプリ起動前にUSBメモリを挿していても、問題なく取り外しが行えるように なったもののどうもしっくりきません。 どなたかこの状況から原因をエスパーできる方はおりませんか?
824 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 16:46:33.22 ] ローカルに書き出してからUSBにコピーするのがいいよ
825 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 13:30:43.68 ] □投稿者/ サテア 一般人(1回)-(2011/12/15(Thu) 10:25:45) 環境/言語:[windows7/visual basic6.0/?] 分類:[VB6以前] 4つのテキストボックスに入力した数字をソートしてラベルに小さい順に表示するプログラムを作成するノルマを与えられています。 しかしvisual basic6.0だとあまりい良い文献がなく、ほとんど参考になりません。 ちなみに自分はオブジェクトを配置するくらいの技能までは持っています。そこから先がすすめません。 何だよそのノルマと技能はwww
826 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 13:34:58.64 ] リストボックスに入れてソートさせるのがVBっぽい
827 名前:デフォルトの名無しさん [2011/12/18(日) 12:22:19.04 ] >>823 大きな問題として Dir関数って、フォルダを参照した後で内部的に終了処理がなされてないよね Loopでファイルの列挙ができるようになってる都合上、参照し続けてしまう 前の方のレスにも書いたけど Dir ""とすれば開放できるとするサイトがあるけど、それでもカレントフォルダを参照してしまう で、話は戻るけど やっぱりDir関数を修正した以外の場所で使ってるんじゃないの? またはchdirかも知れないけど、 最後にchdirでUSBメモリ以外を参照すれば抜けるっていうのは、その証拠でしょ
828 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 16:25:51.45 ] >>825 初心者に対する非常に良い問題なのだが、VB6っていう環境が 初心者の学習に向いてない。 投稿者は明らかに初心者なのだが、こういう掲示板で どういう言葉遣いで質問するかわからないから変な用語使うハメに。
829 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 19:37:06.04 ] 単純にソートアルゴリズムの勉強させられてんじゃないの 自分も新人の時に最初の課題として出されたよ 実際自前でソートする事なんかほぼ無いが あの時色々と調べて得た知識は今も生きている
830 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 19:47:27.78 ] そっとしといてやれよ
831 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 22:16:07.93 ] 実はわざわざVB6でやらせて苦行を強いる上司のパワハラ
832 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 09:47:21.79 ] >>827-832 ここはVB6のスレなんだ。 VB6は古いとか.NETやれとか言ってるやつはスレち。 答える気がないなら来るな。 って書こうと思ったら、ここへの質問じゃないのか。 まあいいや。 VB6のスレなんだからVB6かわいがってやってくれ。
833 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 18:38:55.79 ] VBでメモ帳を作成しろと言われた 誰かサンプルソースZIPでくれエロい人
834 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 18:47:11.67 ] >>833 誰に言われたんだ
835 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 19:16:57.89 ] >>832 >>825 はな…どっかの掲示板の転載やで… 答えは求めてないだろ。 (かといってヲチする板でもないがな)
836 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 19:25:46.75 ] >>834 講師
837 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 19:36:01.93 ] VB6でやれって言われたのか?
838 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 19:50:28.15 ] >>837 VB2010Expressです
839 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 21:15:39.13 ] >>838 ここはVB6.0のスレ。 VB2010はゴミ箱に捨てて、VB6.0で開発したほうが良い。 それが出来ないなら余所のスレに行け。
840 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 22:44:57.96 ] うぜえなこいつ
841 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 22:52:06.76 ] >>839 スレ違だボケって意見には賛成できるけど >VB2010はゴミ箱に捨てて、VB6.0で開発したほうが良い。 コレは同意できないw
842 名前:デフォルトの名無しさん [2011/12/21(水) 05:57:54.47 ] じゃ、VB6で Shell "notepad", VbNormal
843 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 06:03:46.00 ] よくサブルーチン(戻り値のないメソッド)をCallで呼び出しているけど アレは直接呼び出すのと違うの?メリットって何?
844 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 06:38:04.44 ] >>843 リファレンスぐらい読めよ。 msdn.microsoft.com/ja-jp/library/sxz296wz (v=vs.80).aspx 「コードの読みやすさが向上します」って書いてあるだろ。 メリットはそれだけだ。デメリットはタイピング量が6文字増えることかな。
845 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 06:49:12.71 ] >>844 VB6のリファレンスってまだ残ってたのか! と思ったらコレVB.netのじゃん… >プロシージャを呼び出すときに Call ステートメントを使用する必要はありません。ただし、そうするとコードの読みやすさが向上します。 >argumentList を指定する場合は、かっこで囲む必要があります。 つまり、引数を括弧で囲めるようになるのか…確かにこれは有用だな。 むしろ、括弧を省略しなければいけない仕様の方をdo…おやこんな時間に誰だろう?
846 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 20:08:03.41 ] 俺はずっと以前からCall使ってる。 理由は、コードが見やすくなるからだ。
847 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 21:24:27.15 ] >>846 まぁ、本当はCall命令はFunctionステートメントやSubステートメントが 無かったころの残骸なんだけどな。 VB1.0の頃には、見た目以外にはほとんど意味の無い命令になった。
848 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 21:42:06.92 ] だいたい、VBってタイピング量にかけては最悪だろ。 If で開始して、End If で終わる。 Do while〜 Loop で終わる。 CとかJavaとかC#は if で開始して } で終わる。 コードの見やすさからすれば断然C#。 VB6やっててよかったと思う事は、俺にはただ一つ。 VB6 で作ったクラスとかをほぼそのままVBAにも適用して動作可能にできる点だ。 (DB関係はそれでExcelにも使えてる)
849 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 22:03:11.42 ] タイプ量=みやすさ とでも思ってるのか ほんとに綺麗なソースもホントにひどいソースもみたことないんだな、きっと
850 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 00:30:12.89 ] 見やすい見にくいとかどうでもいいよ。動けば
851 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 00:54:11.41 ] >>847 BASICの頃のはラベルへGOTOとかGOSUBじゃなかったっけ? CALLとか使った覚えなさす。 もっともあの頃のBASICはテキストデータを格納して マシン語を走らせるためのブートローダー的なものだが。 >>850 お願いだからいろんなモジュールのグローバル変数をごっちゃにして 未定義でなおかつ代入してない変数を読み出して、たまたまうまく動いているプログラムを量産しないでください。 イコールの位置とかそろえなくて良いけど、インデントくらいはまともにやってください。 If a = 0 Then ' インデントレベル 0 If b = 0 Then c = 0 ' レベル 0 d = 0 ' レベル1 End If ' レベル0 …これ難読化ツールでも使ったんですか?…
852 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 01:03:15.42 ] 絶対自分しか見ないってんなら良いけど 他人が見るの前提ならCallは付いてた方が良いよな つか付けてくれ あと.Textとか.Valueとかも付けといてくれ Option Explicitも忘れないでー 変数なんだかオブジェクトなんだかSubなんだかFunctionなんだか そもそも作った人がtypoミスしたまま気が付いてないとか 解らないから!解らないから!
853 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 07:28:40.89 ] >>851 インデントもロクにしないっていうのは 単に初心者かCOBOL文化の名残り?
854 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 08:21:19.98 ] >>853 おそらく仕事/上司が気に入らない事への腹いせでやって、逃げていったんだと思う。 一般的に禁忌と言われてることを一通りやってるし、ドキュメントも残ってないし。 ちなみに禁忌って言ってるのはだいたいこのこと。 ・インデントをろくにつけない。つけないと言うより、したりしなかったり。全くしないよりたちが悪い。 ・リテラル値を多用してハードコーディング ・もちろんファイルハンドル#1なども、一時的、永続的含めて直接指定 ・他のモジュールで宣言してあるグローバル変数の多用 ・変数の宣言をしてないことは日常 ・文字列を数値化したり、文字列化したりしながら使用 ・↑と併用して、状態として保持しておくべき値をコントロール(主にラベルなど)のキャプションで保持 ・他のモジュールへコントロールを渡してそこでUIを操作 ・ロジックとUIの分離? いえいえ当然、積極的に混合してます^q^ ・バージョン管理? キチンとしてるよ! ほらここから数行下までのコメン(ry ・適切なコード内ドキュメント 'ファイルをクローズ Close #1 少なくても初心者なら、ここまでひどい事するか? これは分かってる奴が意図的にやってるようにしか見えないぞ。