- ベストアンサー
EXCELのiv以降
EXCEL2007で,excel97で作ったアドイン関数を使っています。 iv以降,そのアドインの組み込み関数が使えなくて困っています。 現状仕方なく複数行に分けていますが,とても面倒なのでできればそのままiv列以降もそのまま関数が使えるようにしたいのですが方法はありますでしょうか? 2007なので,SUMなどの一般の組み込み関数はきちんと表示されます。 ところがアドインの関数でiv列以降のセルを参照すると,参照した部分が#REFになってしまいます。 使っているアドインはxfunxというものです。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
今でもそういう書き方する人や、公開のサンプルもしばしばみかけるので、97のソースなら最大列数を「IV」や256で書いている可能性は高いでしょう。 バージョン依存の最大行数、列数は、本来、Rows.Count、Columns.Countを使うべきものです。
その他の回答 (2)
- masatsan
- ベストアンサー率15% (179/1159)
Excel97でやればよいことでは? 構造計算の一種みたいですね。 さわりをみましたが、構造計算やなら簡単に式も立てられるから自分で作るしかないのでは?
補足
97だと確かbit数の問題で256列までしか使えなかったような気が。。 2007だとそれが改善されてるという話を聞いたことがあったので何か設定いじれば解決するものだと思ってましたがそうでもないみたいですね。 自分で作るのはほとんどのものは一瞬でできますが、一部3次方程式を解く必要があったり膨大なリストから選択するものがあるので,わざわざ作る時間が面倒くさいので楽をしたいだけでした。
- keithin
- ベストアンサー率66% (5278/7941)
アドインの関数というのは,前任者がマクロのプログラムを手で書いて登録した物です。 改修するには,プログラムそのものを書き換える必要があります。あなたが,ご自分の手を動かして。 手順: ALT+F11を押してVBE画面を開く プロジェクトエクスプローラでアドインのブックを展開する アドインブックに登録されている標準モジュールをWクリックして function xfunx(… : end function などのように書かれている範囲を探し出す その内容を全てコピーして新しいご相談として貼り付け,状況を添えてどこをどう書き換えたらいいのか質問する 修正されたマクロをコピーし,元の部分に貼り付けて書き換える プロジェクトエクスプローラ上でアドインブックを選び,ファイルメニューから上書き保存する エクセルを再起動する。 #参考 人が書いて遺していったプログラムを,ブラックボックスのままこれからも使い続けるのがいいのか。 何を計算しなきゃならないのかキチンと理解して,ふつーに関数で(あなたが,自分で理解出来る数式で)計算する方法が無いか考える(質問して教えて貰う)のがいいのか。 もう一回考えてみて下さい。 #補足 プロジェクトエクスプローラ上でアドインのブックを開こうとしたときに,「ロックされています」のように出て開けない可能性もあります。 その場合は前任者がプロテクトを掛けているので,パスワードを聞いて開きます。聞けるなら,前任者に話して本人にプログラムを修正させた方が手っ取り早いですが,それも出来ないなら諦めるしかありません。
補足
質問の意図はEXCEL2007側の設定で何とかできるかどうかが知りたいだけでした。マクロ側の問題なら諦めます。 基本自分で作ってますが便利なので。中身はみれます(みずにブラックボックスとして使うのは怖すぎます^^;)がpassかかってて編集はできません(256という記述も特に見当たらず)。 FORTRANやC++などでGUI付きのFEMを自作するぐらいのスキルはあってほとんどの計算は自作プログラムをつかってて EXCELは普段使ってないのですが諸事情でEXCELで組むことを求められてて,もう使うこともないんで楽をしたかったですが諦めます。
お礼
2007側の問題じゃなくてマクロ側の問題でしたか。 面倒なので諦めることにします^^;