Hobby::Excelの最近のブログ記事

前の10件 1  2  3  4  5  6  7  8  9

Excelアドイン評価完了

| コメント(0) | トラックバック(0)

円周率を追加したアドインの評価を完了。

あとはドキュメントだけ。

鋭意執筆中。

公開されるのは来週・・・かな。

んー、おまけにいくつか関数ぶち込んであるんで、ぜひレジストして全関数を使ってほしいのだけどなぁ。

というのはさておき、現在公開中の0.7.1にもある問題が解決できていない。

またまた困る

| コメント(0) | トラックバック(0)

そして、アドインを登録しようとして、重大なエラーとやらが出る。

Heap blockなんとか~ってエラーだとわかり、解放時のエラーらしいというのは分かったのだが、デバッグモードでトラップするのは、非常に困難。

  • Excelにあらかじめアドイン(ちゃんと登録できるやつ)を設定しておく
  • デバッグビルド物件に置換
  • VSデバッグモードでExcelを起動(アドインを引数にしない)
  • 操作等を実施
  • 例外ダイアログが出たら、デバッグでコードが出るところまで何度かボタンをクリック

これで、何とか原因を突き止めることができる。

今回の問題は、デバッグ実行時の引数にアドインを指定してると呼び出されない関数にあったので、はじめはわけが分からなかった。
#現在リリースされているものとは違うコードです。

こういう手法に気付くまでが大変だけど、コードや呼び出し履歴を掴めれば、どこの何が原因かを判別するのが容易になる。

予告の変更

| コメント(0) | トラックバック(0)

ま、気にする人はいないだろうけど、メモがてら。

  • 絶対値・・・実装。
  • 円周率・・・実装。
  • SQRTPI相当・・・実装延期。
  • 桁指定・・・実装延期。
  • SUM系・・・実装延期。
  • 数値化・・・追加実装。

ま、こんなところか。

円周率は出せているし、絶対値も現状用意済みの内部関数を呼ぶだけ。
あとは数値化だが、これも何とかなったっぽいので、これで、出せる・・・と思うのだが、デバッグモードで実行すると、例外がボロボロ出るところがあるので、原因を調べてからにしたい。

数値化はとても便利かも知れない。
#現状、Excelには255文字以上の数値文字列を数値化する関数が無い。

64bit版もできるんだけど、これは要望か何かがあるなら考えるけど、メジャーバージョンアップまで非公開の予定。

パイ出た!

| コメント(0) | トラックバック(0)

と、声に出して言いたい。

パイと言っても円周率(π)ですが。

いや~、スタティックライブラリのリソースからロードするのって、結構難しいですね。

あと、ちょっとリソースファイルの編集について、インクルードを処理するのは、リソースビューで開いて、「リソースファイルのインクルード」でやると簡単だったことをメモしておく。

で、πですが、こんな感じ。

しかし、もし、仕様ならば、仕方ないし、そうじゃなくても、現状そうならばそうで対処するしかない。
#回避策があるのならば、それに頼る。
##回避策が無いのに、不具合を仕様と言っちゃう(再起動したところで、再現を繰り返すだけ)のは愚かなだけだが。

とりあえず、関数の説明は同梱のPDFにお任せしちゃうことで、無しにすることは不可能ではないので、それで対応してみる。

さて、円周率3万桁、ちゃんと出るかはこれから確認。

まさかそんな仕様?

| コメント(0) | トラックバック(0)

例のXLLSDKをやっと取り込んだんだけど、やはり引数なしでうまくいかない。

サンプルだと引数なし関数の登録がうまくいくのかと思っていたのだけれど、試しに関数の説明まで出そうとしたところ、引数ありになってしまうことが分かった。

関数の説明を端折ると、引数なしとして登録できる。

これは誰のせいなのか、全く分からないのだけれど、Excelのせい?なのか・・・よくわからん。

とりあえず、Excel2003でも2010でも挙動が同じだったこと、VS2008でもVS2010でも結果は変わらなかったことをメモとして残しておく。

いやはや、さて、困ったぞ。
読んでもこのあたり書いてないんだよなぁ・・・

あと、文字列(関数の説明以降)の最後1文字が切れるのも俺のせいじゃないらしい。
そういえば、引数なし関数がうまく登録できないとき、関数の引数んとこに空白1文字入ってるっぽいんだよね。
余分な1文字と無くなる1文字で辻褄は合ってるのか・・・?

んー、英語版Excelで試してみるか・・・

思わぬ苦戦

| コメント(0) | トラックバック(0)

超長文字列のリソース埋め込みができそうなので、Excelのアドインで円周率を3万桁ほど返してみようとしたところ、とんでもないところで躓くことになった。
#悩みまくりのお手上げ。

なんと、引数なし関数の登録ができないのだ。

なぜ、できないのかは、よくわかっていない。
SDKのサンプルではいとも簡単に登録できているし、引数ありなら問題ないのに、引数なしになった途端に破綻する。
#途端破綻、ドタンバタン。

ま、いい機会だから、気になってたところを直しつつ、VS2010に移行して、メモリ使用効率もあげちゃおうかと考え中。
#計算部分には手を入れないつもりなので、高速化はできないと思う。
かなり手間だけど。

同時に64bit対応化も。

非同期関数ですと?

| コメント(0) | トラックバック(0)

昨日の記事で、発見したXLLSDKのヘルプドキュメントをちらっと見たところ、非同期関数を定義できるとか。

長時間掛処理でExcel無応答になることが、これで防げるのかどうか、どちらにしろ、Excel2010の新機能だと思われる。

長時間処理といえば、HyperLong系の処理なのだが、これ、非同期にしたら、実行時間は変わらなくても、処理的に軽くなるかも知れない。
やってみる価値はありそうだ。

 

64bitExcelで動いた

| コメント(0) | トラックバック(0)

過去記事の誤り。

「署名があるとか無いとか、そんなことはどうだっていいんです」という結論。

やってみることは大事だね。
ただ、まだ、「動いた」というレベルだけれども。

とりあえず、Excel4系関数を排除して、Excel12系関数(SDKだと、_WIN64定義時に呼べないようになってるのを解除)のみにして、x64ターゲットでコンパイル。

すると、登録もできるし、関数も呼べる。
手放しで喜ぶのは構造体のアラインメントを詳しく確認してからなのだが、とりあえず、Excel2007と同程度のことはできそう。
それ以上の何かを期待できるかも知れないのだが、まずは、そこから。

・・・と、少し満足してたら、こんなものが!!
出てるなら出てるって教えておくれよ!!!<いや、無理。

仕方ない、中身調べてみるか・・・

Addin for Excel 95-2007 Basic EditionのVer0.7.1を公開した。

せっかくコンピュータ使ってんだから、有効桁なんてケチなこと言わず、どーんと数百~数万桁使っちゃえ的に加減乗除+開根+比較までできるってことは、100円電卓レベルの操作を多桁で実現できちゃったってことだ。
開根には時間掛るけど、100円電卓では得られない精度。
互換関数使えば互換性と処理速度と精度のいいとこ取り。

是非使ってみて欲しい。

前の10件 1  2  3  4  5  6  7  8  9

サイトカウンタ

Total: 211,632 Hits, (Recent24Hours: 0 Hits)
~ Since 2010/01 ~

埋め込みツイッター

取得失敗;;
Now: 2024/04/26 22:00:59 JST

このアーカイブについて

このページには、過去に書かれたブログ記事のうちHobby::Excelカテゴリに属しているものが含まれています。

前のカテゴリはHobby::C++です。

次のカテゴリはHobby::MSDNです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

月別 アーカイブ

2024年2月

 日   月   火   水   木   金   土 
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29    

埋め込みQRコード