1 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 23:03:01 ] ここは 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/ ※「まず自分で調べる」クセを身につけよう。
2 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 23:03:29 ] 前スレ VBプログラマ質問スレ(6.0以前) Part53 pc11.2ch.net/test/read.cgi/tech/1187667616/ なかなか立ってないから立てた。反省はしていない
3 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 23:30:58 ] >>1 乙
4 名前:デフォルトの名無しさん mailto:age [2008/03/07(金) 10:35:20 ] 本スレage
5 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 15:20:23 ] VBでおすすめの本は?
6 名前:デフォルトの名無しさん [2008/03/08(土) 15:11:26 ] >>5 VB6なら「ピーターノートンの手解きVisual Basic6」 Vol1とVol2の2巻あるが、初心者でも無理なく理解できる丁寧な解説と、 上級者でも満足できる高度な内容を両立させている上に他のVB本には 記載されていない事も説明がある。サンプルCDも付いているし、この2冊で 充分VBマスターになれる。
7 名前:デフォルトの名無しさん [2008/03/08(土) 16:01:17 ] >>5 ピーターノートン www.amazon.co.jp/exec/obidos/ASIN/4877830111 item.rakuten.co.jp/book/1134919/ auction.item.rakuten.co.jp/10232889/a/10000085 page9.auctions.yahoo.co.jp/jp/auction/k49595624
8 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 16:50:20 ] >>5 ゲームとか作るんだったら 古い本だけど Visual Basicビジュアルプログラミング実践テクニック 結構お勧めできるかも 大昔にゲーム系の専門でPGの講師してたときに使ってた本 ビジネスアプリだったらぜんぜん意味無いが
9 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 23:00:28 ] すいませんが質問させてください FTP接続に関する質問です。 FTPでデータを転送したく、いろいろ調べた結果、転送まではできるようになりました しかし、以下のことができません。 Aのデータを送って、正常に送れたのを確認してからBのデータを送る 問題点 データ量が大きくなる(転送データが増える)と回線の状況による速度の影響で 一定時間で見るのは難しいです(効率も悪い) たぶんAのデータがすべて送りきれているか確認できればいいと思うのですが可能ですか? ほかにいい方法があれば教えてくれれば嬉しいです。よろしくお願いいたします。
10 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 23:41:21 ] >>9 つか、シーケンシャルに処理すれば良い希ガス
11 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 10:01:14 ] >>9 よくわからないけど Aのデータを送信 ↓ FTPで最新リストを取得して送信元データとサイズを比較 → 違うなら再送信 ↓ 同じなら成功したとする とかはできないの?
12 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 19:49:43 ] zipファイルの圧縮はどうすれば可能でしょうか? .netは見つかったのですが6.0では見つかりません。 ちなみに普通に解凍は見つかりました。 UNZIP32.DLL ですが、やはり使用しないと無理なのでしょうか? どうかその方法を教えてください。(txtをまとめて圧縮さえできればいいです) よろしくお願いいたします
13 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 20:58:00 ] >>12 UNZIP32.DLLは解凍で 圧縮はZIP32.DELLだったような。 VB6は標準でZIP圧縮、解凍というメソッド等は持たないので ZIP32.dllあたりからメソッド呼び出す必要があったはず。
14 名前:デフォルトの名無しさん [2008/03/13(木) 21:00:23 ] 質問です。 1: Public Sub test 2: dim x as integer 3: x=0 4: End Sub 変数xのメモリが実際に確保されるのは 2行目でしょうか? 3行目でしょうか?
15 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 21:39:38 ] 気にしなくていい
16 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 09:57:25 ] >>12 総合アーカイバ プロジェクト www.csdinc.co.jp/archiver/ ここの「開発室」を見てみ?
17 名前:12 mailto:sage [2008/03/15(土) 00:09:31 ] >>13 ,16 ありがとうございます がんばってみます
18 名前:無償入手可 mailto:sage [2008/03/15(土) 13:00:48 ] Visual Basic Version 5.0 Control Creation Edition SP2 日本語版 download.microsoft.com/download/vbcc/SP/05.00.4319/W9XNT4/JA/VB5CCEIN.EXE Visual Basic 5.0 Control Creation Edition: SP2 ヘルプ ファイル www.microsoft.com/downloads/details.aspx?FamilyID=b4394931-d7ab-4d38-a3f5-511fd3165b7f&DisplayLang=ja download.microsoft.com/download/vbcc/Help/4.71.0121.0/W9XNT4/JA/CCEHELP.EXE Visual Basic Version 5.0 Control Creation Edition: レジストリ修正モジュール www.microsoft.com/downloads/details.aspx?FamilyID=e91b767c-30d6-407d-b0f3-fd93faebb592&DisplayLang=ja download.microsoft.com/download/vbcc/Patch/1.00/W9XNT4/JA/REGFIX.EXE Visual Basic 5.0: RecentFiles ツール www.microsoft.com/downloads/details.aspx?familyid=C95613D6-D8D2-4A85-9139-3992B601D08A&displaylang=ja download.microsoft.com/download/vb50ent/Patch/1.00/W9XNT4/JA/recents.exe
19 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 14:09:52 ] コピペ君って馬鹿だな、まで読んだ。
20 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 16:04:28 ] 「馬鹿は、人を馬鹿呼ばわりする」まで読んだ。
21 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 16:36:05 ] かわいそうだから全部読んだ
22 名前:デフォルトの名無しさん [2008/03/16(日) 15:35:22 ] 文字コードで質問があるのですが VBの内部コードはUnicodeということですが buf = "1,2,3,4" Open strPath For Output As #FileNo Print #FileNo, buf Close #FileNo で書き込んだファイルがシフトJISになるのはなぜでしょうか?
23 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 15:49:49 ] 仕様です
24 名前:デフォルトの名無しさん [2008/03/16(日) 17:31:57 ] >>23 レス有難うございます。これはVB6の仕様ということでしょうか。 Windows Vistaでは文字コードの規定値がUnicodeになるようですが VB6で>>22 のようなコードで作成したファイルは やはりシフトJISになるのでしょうか?
25 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 17:33:30 ] そのコードではそうなる
26 名前:22 [2008/03/16(日) 18:00:30 ] >>25 ということはシフトJISになるのはPrintステートメントの仕様ということでしょうか。 たしかにStrConvでUnicodeに変換した文字列を書き込んでもシフトJISになりますね・・ Writeステートメントでも同様のようです。
27 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 18:33:22 ] >>26 バイナリで作って書き込めばUNICODEで保存できたはずだが?
28 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 22:00:40 ] シフトJISで出力される仕様だなんて聞いた事もないので 試しにAppLocaleで切り替えてみたらやはりシフトJIS以外で出力された UTF-8には切り替えられないので意味無いが
29 名前:22 [2008/03/16(日) 22:19:53 ] >>27 Open strPath For Binary Access Write As #FileNo Put #FileNo, , buf Close #FileNo でもUnicodeにならないのですがこれって端末の環境が関係してるんでしょうか? バイト配列でも同じでした。 >>28 要はVista端末で実行しようがシフトJISで出力したいということなのですが >>22 のコードは修正する必要があるでしょうか?
30 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 23:02:53 ] >>29 Dim strPath As String Dim buf As String Dim buf2() As Byte Dim fileno As Integer fileno = 1 buf = "1234" buf2 = StrConv(buf, vbUnicode) buf3 = buf strPath = "C:/test.txt" Open strPath For Output As #fileno Print #fileno, buf2; Close #fileno かなり適当に書いたが、こんなもんじゃないのか? FFFEは省いてるが
31 名前:デフォルトの名無しさん [2008/03/16(日) 23:38:59 ] 質問者も回答者もぐぐらないカスばかりだな
32 名前:14 [2008/03/16(日) 23:46:19 ] >>14 ↑誰かご存じの方いませんか?
33 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 23:48:18 ] どのタイミングで実際にメモリが確保されるかとか保証してるのかな? 遅延可能なら遅延しそう。 でも、動作が変わるような遅延はしないと思う。
34 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 23:57:22 ] マジレスすれば、1行目。
35 名前:14 mailto:sage [2008/03/17(月) 00:31:19 ] >>33 >>34 個人的には>>34 さんの意見と同じです。 参考書によるとVB6ではAs Newキーワードで宣言されたオブジェクト変数の 生成されるタイミングは宣言された行ではなく、 実際にそれが使用された時まで遅延されるらしいです。 >>14 の例でいうと2行目がIntegerではなく クラスの場合、3行目でメモリが確保され、Inisializeイベントが呼ばれるのですが、 これってオブジェクト変数の場合だけメモリの確保のタイミングが遅延されるのって 変ですよね。 そう考えたら>>33 さんの言うように遅延しているのかもしれません。 ちょっと話はそれますが、 Dim i As Integer If True Then Dim x As Integer x = 100 End If MsgBox CStr(x) これで「100」と表示されたのでいろんな意味上の方にまとめて 宣言した方が可読性あがるしよさげですね。 賛否両論あるかもしれませんが。
36 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 00:33:16 ] オブジェクト変数だけ遅延されるのは十分ありえることだと思うけど? ありえることとそうであることは違うけどね。
37 名前:デフォルトの名無しさん [2008/03/17(月) 02:26:07 ] 変数とインスタンスの区別ができないバカw
38 名前:22 [2008/03/17(月) 02:43:19 ] >>30 有難うございます そのようにコーディングしてもSakuraなどのエディタでは なぜかSJISと表示されますね・・・。 ここにもバイナリで開いてPutで書き込むといけたと書いてあるのですが なぜか当方の環境ではうまいこといきません・・・ h ttp://www.accessclub.jp/bbs/0060/beginers23243.html
39 名前:14 mailto:sage [2008/03/17(月) 03:10:30 ] >>36 ありえること、ですか。 確かにそう言われるとそうかもしれませんね。 VBのクラスの実装はなんか他のと比べて 特殊なところありますし。 わかりました。 ありがとうございます。 >>37 変数がインスタンス化するタイミングについて討論してるのに。
40 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 08:27:10 ] >>39 37じゃないけど、Nothingと比較ができる型の意味分かってないんじゃないの? いずれにせよ(インスタンス生成の遅延以外は)くだらない議論だよ。 シュレディンガーの猫は最終的に猫の生死を確認する方法があるから意味があるのであって、 それが事実上ないVBでのそんな議論に何の意味があるw
41 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 10:03:28 ] >>39 組み込み型では、インスタンス化とは言いません。
42 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 11:47:26 ] 22のコードは日本語環境だとShift_JISで出力され、 22はShift_JISで出力したいと言っている。 一体どこに問題がある?
43 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 12:21:35 ] 変数宣言してないとき(必須にしてる時)に、デバッグモードで先頭行に カーソルはあると思うが・・・
44 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 13:02:43 ] プロセスにアタッチして、ディスアセンブルすればわかるかもよ
45 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 20:52:01 ] >>38 たしかに俺もウソソースを書いた。 けどすべての答えが出てたんだから自力でなんとかしてほしかった! Dim strPath As String Dim buf As String Dim buf2() As Byte Dim buf3(0 To 1) As Byte Dim fileno As Integer fileno = 1 buf = "1234" buf2 = buf buf3(0) = &HFF buf3(1) = &HFE strPath = "C:/test.txt" Open strPath For Binary As #fileno Put #fileno, , buf3 Put #fileno, , buf2 Close #fileno
46 名前:デフォルトの名無しさん [2008/03/17(月) 23:20:39 ] 未だにOpenステートメントを使う石器人がいるとは…
47 名前:14 mailto:sage [2008/03/18(火) 01:15:40 ] >>40 Nothingと比較ができる型ってつまり 値型と参照型の話ですよね? 大丈夫と思います。 >>41 そうなんですか、知りませんでした。 ありがとうございます。 値型の変数を保存するために実際にメモリ上に領域が確保されることをなんと言うのでしょうか?
48 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 06:33:25 ] オブジェクト型の変数にオブジェクトのインスタンスが格納されると思っているなら間違いだよ
49 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 19:06:10 ] >>46 お前はVB6以前のスレで何を馬鹿なこと言ってるんだ
50 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 20:14:26 ] >>49 >>46 は、FileSystemObject ぐらい使えとでも言い鯛のでは?
51 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 20:58:40 ] FileSystemObjectでUNICODEを保存するソース ↓
52 名前:今日も雲弧 ◆bKaGbR8Ka. mailto:(´・ω・`)ショボーン [2008/03/18(火) 22:59:41 ] VBSで質問があります。よろしくお願いします。(ペコ IF文の部分でobjDic11とobjDic12のItemを書き換えました。 IF文の部分では書き換わっているのに、ループを抜けた後に 再度objDic11を参照すると書き換え前の状態なのです。 どこが悪いのでしょうか?何故こうなるのでしょうか? お教え下さい。 以下にコードを4分割して貼ります。
53 名前:今日も雲弧 ◆bKaGbR8Ka. mailto:(´・ω・`)ショボーン [2008/03/18(火) 23:01:02 ] Sub RankMark 'On Error Resume Next Const UpTo_Soutou = 2500 Const UpTo_Gensui = 2000 Const UpTo_Taisyou = 1750 Const UpTo_tyuujyou = 1500 Const UpTo_Syousyou = 1250 Const UpTo_Jyunsyou = 1000 Const UpTo_Taisa = 950 Const UpTo_tyuusa = 800 Const UpTo_Syousa = 650 Const UpTo_Taii = 500 Const UpTo_Tyuui = 400 Const UpTo_Syoui = 300 Const UpTo_Soutyou = 200 Const UpTo_Gunsou = 150 Const UpTo_Gotyou = 100 'まずRANKとMARKのobjDicStarsを作る Set objDicStars = CreateObject("Scripting.Dictionary") Set objFS3 = WScript.CreateObject("Scripting.FileSystemObject") Set objFile3 = objFS3.GetFile("星.txt") Set objTS3 = objFS3.OpenTextFile("星.txt")
54 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 23:01:40 ] 必要最小限のソース貼れよ・・・
55 名前:今日も雲弧 ◆bKaGbR8Ka. mailto:(´・ω・`)ショボーン [2008/03/18(火) 23:01:53 ] Do Until objTS3.AtEndOfStream strLine3 = objTS3.ReadLine ArrayStars = Split(strLine3) strRank = ArrayStars(0) strMark = ArrayStars(1) objDicStars.Add strRank,strMark Loop objTS3.Close '名前のリストを取得してから辞書を操作する ArrayRanksList = objDicStars.Keys ArrayStarsList = objDicStars.Items ArrayKeysList = objDic.Keys ArrayItemsList3 = objDic3.Items ArrayItemsList11 = objDic11.Items ArrayItemsList12 = objDic12.Items 'MsgBox ArrayKeysList(0) 'MsgBox ArrayItemsList3(0) 'MsgBox ArrayItemsList11(0) 'MsgBox ArrayItemsList12(0) 'MsgBox ArrayRanksList(0) 'MsgBox ArrayStarsList(0)
56 名前:今日も雲弧 ◆bKaGbR8Ka. mailto:(´・ω・`)ショボーン [2008/03/18(火) 23:02:51 ] For i = 0 To objDic.Count - 1 If CSng(ArrayItemsList3(i)) >= UpTo_Soutou Then strOldRank = ArrayItemsList11(i) strOldMark = ArrayItemsList12(i) objDic11.Item(strOldRank) = ArrayRanksList(0) objDic12.Item(strOldMark) = ArrayStarsList(0) MsgBox "昇進しました" MsgBox ArrayRanksList(0) MsgBox ArrayStarsList(0) MsgBox objDic11.Item(ArrayItemsList11(i)) MsgBox objDic12.Item(ArrayItemsList12(i)) Else MsgBox "あ" End If Next
57 名前:今日も雲弧 ◆bKaGbR8Ka. mailto:(´・ω・`)ショボーン [2008/03/18(火) 23:03:50 ] strRank = "" strRank = objDic11.Items For m = 0 To objDic.Count - 1 strTemp = strTemp & strRank(m) &vbcr Next MsgBox strTemp MsgBox objDic11.Item("今日も雲弧") MsgBox objDic12.Item("今日も雲弧") End Sub
58 名前:今日も雲弧 ◆bKaGbR8Ka. mailto:(´・ω・`)ショボーン [2008/03/18(火) 23:05:10 ] >>54 申し訳ありません。必要最小限の部分すらわからないのです…。
59 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 17:57:26 ] >58 ものには限度があるだろうよ。 あのコードを見て、本質ではないと思われる行が一行も思い当たらない程度のレベルなら、 何をどこから説明して良いのやら見当も付かないよ。
60 名前:デフォルトの名無しさん [2008/03/20(木) 01:34:51 ] すいません。質問です。 Windows xpのマシンにVB6はインストールできますか?
61 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 01:44:20 ] Linuxマシンならインスコできます。
62 名前:14 mailto:sage [2008/03/20(木) 03:42:03 ] >>48 いえいえ、 オブジェクト型の変数ってオブジェクトのインスタンスへの参照ですよ。 その話題くどいです。 >>60 できます。 で、本題は>>47 の後半なんですけど 返事ないところを見るとオブジェクト型のインスタンス化とは違って 組み込み型には明確な名称ないのかな。
63 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 10:26:34 ] >>62 質問の仕方からいって明らかに分かってないだろw なにがくどいだよ。 っていうか君がいう「本題」からして全然わかってないじゃん。 変数そのものが占有するメモリに関して組み込み型とオブジェクト型の区別 なんてあるかよ。 「本題」について言えば、「VBプログラマの視点での呼称」なのか「VBコンパイラ作者の視点での呼称」 なのかをまずはっきりする必要があるだろう。 「インスタンス化」とはVBプログラマ視点の言い方のような気がするから、 これに対応する言い方ということなら「定義」じゃないの? コンパイラ製作者の視点で「変数定義」の実装法の呼び方についていってるのなら それはVB作ったMSの人にしかわからんのじゃないの。 それに変数のスコープによっても実装法は恐らく異なると思うけど
64 名前:60 [2008/03/20(木) 11:26:51 ] >>62 ありがとうございます。 早速インストールしてみます。
65 名前:14 mailto:sage [2008/03/20(木) 14:45:46 ] >>63 変数そのものが占有するメモリに関して組み込み型とオブジェクト型の区別 については どうなんでしょうかね。 少なくともオブジェクト型、というか参照型については 宣言される時ではなく、初回利用時にインスタンス化するみたいですね。 で、組み込み型はどうなのか、というのが今回の話題ですね。 一応オチとしては「初回利用時かもしれない」というオチで落ち着きました。 参照型:インスタンス化 だとして 組み込み型:定義? ですか? なんか変な気が。。
66 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 15:03:12 ] >>65 やっぱり全然分かってないね。 New付きで定義された変数について、初回利用時まで生成が遅延されるのは インスタンスであって変数そのものではないだろう普通に考えて。 ちなみに「インスタンス化」という言葉が動詞だとして、それがとる目的語は 「クラス」または「型」であって「変数」じゃないと思うんだけど。 言い換えれば別に変数が「インスタンス化」されるわけじゃないぞ。
67 名前:14 mailto:sage [2008/03/20(木) 16:41:10 ] >>66 New付きで定義された変数について、初回利用時まで生成が遅延されるのは インスタンスであって変数そのものではないですよ。 当たり前です。 私がわかってない方が都合いいですか? ならそれでいいです。 わかってません、すみません。 これについてはここで終了してください。 以下を知りたいです。 参照型に対して「インスタンス化」ならば、 組み込み型に対しては何でしょうか? 「定義」という答えを頂きましたが的を得ている気がしません。 他の人の意見聞かせてもらえませんか? やはり定義で正解でしょうか?
68 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 17:03:48 ] あーこいつどうしようもなく頭悪いなあ。。。 だから「参照型のインスタンス化に対応する組み込み型の概念は?」なんてのは そもそも愚問なんだよ。そんなものはないんだから。 参照先が作られることを「インスタンス化」というのだから、 そもそも「参照先」という概念がないVBの組み込み型に対応する概念なんてあるわけないだろう。 そして変数そのもの作られるタイミングは組み込み型だろうが参照型だろうが 変わらないはずだ、と言っているのにこれも全然理解しようとしないなこの馬鹿。
69 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 17:06:30 ] というかVB6以前って「参照型」っていう呼び方したっけ? そういう呼称が導入されたのはドトネト以降で、VBでの呼び方は「オブジェクト型」 だったような気がしたけど。 まあこれに関しては説明の便宜かもしれないし、「参照型」と言った方が 呼び方として適切だと思うからいいんだけど。
70 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 19:01:39 ] > 参照型に対して「インスタンス化」ならば、 いみがわかりません><
71 名前:14 [2008/03/20(木) 19:14:36 ] >>69 しないと思います。 オブジェクト型で正解。 ご想像の通り説明の便宜です。 >>68 確かにこれは答えないかもしれませんね。 ここまで追求する問題でもないので質問取り下げます。 ありがとうございました。 >>70 言葉足らずですみません。 次の疑問がわきました。 先ほどVBには参照先という概念はないとお聞きしました。 本当ですか? 自分の意見は「ある」です。 Dim cls1 As Class1 Dim cls2 As Class1 Set cls1 = New Class1 cls1.s = "test" Set cls2 = cls1 Debug.Print cls2.s cls2の参照先はcls1のインスタンスです。 だから「ある」に一票。
72 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 19:50:56 ] > 先ほどVBには参照先という概念はないとお聞きしました。 日本語ダメな人?
73 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 20:47:37 ] >>71 クラスはドトネトでいう参照型/値型でいったら前者だよ。 だからNothingと比較できるる型の意味を君は理解してるか、と最初から言ってるでしょ。
74 名前:14 [2008/03/20(木) 21:42:53 ] >>73 >クラスはドトネトでいう参照型/値型でいったら前者だよ だーかーら そんな当たり前のこと堂々といちいち書かない。 何が言いたいんですか? それはさておき、 >>71 についてどなたかご意見いただけるとありがたいです。 よろしくお願いします。
75 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 21:45:13 ] VBに参照先の概念が無いなんて誰も言ってないだろ 完全に読み間違えてるよ
76 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 22:08:29 ] >>74 75が指摘してくれてるけど>>68 で「ない」と言っているのは 組み込み型の参照先だよ。 っていうか、君はその「当たり前」のことを全然理解してないのに その自覚がないから馬鹿だっていうんだよ。
77 名前:14 mailto:sage [2008/03/20(木) 23:10:50 ] >>75 なるほど。 参照先が作られることを「インスタンス化」というのだから、 そもそも 「参照先」という概念がないVBの組み込み型 に対応する概念なんてあるわけないだろう。 こう区切ればよかったんですね。 ありがとうございましたー。
78 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 23:35:55 ] vsFlexGridのセルにに画像を表示させるにはどうしたらいいんですか?
79 名前:78 mailto:sage [2008/03/21(金) 00:02:10 ] 自己解決しました
80 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 11:48:26 ] インスタンス化とは、オブジェクトの実体(インスタンス)を生成するプロセスのことを指す言葉。 これに対応する組み込み型の言葉は無い。しいて言うなら、アロケート(メモリ割付)か。 インスタンス化では、普通、メモリのアロケートとオブジェクトの初期化が行われる。 「オブジェクトの初期化」の中身は、言語によって異なる。 組み込み型の場合によく使われる「定義」という言葉は、「宣言」と対になる言葉。 英語では、definitionとdeclaration。普通は、前者はメモリのアロケートを伴う場合を指し、 後者は文字通り宣言のみを行う場合に使う。C/C++では、両者は明確に区別して語られる。
81 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 11:51:53 ] 蛇足:的は射るもの
82 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 11:55:16 ] さて、ここでVBのヘルプを見てみると、 >Dim ステートメント >変数を宣言し、メモリ領域を割り当てます。 と記述されている。素直に理解するなら、Dimステートメントが実行されたときにメモリが アロケートされる、すなわち、Dimステートメントとは、変数「定義」だということになる。
83 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 16:00:52 ] >15 がFAなんじゃねーの? それが問題になるようなコードはVBで書くべきじゃないし、 書かなきゃならないならVBを使うのは間違いってことだよ。
84 名前:14 mailto:sage [2008/03/23(日) 10:48:08 ] >>80 求めていた答えをいただけてすごくすっきりしました。 ありがとうございました。
85 名前:22 [2008/03/23(日) 23:47:03 ] >>42 亀レス&言葉足らずですみません。最終的にはVista環境でもシフトJISで書き込みたいのですが 元来内部コードをUnicodeでもっているはずのVBで>>22 のように書いたら シフトJISになるわけが知りたかったので・・・。 >>45 有難うございます、面目ないです。参考になりました。 色々調べた結果ADODB.StreamやFileSystemObjectも使えそうなので 試行錯誤してみます。
86 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 23:57:31 ] どうしても何も、VBが変換書けてるに決まってるでそ。 理由はUNICODEそのままで書いたら文句いう連中が 出るに決まってるから
87 名前:デフォルトの名無しさん [2008/03/24(月) 23:54:10 ] VB6.0を使っています。OSはWindowsXPSP2です。 他人のソースをコピーしてプログラムを作りました。 生成したEXEをエクスプローラで並べて表示にして見て見ると、ファイル名の下に薄い灰色で 作者名らしきものが表示されてしまいます。 プロジェクトのプロパティの「実行可能ファイルの作成」タブで バージョン情報の中にある、コメント、会社名などの情報は全て消したのですが、 EXEを生成し、生成したEXEをエクスプローラで並べて表示にして見た時に、 ファイル名の下に薄い灰色で作者名らしきものが表示されてしまいます。 こういった付加情報を表示しなくするにはどうしたらよいのでしょうか?
88 名前:デフォルトの名無しさん [2008/03/25(火) 14:17:30 ] >>87 「他人のソースをコピーしてプログラムを作りました」 そもそも、これが間違いの始まり
89 名前:デフォルトの名無しさん [2008/03/25(火) 15:20:43 ] >87 なぜかF5では更新されないね。 別のフォルダを選択して元に戻ったら直らないかい?
90 名前:87 [2008/03/25(火) 16:15:21 ] >>89 ご指示通り別のフォルダにexeを一度作成すると消えました。 ありがとうございました。
91 名前:デフォルトの名無しさん [2008/03/26(水) 16:22:26 ] Option Explicit Sub zzz() Dim hoge(3) As Variant Dim hogehoge As Byte Dim z As Byte For z = 1 To 3 For hogehoge = 1 To 3 hoge(z) = Range("A" & hogehoge).Value Next hogehoge Next z End Sub 上のようなコードで、zとhogehogeを同時に インクリメントすることは可能でしょうか?
92 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 16:52:47 ] 「Next hogehoge」の前に 「z=z+1」を入れれば可能だけど それは構成として間違ってるから やりたいことを日本語で整理して、 それから考えた方がいいと思うよ。
93 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 17:35:03 ] おk
94 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 19:15:36 ] zいらんやん
95 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 22:21:41 ] VB6.0でZipファイルを圧縮する処理をVBSで作成しBatで起動するように したのですが、なぜか1回だけZipと変な拡張子ないデータが作られ 12ファイルの内9ファイルしか圧縮されていませんでした。(原因不明) そこでZipファイルの中身の件数のみを数えて数があっていれば圧縮を 正常に終了したとみなしたいのですが、可能でしょうか? 全て解凍すると時間がかかりますのでお願いいたします。 ちなみにvbsで起動したのはdllを使わないで圧縮ができたからです。 よろしくお願いいたします
96 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 22:29:24 ] 日本語で話してくれないか?
97 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 23:28:04 ] そのうまくいかない原因を究明するほうがいいと思うぞ。 急がば回れって言うし。 あと、VBSでできるんだったら、VB6でも全く同じようにできる。 せいぜいWScriptオブジェクトがないくらい。
98 名前:95 mailto:sage [2008/03/27(木) 01:30:19 ] >>96 すいません >>97 VBSはネットでフリーであったのでそれを使用しました。ゆえにVBへの記述方法 がまったくわかりません。 (検索はしましたがVB VBSやVB6.0 VBSなど)VBSとVBがかぶっているからか変換の方法が見当たりませんでした。 原因が現在わからないので困っています。今回初めて不具合が出たもので。 >>96 ファイルを圧縮するVBSをbatで動かします。そのbatはVBで作成しています。 作成したbatの起動も同じVBでしています。 batでは以下の記述をしています CD VBSのパス CScript.exe MakeZIP.VBS ZIPファイルのパスと名前 圧縮するtxtのパスと名前1 圧縮するtxtのパスと名前2 … exit ですこれをshellで起動しています。 しかし今回作成されたzipファイルには後ろに記述していた11ファイルの内9ファイルしか 圧縮されておらず。残りの2ファイルはzipファイル内に存在しませんでした。(zipファイルと同じフォルダに拡張子のないファイルが1つ作成されてました) ファイル名が長いわけでも、特殊文字が使われているわけでもありません(パスも同じです) そこで、圧縮が正常にできているかを判断したいと考えました その方法として圧縮したファイル件数を調べることができないかを考えました。 よろしくお願いいたします
99 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 01:35:38 ] >>98 VBSはVBのサブセットなんだから、VBS→VBは 変換なんて考えなくても、そのまま一字一句変えずに使えると思ってもいいくらい。 まずは試してみたか?
100 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 01:38:53 ] コマンドラインの文字長には制限があったような気がするけど?
101 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 12:37:36 ] 1ファイルずつ追加していけば