• ベストアンサー

VBAのプログラムで、DIAG = 1# / A(L, L) や R(

VBAのプログラムで、DIAG = 1# / A(L, L) や R(I) = 0# の数字1、0の後についている番号記号#は何を意味しているものでしょうか? http://www.index-press.co.jp/books/excel/excel-04.pdf の記事内にあるプログラムで使用されていますが、解説がありません。 調べてみましたがシャープと読まないことぐらいしかわかりませんでした。 どうぞよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#245936
noname#245936
回答No.2

Pdf拝見しました。 凄く読みづらいプログラムで、どうにか修正したい欲に かられるわけですが。 ここでいう♯記号などは、「リテラル」というもので型を 暗黙に示すもので、#はDouble型を示すものだと思います。 言語が違いますが仕様が似てますので参考まで。 3-1 変数と定数  http://msdn.microsoft.com/ja-jp/library/dd314343.aspx  …真ん中のほう:  …VB .NET はリテラルのデータ型に応じて、以下のような表記をします(表 3-2)。  …の明示的な記述方法の列 1♯ はDouble型の1ということになります。 基本的に、Dim i as Double と宣言すれば i はDouble型に決まって いますので♯は要りませんが。 稀に Dim i as Variant(何でも型)と宣言したとき、i=1#とすると Double型として明示代入ができます。 とはいえ、変数の中身が訳がわからなくなるので、こんな書き方は 通常はしません。 プログラム文中を判りやすく見せているだけだと思います。 とはいえ、このプログラムは読みづらいです。 変数、配列のインデクサ、ループカウンタなど殆どが英字2文字以下の 意味のない単語変数なので、可読性のよいプログラムクォリティとしては よろしくないと思います。

kelkkelk
質問者

お礼

丁寧にご回答頂きましてありがとうございます。 参考にさせていただきます。 まだまだ他にもわからないところありそうですので どうぞよろしく願いします。

その他の回答 (4)

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.5

Doubleと言うことでしょう 参照 http://homepage1.nifty.com/rucio/main/kiso/DataType.htm

kelkkelk
質問者

お礼

WEBを指摘くださりありがとうございました。 今後も励みます。

  • tohru999
  • ベストアンサー率49% (76/154)
回答No.4

#は、Double型を表しています。 詳しくは、VisualBasicランゲージリファレンスのデータ型(倍精度浮動小数点数型)や、 参考URLの型宣言文字等を見て下さい。

参考URL:
http://home.att.ne.jp/zeta/gen/excel/c04p16.htm
kelkkelk
質問者

お礼

ご指導ありがとうございました。 また機会がありましたらどうぞよろしくお願いします。

  • yorozu_ya
  • ベストアンサー率54% (76/140)
回答No.3

DIAG や R(I) は Double型で変数宣言されています。 R(I) = 0# ' Double型の変数にDouble型のゼロを代入しています。 変数がDouble型ですから、整数型のゼロを代入しても結果は同じですが 気分的にDouble型のゼロを代入したいということでしょう。 ※ #記号はDouble型の型宣言です。

kelkkelk
質問者

お礼

丁寧に回答下さり大変ありがとうございました。 今後ともよろしくお願いします。

回答No.1

http://msdn.microsoft.com/en-us/library/ee199514%28v=PROT.10%29.aspx 下の方のTable 3.2を参照。 そのリテラルがDouble型であることを示す接尾辞です。 #表記がわからんって場合はEBNFでも学んでください。 http://www.atmarkit.co.jp/fxml/rensai/w3cread02/w3cread02.html ================== 以下のコードを実行すると、それぞれ 2 と 5 が表示されますね? Option Explicit Sub Main() MsgBox (VarType(1)) MsgBox (VarType(1#)) End Sub で、

kelkkelk
質問者

お礼

プログラムが意味不明と思う瞬間でした。 ご回答があり大変役立ちました。 ありがとうございました。