No.5ベストアンサー
- 回答日時:
こんにちは。
HPは観たことがありませんね。そのような解説の書籍もみたことがありません。パテントの問題よりも、それを公開するような無駄はしないからだと思います。
ただ、VBAで同じように作るには、思った以上に技術が必要なことが分かります。かなり上級レベルだと思います。
たかが、SUM 関数でも、入門レベルでは思いもつかないようなワザがあったりします。それは、自分でやってみるしかありません。入門レベルでは、SUM関数の一部を表現できるようになると良いといいますが、思った以上に表現するのは難しいと思います。細かい部分で、例えば、エラーの表現の仕方とか、一般の市販のVBAの解説書には出てきません。また、通常のユーザー定義関数の作り方のルールとは、違う造り方になっています。
SUM関数を作った話を、昔読んだことがあります。MS-DOSの前身のBasic と違って、SUM関数は、文字列を含んでも、エラーになりません。「0」の扱いを受けます。それは、SUM関数を使って、その途中で、書き込みをしたい時があるからだ、ということだそうです。ただ、基本関数については、あまり、MSのオリジナリティは低いように思います。
やってみると、うっすらと分かってくる部分があります。ある種の時代性がうかがえます。SMALL 関数,LARGE関数とRANK関数では、同じ種類なのに、RANK関数は引数に配列を受け取ることが出来ません。これは、SMALL/LARGEは、時代的にかなり後に出来たものだと分かります。いくつかの関数は、MS の仕様とは違う、ということも気が付きます。また、バグが残ったままになっているものもあります。(たぶん)外部で製作したものに関しては、ほとんど、フィードバックされていない、ということも分かるはずです。
MSは、何度か、関数を増やしていった大きな波のようなものがあります。
こうやって一つ一つ検証していくと、製作者の違いなどの輪郭が浮かび上がるはずです。基本関数以外は、ずいぶん雑だなって思うものもあります。
VBA(VB)に自信がおありなら試してみるのもよいのですが、そうでなければ、真似事ぐらいにしておいたほうが無難です。レベルが上がるまでには、気の長い勉強が必要だからです。
そういう私は、興味ある部分をいくつかは再現しています。例えば、RANK関数などは、きちんと作れるようになるにも、年月が掛かりました。また、最初に書いたSUM関数も、まだあやふやなレベルです。それは、引数が配列の場合の戻り値の部分が、SUMPRODUCTになってしまってはダメだからですね。しかし、これらは、あくまでも自分の勉強です。
失礼かもしれませんが、今、どのぐらいのレベルになられたのでしょうか?私が、最初にVBAを習った時に、SUM関数と同じ働きのものを作れっていう問題で、無い知恵で悪戦苦闘した覚えがあります。
No.6
- 回答日時:
関数の勉強をされているとの事ですがプログラミングの知識はどれくらいお持ちでしょうか?VBAは読解出来ますが?CやC++は判りますか?アセンブラはどうでしょう?中身をリバースエンジニアリングすることは確かに許されていませんがそれを出来る方はそうそういるものではありません。
アセンブラ等の広範な知識と膨大な作業が必要な筈です(多分)。貴方が言われているのは幼稚園児が「微積分ってどうするの?」って聞いているのと同じ位高いハードルの話しです。むしろ貴方が理解出来るプログラミング言語上でこそアルゴリズムは理解できます。言語自体から覚えていくレベルではなかなかアルゴリズムまで到達しませんから。もしVBAがわかるなら皆さんおっしゃる様にユーザー関数などで考えるのが近道でしょう。ネット上に公開されているのも多数あると思いますから。
No.4
- 回答日時:
>関数が実際のどのようにプログラムされているのかを見たいのです。
よろしくおねがいします。リバースエンジニアリングは禁止されているのでプログラムを見ることはできませんが、同じ働きをするようにマクロを組んではいかがでしょうか。
マクロであればプログラミングのソフトは不要です。
関数の動きをマクロで再現することで関数がどのように動いているかを理解できるようになりますよ。
No.2
- 回答日時:
ユーザー定義関数でネット検索したら
関数の作り方がわかります。
既存の関数は、リバースエンジニアリング
などをしない限り見ることは出来ないと思
いますし、公開もされてないと思います。
また、リバースエンジニアリング自体、
マイクロソフトは許可していないと思いま
す。
プログラムを知りたければ、地際便で勉強
するしかないと思いますよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) Excelで時間計算(負) 8 2023/02/26 05:47
- 統計学 統計分析とExcelに詳しい方、何卒よろしくお願いいたします。 6 2022/05/27 10:30
- Access(アクセス) Access2016でフォーム内にExcelの複数シートを 表示させるイメージで複数テーブルの デー 1 2022/11/25 15:30
- Excel(エクセル) Excel処理について、教えて下さい。 下記表は、サンプルです。(実際には千件以上あります) A列に 6 2023/03/16 18:21
- Excel(エクセル) Excel(エクセル)でフィルター抽出後、非表示の行を計算しないで、合計を算出する方法 【内容】 添 4 2023/01/30 17:17
- Excel(エクセル) 次のようなケースを関数で処理するには。。 5 2023/07/18 03:24
- Excel(エクセル) Excel関数教えてください!! Excelで勤怠集計をしているのですが、部署別に雇用形態ごとの月間 2 2022/10/21 23:06
- Excel(エクセル) Excelマクロの表示のExcel内をfindで検索 3 2022/06/15 20:07
- Excel(エクセル) 複数のExcelブックのシート1の内容を1つのExcelブックにコピー貼り付けたいのでvbaコードを 7 2023/02/10 23:20
- その他(IT・Webサービス) 高速処理可能な表計算ソフトについて ExcelやGoogleスプレッドシートのような表計算ソフトで、 2 2023/04/29 16:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PixivとかDMM(FANZA)みたいなサ...
-
C++Builder初心者の勉強法
-
VBAの勉強の仕方
-
c言語は独学で、どこまで出来ま...
-
PGに慣れず適応障害と診断され...
-
初歩からプログラミングを学ぶ...
-
プログラムと数学の融合
-
ExcelでのVisual Basicのプログ...
-
自作でプレステ対応ゲームは作...
-
「やさしいC」の次に読む本を探...
-
OpenGLで質問があります。
-
プログラミングを教えたいです...
-
楽しくて最高のプログラミング...
-
小学1年生の子です。塾に行かせ...
-
IT業界より楽に稼げる業界って...
-
C言語、C+、C++、C#の違い
-
VBSでDim、Private、Publicの違い
-
COBOLでのNOT = の AND条件
-
プログラムに書かれる"%"記号の...
-
HOLONついて教えてください。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラミングに触れて見たい
-
情報工学科にはパソコン知識が...
-
PixivとかDMM(FANZA)みたいなサ...
-
プログラマーになったきっかけ...
-
中卒がプログラマーとして生き...
-
「やさしいC」の次に読む本を探...
-
Win32APIは覚えて損する?
-
プログラミングの習得期間はど...
-
中学生 プログラマーになりた...
-
万年カレンダーのプログラムの...
-
ExcelでのVisual Basicのプログ...
-
C#の基本文法が詳しく書かれて...
-
オリジナルの占いサイトを作る...
-
今からWin32を勉強する意義
-
独学でプログラミングを習得す...
-
自作でプレステ対応ゲームは作...
-
VBAの勉強の仕方
-
プログラミングに 興味をもっ...
-
ゲームを作りたくてプログラミ...
-
変数・関数 メモリの関係 本...
おすすめ情報