Dimと型

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: Dimと型

by konisi » 2005年10月15日(土) 11:16

確かにそうだが、どーも面倒なところがないだろうか。

by イグトランス » 2005年10月15日(土) 10:47

Dim (A,B) As Stringよりは単に1行で1変数だけを宣言するスタイルを推奨すれば十分だと私は思います。

それって、こういう風に書いた時に・・・

by konisi » 2005年10月15日(土) 09:22

コード: 全て選択


Dim (A,B) As String
って言う表記にした時にAとBの両方がString型になるようにしてもらえばいいんじゃないかな?今のところこの書き方は使えないけど。<<AB4.10.01

Re: Dimと型

by hira » 2005年7月19日(火) 15:15

> たとえVB6まででもVBにはVariant型という何でもありの型があり、変数宣言でこのように型を省略したときにもこの型が使われるので、気づきにくいようです。
> Variant型のないABでは問題にならないと思いますが。

興味のある話題が出たので、VB6から入った人間からコメントさせていただきますと…
イグトランスさんの仰るとおり、VB6ではAは型が省略されたものとして扱われます。
しかし、正直バグの原因になりますよ(^^;
それにもかかわらず、(VBAを含めて)いい加減な本だったら平気で
Dim A,B As Long
のような書き方がされています(もちろん、AはVariantではLongになることを期待して書かれているのですが、VB6の仕様ではこれは間違いです)。

なお、ActiveBasicでは型省略はDouble型として扱われます。しかし、普通はDouble型変数を宣言するときも型省略などしないはずです(それより、Long型やString型で処理すべきところで型名を忘れてしまってハマることの方が多いです)。
例えば、
Dim A,B As String
ここで A="ActiveBasic" はアウトになります。AはDouble型だからです。
しかし、「省略したらDoubleになる」と知っている人がどれだけいるのかがそもそも疑問ですし、それを知らない人にとってはこれは難解な問題ということになってしまいます。
そのため、最初から型の省略をできないようにする、という手もありではないかと思いますが…。

Re: Dimと型

by イグトランス » 2005年7月19日(火) 07:56

> まぁ、上の書き方が、VBでも同じ動作((関数だけなら)何かの型になるの)なら、どうなんでしょうかね?(Cでは2つとも同じのになるみたいですけどね。)

> Dim A,B As String
たしかVB6までだとAは型が省略されたと扱われ、VB.Net以降だとString型になるのだったと思います。
たとえVB6まででもVBにはVariant型という何でもありの型があり、変数宣言でこのように型を省略したときにもこの型が使われるので、気づきにくいようです。
Variant型のないABでは問題にならないと思いますが。

Re: Dimと型

by Mario2 » 2005年7月19日(火) 01:09

コード: 全て選択

Dim A,B As String
> としてもAがString型になりません。
たしかこの場合、AはDouble型になっていると思います(確か、数字関係の関数だったような・・・)。

でも、確かに、上記のようにしてもAがString型になるようにして欲しいですね。(でも、昔から上記の使い方をしてプログラミングしている人には、後ろの書き方(型)によってはプログラムのバグを引き起こしてしまいそうですが・・・)
まぁ、上の書き方が、VBでも同じ動作((関数だけなら)何かの型になるの)なら、どうなんでしょうかね?(Cでは2つとも同じのになるみたいですけどね。)

Dimと型

by BingoMan » 2005年7月18日(月) 22:38

C言語では

コード: 全て選択

int A,B;
とすると、A,Bともにint型になります。
しかしActiveBasicでは

コード: 全て選択

Dim A,B As String
としてもAがString型になりません。
このプログラムでもA,BともにString型になるようにしていただきたいです。

ページトップ