• 締切済み

MS officeでの関数(text,format)について

MS officeでの関数(text,format)について やってることが同じでも関数が違うものが結構あります。 例)数値を文字列に変える関数 text /format 文字列を数値に変える関数 val/value/num(これはMSofficeだったかわすれましたが) VBAかワークシート関数かで使い分けるのは面倒なんですが、それぞれが発生した由来、text関数がVBAで実装されない理由(またその逆でもいいのですが)とかうんちくを聞かせてください。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

>使う側としては、「開発史が、まったく違うものですから」というのは、関係ないですよね? 関係ない?って、私は、「開発史」が違うものは、同じ仕様を持っていないという説明が、お分かりにならないかったのでしょうか?ご質問が「うんちく」というから、もう少し、ゆるい話をお求めのように思いましたが、どうやら、そうではなかったようですね。 VBAとExcelのワークシートの操作は、まったく質の違うものとしか言いようがありません。違うソフトウェアと思ったほうがよいです。もし、VBAを覚えたいなら、一旦、ワークシートのことは忘れて、VBAに集中したほうがよいです。両方を行ったり来たりの掛け持ちでは覚えられません。同じような考えでいたら、うまくいかないのです。 >vbaの場合は、ワークシート関数の場合は、とか考えるのが面倒くさい、といった主旨でした。 Excelなどに興味があれは、いろんな周辺情報も楽しく感じるものですが、「面倒くさい」といわれれば、覚えられるものも、覚えられなくなってしまいます。 それに、いつまでも、VBAが続くとは思わないほうがよいです。いずれは、VBAはなくなると思ったほうがよいです。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こちら側からすると、ご質問の意図が分かりにくいのですが、ワークシート関数とVBA関数との違いについて、ということでしょうか。しかし、開発史が、まったく違うものですから、それを比較するということは難しいのではないでしょうか? 基本的な関数名自体は、Microsoft社 が考えたものではなく、1970年代後半、VisiCalc の開発者、MIT大学生のダン・ブリックリン氏とその友人が考えたものです。その後、ロータス社に権利を譲り、その時に関数が増えました。Microsoft側は、1980年代の初頭に天才チャールズ・シモニー氏が、その開発に関与したと言われますが、関数名は、すでに、ロータス社の中でほとんど揃っていたと思われます。 Lotus1-2-3との互換性が保たれるようにとはいいますが、その話には疑問があります。Microsoft MS-DOSの表計算 Multiplan は、1983~4年頃で、同様の関数があったからです。MS-DOSと表計算はバンドルしていた時代が初期にはあります。互換性が保たれていたとは言えません。 VBA側は、ご存知だと思いますが、Visual Basic からのダウンサイジングです。1995年にExcel Ver.5からVBが取り入れられたものであったわけで、ワークシート関数と似ているかといっても、比較できるものではないと思います。その開発チームは、まったく別な所にあったものだと思います。Excelに、VBAを取り込むことは賛否両論だったとも言われます。 Val は、VBAの文字から数値に換える関数。Value は、Range 等のオブジェクトのプロパティ。 N やCONCATENATEは、Lotus1-2-3との互換性のための数値化するためのワークシート関数。 Format は、VBAの書式関数、Text はワークシートの関数。しかし、Text 関数は、MS-DOS版表計算のロ社のものにもMS社どちらにもありません。 VBAのMID関数の仕様は、ワークシート関数のREPLACEと同じような機能があったりします。 ROUND関数は、両者ではまったく違うものです。VBAは、偶数丸めという近似値を求めるための関数で、四捨五入をすることではありません。MOD関数は、ワークシート側は、小数が発生しますが、VBAでは、もともと演算子であるし、Long型、Integer型、Byte 型と、各々の小数発生のデータ型の数値を丸めてしまいます。

pika_po
質問者

お礼

ありがとうございます。使う側としては、「開発史が、まったく違うものですから」というのは、関係ないですよね? もう21世紀になって10年にもなるのですから、1995年から全く変化がないというのも。。。 同じことが出来る関数があってもいいんではないかな、と思います。まあ下位互換性を保つためにはしょうがないのでしょうが。 毎日スクリプトを書くわけではない人間からすると、vbaの場合は、ワークシート関数の場合は、とか考えるのが面倒くさい、といった主旨でした。

  • layy
  • ベストアンサー率23% (292/1222)
回答No.1

formatやvalは昔からあるように思います。

関連するQ&A