X



古代VBプログラマ質問スレ(Ver.6.0 まで) part65 [転載禁止]©2ch.net
0001デフォルトの名無しさん垢版2015/08/30(日) 19:25:35.12ID:ZYoWCo0d
ここは古代に使われていたVisual Basic 〜6.0 の質問スレです。
質問者は使用しているOS、VBのバージョン、サービスパックのバージョン、
「何がしたくて、どうしたけど、どう困っているのか」を明確に書きましょう。

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

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

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

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

前スレ VBプログラマ質問スレ(Ver.6.0 まで) part64
http://peace.2ch.net/test/read.cgi/tech/1393069842/

※「まず自分で調べる」クセを身につけよう。
0377デフォルトの名無しさん垢版2018/02/26(月) 06:40:53.98ID:eCGyw0Qs
Private Sub Form_Load()
  Text1 = "106.456"
  Command1.Caption = "▲"
End Sub
となっています

1ドルなん円という数字が入っていて
小数2位以下はいらないので▲ボタンを押すごとに
106.456→106.500→106.600→106.700・・・
となるように
Private Sub Command1_Click()
Dim v&
  v& = Int(Val(Text1) * 10) + 1
  Text1 = Format(v& / 10, "0.000")
End Sub
2行のプログラムをつくりましたが、あら不思議、これは動きません
Intが悪さをしている、Intはいらないと分かったのですが
なぜIntが悪さをするのでしょうか
0379デフォルトの名無しさん垢版2018/02/26(月) 11:36:26.78ID:eCGyw0Qs
整数型に変換してるんですけど
INTの外にある「+1」が無効になる感じです
0381デフォルトの名無しさん垢版2018/02/26(月) 13:21:07.72ID:WN96vgWt
Dim v&
この瞬間見る気が失せた

v& = Int(Val(Text1) * 10) + 1
    ↓
v& = CInt(Val(Text1) * 10) + 1
0382デフォルトの名無しさん垢版2018/02/26(月) 19:01:29.09ID:eCGyw0Qs
お二方のは、最初の1回だけ動いて、
以降は動かなくなりましたよ
しかしCsngやValだと
106.456→106.500→106.600→106.700・・・
としたいところ
106.456→106.600→106.700・・・
になってしまうけど、まぁ動きました
お手間をとらせました、有難うございました
0384デフォルトの名無しさん垢版2018/02/26(月) 20:28:52.46ID:eCGyw0Qs
ああ分かったよ
実数の扱いの深い部分だね
Debug.Printで見ても表示されないから分からなかったわけだ
0385デフォルトの名無しさん垢版2018/02/26(月) 20:48:01.22ID:eCGyw0Qs
これだ
? Csng("125.600") * 10
1256

? Csng("125.600") * 10 + 0!
1256

? Csng("125.600") * 10 + 0.0
1255.99998474121
0387デフォルトの名無しさん垢版2018/02/27(火) 19:18:36.84ID:ckmPPEEZ
>>386
と思うだろ?ところがすっとこどっこい
お前が使ってるソフトを作ってるやつも似たりよったりなんだぜw
0388デフォルトの名無しさん垢版2018/02/27(火) 19:24:31.43ID:Al9WGUeE
VB.Net ではなくVB6.0を愛用してます。
世の中64ビットOSになり、次は128ビットになりっとどんどん大きくなると思うんですが、
今まで作成した私のVB6.0のアプリは今度どうなるのでしょうか。
多少VC++が分かるんですが、実装するのはやっぱり使い慣れたVB6.0が手っ取り早いし簡単で、ずっと使いたいんですが、、、
0390デフォルトの名無しさん垢版2018/02/28(水) 08:01:30.43ID:hBhv/I2a
>>388
切迫感無いですね
保全関係の請負で食べてる人ですか?
それだけ過去資産持ってるならそれをC++なりで再現する方向で精進するのが普通の発想だと思いますがね
0393デフォルトの名無しさん垢版2018/03/07(水) 22:19:09.25ID:rslQbK+P
Basic系の言語って
今でも有るのですか
0394デフォルトの名無しさん垢版2018/03/07(水) 23:54:20.09ID:fiBk/l1y
「系」で良いのなら全ての現代的プログラミング言語は
BASICの影響を受けたBASIC系言語と言えるよ
プログラミング言語の系図ぐぐってみ
0395デフォルトの名無しさん垢版2018/03/08(木) 00:13:41.52ID:FnIaUAPR
修正
Basic言語って
今でも有るのですか
0399デフォルトの名無しさん垢版2018/03/08(木) 16:00:50.26ID:FnIaUAPR
大昔N88やクイックBasicで
遊んでいたのでちょっと気に成った
0400デフォルトの名無しさん垢版2018/04/09(月) 16:21:33.75ID:VHPh6678
YoutubeをTHXでダウンロードすると動画タイトルがファイル名になることがあって
動画タイトルに連音符のような特殊文字が使われているとVBで扱えなくなる
エクスプローラでリネームしてやれば済む話だけども
寝てる間にダウンロードして所定のフォルダに所定のファイル名で保存するプログラムは動作しない

変な文字コードが入り込んだファイルというのはFileListBox上には存在するけども
FileLen,Open,Name,FileCopyなどでは存在しないファイルとなる
実際のファイル名とVBが見ているファイル名が違うからだと思われる
0401デフォルトの名無しさん垢版2018/04/14(土) 13:16:18.18ID:o+IDV1P4
例えば適当なテキストファイルがあって、それをエクスプローラで
12♬34.txt
とリネームします
これをVBのプログラムで読むには?
0402デフォルトの名無しさん垢版2018/04/14(土) 20:38:42.77ID:cGW/rI9o
そもそもVB6ってロングファイルネームサポートされてないんじゃ?
8.3形式のファイル名で読むしかないんじゃね
0404デフォルトの名無しさん垢版2018/04/18(水) 00:07:35.39ID:tthgPYsW
>>401
そもそも VB6.0 のコードエディタに貼り付けても化けちゃうしw
CreateFileW 等の API を使ってゴリゴリ書くしかないだろうね。

あと、MAX_PATH を超えるような場合は \\?\ や \\?\UNC\ 等のプレフィックスをつける必要がある。
ttps://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx
0405デフォルトの名無しさん垢版2018/04/18(水) 01:10:14.49ID:Fou0n0Q0
まだ使ってる人いるのかw
VBって割と最初からUnicode対応だと思ったけど、IDEのエディターやコンパイラは対応してなかったのかw
0406デフォルトの名無しさん垢版2018/05/23(水) 19:48:49.05ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

LVCSB
0408デフォルトの名無しさん垢版2018/06/21(木) 04:44:22.62ID:rU9ofWTp
EXEはVBPと同じフォルダに作られるのがデフォルトだったけど
どうもWindows10の新しいバージョンになってから
EXEが作られるフォルダのデフォルトというのがカレントフォルダとは限らないようだ
いったい何を見てEXEを作るフォルダのデフォルトを決めているのだろう
0409デフォルトの名無しさん垢版2018/06/28(木) 13:53:55.74ID:1rh3xnmW
Win10の最近の更新からVB6がインストールができなくなったという情報あり
Win10をUSBなりからクリーン・インストールしたら
まずVBをインストールして、その後にWinの更新をすればいいのかも
0412デフォルトの名無しさん垢版2018/07/04(水) 22:04:14.51ID:gFgZc5FG
R75
0414デフォルトの名無しさん垢版2018/07/26(木) 11:48:33.91ID:H5PHXS3d
最後の行だけ改行コードがついてないテキストファイルがあって
それを読みながら修正などしながら、別ファイルに書き出すという処理で
最後の行には、どうしたって改行コードがついてしまうよね
0416デフォルトの名無しさん垢版2018/07/26(木) 18:37:53.12ID:H5PHXS3d
最後の行だけWriteを使う?
0417デフォルトの名無しさん垢版2018/07/26(木) 19:49:11.90ID:OM9s1u3H
そこは工夫の問題じゃない?
最初だけ改行なしでWrite、次からは改行+Writeでも良い。
0419デフォルトの名無しさん垢版2018/07/27(金) 06:16:27.69ID:3UBNsMpg
なるほどー
「まずバイナリでファイル末尾の改行の有無を判定する
末尾に改行なしなら、2行目以降は、改行コードを頭に付けて出力する」
ありがとうございました

自分にない発想に出会うと感動しますね
数年前に阿修羅で出会った感動の書き込みを紹介しますと
「日米戦争はイカサマだった→東京裁判は昭和天皇が進駐軍にやらせたものだった」
これにはぶっ飛びました
自分では色々考えたつもりでも、それは所詮自分の殻の中の世界であって
真実に到達できていない可能性があるんだと思い知らされました
0421デフォルトの名無しさん垢版2018/07/28(土) 08:36:57.37ID:PI7ZWSa2
別におかしくはないが
0423デフォルトの名無しさん垢版2018/07/29(日) 17:28:52.06ID:VklBLlho
どこがおかしいか言えないくせに
0425デフォルトの名無しさん垢版2018/07/30(月) 07:16:37.08ID:cuF4Akt9
セミコロンしか思いつかない
0426デフォルトの名無しさん垢版2018/07/30(月) 08:11:32.75ID:ZsZv5PX0
天皇が日本人殺し専門家だったということかな
0428デフォルトの名無しさん垢版2018/07/31(火) 17:51:36.68ID:Fx99AaZI
2発の原爆のうちの
広島の方は天皇原爆だったという話だよ
0429デフォルトの名無しさん垢版2018/09/27(木) 22:44:25.14ID:WK77KfIA
VB6.0を現代的なOSで動くようにしたら需要あるだろうか?
0430デフォルトの名無しさん垢版2018/09/27(木) 22:59:18.79ID:52bTlTE/
>>429
実際に求められてるのって実はその辺だと思う
最近の言語は進化が作成者のオナニーになっているというか
素養のない一般の人(だが仕事で必要)には
VBAレベルが限界だと思う
OfficeのVBAがVB6ベースでも世の中そんなに困ってない
0431デフォルトの名無しさん垢版2018/10/06(土) 08:12:48.42ID:PdvbxOvb
だよね
Windowsにしても買い替えさせるために不要な変更を行ってる
というか改悪している
0432デフォルトの名無しさん垢版2018/12/15(土) 09:30:17.07ID:eNe1gS8X
VB6でクラスライブラリをビルドしてるんだけど、
1)Constみたいな定数を実装する方法は無いのかな?
2)Optional ByRef引数の指定が省略されたかどうかを、その関数内で判定するのはどうするのがいいだろ?
0433432垢版2018/12/15(土) 11:05:25.75ID:eNe1gS8X
>>432の補足
ActiveX DLLとしてビルドして、外部プロジェクト(VBA)から利用しようとしている
1)外部プロジェクトからConstみたいに参照できる定数をActiveX DLLに実装できないか
0434デフォルトの名無しさん垢版2018/12/15(土) 19:41:04.27ID:2EsZz+ya
VBSで、ウインドウハンドルを持たないボタンを安定して押す方法ってあります?
SendKey連打で切り抜けられるものもありますが、
→→↓↓Enterとか、必殺技コマンドみたいなのが必要な状況では、いまいち安定しません。
5秒待つとかダルいですし、そんなに待ってもダメな時もありますし・・。
もしくは、JSでもいいんですけど。
0436デフォルトの名無しさん垢版2018/12/16(日) 08:14:10.79ID:54fw4zsX
>>434
ブラウザ上のボタンはどうやって押すんだろね
分からんのでUWSC使ってる
UWSCはハンドルじゃなくてプロセスIDと座標を使ってるから
SendMessageじゃないAPIがあるんじゃないかと思う
0437デフォルトの名無しさん垢版2018/12/16(日) 08:55:28.62ID:SwJ6GlUb
>>436
ブラウザは、IEで、htmlで書かれている部分ならgetElementsByXXXXという関数で簡単に押せます。
ダウンロード通知バー内のボタンが難しい。
0438デフォルトの名無しさん垢版2018/12/16(日) 15:43:33.06ID:wWzCJETE
VBSじゃなければUIAutomationかAccesibilityでいけるんだが、VBSだと難しいかも。

>>436
webの話なの?
それならVBSでもいけるでしょ。
それからUWSCはAccesibility使えた筈。
0440デフォルトの名無しさん垢版2018/12/16(日) 16:27:55.12ID:cbAz2aci
>>435
ありがとう。

2)
IsMissingなんて使ったことなかったw
まさにVariant型で配列を渡す引数だったし、良さそう
VBAでは初期値NullにしてIsNullで判定してたけど、VB6だと引数初期値Nullでコンパイルエラーになるから困ってた

1)
Optional引数の初期値には指定できなさそうだ
現在、InstancingプロパティをGlobalMultiUseにして、Publicメンバ変数にして、Initializeイベントで初期化してるんだけど、これもOptional引数の初期値には出来ない
0441デフォルトの名無しさん垢版2018/12/16(日) 16:40:17.69ID:cbAz2aci
>>429
需要ある
VBAのライブラリ開発では重宝してる。
VSTOみたいにバージョン相性もないし、ほぼそのままユーザフォームを含むVBA資産を再利用できるし。
現行では、いちいちファイル保存先を指定したり、ビルド先を指定したり、インターフェースの機能構成が不便だ。
あと勝手にレジストリにDLLが登録されるのはどうにかして欲しい(管理者権限を付けないで起動すれば登録されないけど)
0442デフォルトの名無しさん垢版2018/12/16(日) 17:05:02.36ID:Ux2imWCY
>>441
そんなあなたに
https://eijiman.com/windows10-vb6-runtime/#Window10VB6

Microsoftによって機械翻訳された内容ですが、次の記載があります。

VB6 ランタイムは Windows 10 に付属し、その OS の有効期間にわたってサポートされます。

出典:Visual Basic 6.0 のサポートに関する声明 | Microsoft Docs

つまり「Windows10でVB6ランタイムが継続的に実行できるようにサポートし続けていく」ということになるのでしょう。
0443デフォルトの名無しさん垢版2018/12/16(日) 17:59:03.24ID:FrPAZXVp
>>441
VBAのライブラリをVB6で作って意味あるの?w
UI以外はVB6で書けるならVBAで書けるでしょw
それにVSTOの代替にはならんでしょ
0444デフォルトの名無しさん垢版2018/12/16(日) 18:00:18.99ID:FrPAZXVp
つーか、20年前に死んでる開発ツールをなぜまだ使うのw
もういい加減成仏させてやろうよ
0447デフォルトの名無しさん垢版2018/12/16(日) 18:41:53.87ID:FrPAZXVp
>>446
ライブラリはオフィスだけでも作れるんだけど....
むしろVB6ランタイムに依存するライブラリをわざわざ使う意味が分からん。
上にも書いたが、UI以外はできることは同じなんだけど
0448デフォルトの名無しさん垢版2018/12/16(日) 18:50:33.91ID:Ux2imWCY
> むしろVB6ランタイムに依存するライブラリをわざわざ使う意味が分からん。

VB6ランタイムに依存することが
何のデメリットになるのかわからん
0449デフォルトの名無しさん垢版2018/12/16(日) 18:54:03.18ID:cbAz2aci
>>447
>ライブラリはオフィスだけでも作れる

どういう実装形態を言っているのか?
ワークブック参照とか言い出すんじゃないだろな?
0450デフォルトの名無しさん垢版2018/12/16(日) 20:17:15.75ID:SwJ6GlUb
>>438
VBSでもExcel経由でAccessibleObjectFromWindowが使えそうなんですが、
どうやってIID_IAccessibleを渡せばいいかわからないんです。
IID_IDispatch(?)を試そうとしたら、今度はStrPtr関数が使えないという。
0453デフォルトの名無しさん垢版2019/02/12(火) 08:57:56.14ID:KBq8YL8H
win10でVB6使ってるけど
フォーム上に配置したコントロールを複数選択して移動すると
ヌルヌルして時間かかるよね
ま、問題ないけど
0454デフォルトの名無しさん垢版2019/02/12(火) 09:16:40.19ID:/ZcWfBY0
>>453
VB6でコントロールの編集が重い場合

デスクトップ コンポジションを無効にしないとデザイン画面が重い。
 1.コントロールパネルで「パフォーマンス」を検索
 2.パフォーマンスの情報とツール
 3.視覚効果の調整→視覚効果タブ
 4.カスタム内の[デスクトップコンポジションを有効にする]のチェックを外す
0455デフォルトの名無しさん垢版2019/02/13(水) 07:48:14.19ID:ozpLJ5Aa
コントロールパネル
→システム
→システムの詳細設定
→「詳細設定」タブ
→パホーマンス
→カスタム
このチェックボックス付きリストの中に
「デスクトップコンポジションを有効にする」はありませんでした
Win10 Homeだからかもしれません

元々アニメーション表示のような「効果」は大嫌いなので、ほとんどOFFにしてましたが
全部OFFにしても変わりありませんでした
でもまぁWin10でコンパイルできるだけでも御の字
お手数をおかけしました
0456デフォルトの名無しさん垢版2019/02/13(水) 08:03:06.30ID:UbZRjv6P
アニメーションて好き嫌いでするもんとちゃうで
0457デフォルトの名無しさん垢版2019/02/22(金) 19:36:18.85ID:J7jd/0P6
DOS窓では上手くいくのに、VB6から以下を実行するとうまく動きません。
何がいけないのでしょうか?

Shell "powershell start-process cmd -ArgumentList '/c bcdedit /set TESTSIGNING ON'-verb runas & shutdown /r /t 0", vbHide
0458デフォルトの名無しさん垢版2019/02/22(金) 19:59:28.10ID:J7jd/0P6
TESTSIGNING ONの後のスペースが抜けてましたが、相変わらず動かない・・・。

powershell start-process cmd -ArgumentList '/c bcdedit /set TESTSIGNING ON' -verb runas & shutdown /r /t 0
0459デフォルトの名無しさん垢版2019/02/23(土) 09:08:53.84ID:bsCiwcZ2
DOS窓で動くけど、VB6からは動かないと言ったら
昔ならDOS時代のカレントフォルダ上で動くアプリだからってことだったけど
パワーシェルとかわからん
0460デフォルトの名無しさん垢版2019/02/23(土) 12:20:37.83ID:1VDw8d5m
なんやカレントフォルダ上で動くて
0461デフォルトの名無しさん垢版2019/02/24(日) 15:53:48.28ID:Jr9LmcmN
VBからShellでPowerShell呼び出して何かを動かすの?
ピタゴラスイッチみたいなことするね。

普通にプログラミングしてる奴なら気持ち悪いとか、かっこ悪いと思うんじゃないかな。
0462デフォルトの名無しさん垢版2019/02/25(月) 20:45:44.39ID:7qA/ekvf
世の中使えるソフト屋と使えないソフト屋といるだろ?
気にならないということはつまりそういうこと
0463デフォルトの名無しさん垢版2019/03/01(金) 11:27:39.65ID:7uaHlbSd
VBのコード編集画面てWin10でカーソル太く設定しても変わらないんだ
しかも点滅が5秒で終わるしバカじゃなかろかWin10
0464デフォルトの名無しさん垢版2019/03/06(水) 10:28:08.62ID:YF9C4Fuh
ピクチャの高さを設定して、設定できたか確認する
Picture1.Height = 50
Debug.Print Picture1.Height

巨大なピクチャはメモリの都合か、設定できないのは知ってるんだけど
こういう小さいピクチャでも設定できないケースがあるというのは、
どういうことが考えられるでしょうか
Picture1.Refreshを入れてもDoEventsを入れても変わらず
Win10です
0465デフォルトの名無しさん垢版2019/03/09(土) 16:25:46.41ID:oEXF5OyI
464は削除しといて
勘違いだったかもしれない
0473デフォルトの名無しさん垢版2019/04/04(木) 09:00:00.76ID:OxdZrwPD
今のままでは令和に変換できなかったってこと?
で、今後は改元に対応するようにランタイムが修正されたと。
0474デフォルトの名無しさん垢版2019/04/26(金) 15:39:28.87ID:ZVJgLkuV
Windows10(64bit版)、Jet4.0(DAO3.6)でSQL文(OpenRecordset"SELECT...")を実行すると
まれにフリーズ(応答なし)になるの何で?
同じプログラムでもWindows7(32bit版)だとフリーズせず結果が帰ってくる
0475デフォルトの名無しさん垢版2019/05/04(土) 11:22:47.76ID:csWfDhpM
地元でVB6→VB.NETへのマイグレーション案件有るんだが
移行が一足飛びで出来ない事実を知って炎上必須っぽいので様子見
0476デフォルトの名無しさん垢版2019/05/06(月) 02:57:18.09ID:xVD1r1Wf
Win10のmsvbvm60.dllのタイムスタンプは2018年になってる
天皇の生前トンズラが分かった時点でレジストリを見るように対応したってことだろうか
レスを投稿する


ニューススポーツなんでも実況