ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2024年4月28日(日) 01:36

全ての表示時間は UTC+09:00 です




返信する
ユーザー名:
件名:
メッセージ本文:
メッセージを入力してください。60000 字まで入力できます。 

フォントサイズ:
フォントカラー
オプション:
BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF
BBCode を無効にする
URL を自動的にパースしない
クイズ
お手数ですがカタカナで「エービー」と4文字を入力してください。:
答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。
   

トピックのレビュー - Dimと型
作成者 メッセージ
  記事の件名:   引用付きで返信する
確かにそうだが、どーも面倒なところがないだろうか。
投稿記事 Posted: 2005年10月15日(土) 11:16
  記事の件名:   引用付きで返信する
Dim (A,B) As Stringよりは単に1行で1変数だけを宣言するスタイルを推奨すれば十分だと私は思います。
投稿記事 Posted: 2005年10月15日(土) 10:47
  記事の件名:  それって、こういう風に書いた時に・・・  引用付きで返信する
コード:
Dim (A,B) As String
って言う表記にした時にAとBの両方がString型になるようにしてもらえばいいんじゃないかな?今のところこの書き方は使えないけど。<<AB4.10.01
投稿記事 Posted: 2005年10月15日(土) 09:22
  記事の件名:  Re: Dimと型  引用付きで返信する
> たとえ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になる」と知っている人がどれだけいるのかがそもそも疑問ですし、それを知らない人にとってはこれは難解な問題ということになってしまいます。
そのため、最初から型の省略をできないようにする、という手もありではないかと思いますが…。
投稿記事 Posted: 2005年7月19日(火) 15:15
  記事の件名:  Re: Dimと型  引用付きで返信する
> まぁ、上の書き方が、VBでも同じ動作((関数だけなら)何かの型になるの)なら、どうなんでしょうかね?(Cでは2つとも同じのになるみたいですけどね。)

> Dim A,B As String
たしかVB6までだとAは型が省略されたと扱われ、VB.Net以降だとString型になるのだったと思います。
たとえVB6まででもVBにはVariant型という何でもありの型があり、変数宣言でこのように型を省略したときにもこの型が使われるので、気づきにくいようです。
Variant型のないABでは問題にならないと思いますが。
投稿記事 Posted: 2005年7月19日(火) 07:56
  記事の件名:  Re: Dimと型  引用付きで返信する
コード:
Dim A,B As String
> としてもAがString型になりません。
たしかこの場合、AはDouble型になっていると思います(確か、数字関係の関数だったような・・・)。

でも、確かに、上記のようにしてもAがString型になるようにして欲しいですね。(でも、昔から上記の使い方をしてプログラミングしている人には、後ろの書き方(型)によってはプログラムのバグを引き起こしてしまいそうですが・・・)
まぁ、上の書き方が、VBでも同じ動作((関数だけなら)何かの型になるの)なら、どうなんでしょうかね?(Cでは2つとも同じのになるみたいですけどね。)
投稿記事 Posted: 2005年7月19日(火) 01:09
  記事の件名:  Dimと型  引用付きで返信する
C言語では
コード:
int A,B;
とすると、A,Bともにint型になります。
しかしActiveBasicでは
コード:
Dim A,B As String
としてもAがString型になりません。
このプログラムでもA,BともにString型になるようにしていただきたいです。
投稿記事 Posted: 2005年7月18日(月) 22:38

全ての表示時間は UTC+09:00 です


ページ移動:  
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by ocean