ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Excel(エクセル)活用コミュの配列を含む式を文字列で管理したい

  • mixiチェック
  • このエントリーをはてなブックマークに追加
いつもお世話になってます。

Function Eval(Args As String)
  Eval = Application.Evaluate(Args)
End Function

結論から言うとトピ立ての前に検索したり色々試したりして
上記の自作関数(ユーザー定義関数)で解決してしまいました。

なので報告トピみたいなものです。
もし何かありましたらコメントよろしくお願いします。
(例えばワークシート関数だけでも可能、とか ^^)
エクセル2000ウィンドウズXPです。

****

セル名や名前定義などを文字列で表しておいてから
それを参照するにはINDIRECT関数がとても便利ですが、
配列を表す文字列を引数にすることは出来ないようです。

A1= 23.460
(A1の名前定義「PC」)
A5= 'PC*-{0;0;0;0;1;1;1;1;0;0;0;0}/4

のとき
{C1:C12=} {=A1*-{0;0;0;0;1;1;1;1;0;0;0;0}/4}
{D1:D12=} {=PC*-{0;0;0;0;1;1;1;1;0;0;0;0}/4}
{E1:E12=} {=INDIRECT(A5)} ←結果は「#REF!」エラー
{F1:F12=} {=eval(A5)} ←C列、D列の結果と同じ

(実際は「,」区切りにして必要に応じてtransposeを使う予定です ^^;)
****

「Application.Evaluate」を知る前には、
配列変数の定義方法などを検索で調べて
「Selection.FormulaArray」でセルに配列を代入できること
「Split(〜, ",")」で文字列を配列に分けること
も分かりました。

でも配列だけならともかく配列を含む式となると
どうやっていいか想像もつきません。

Perl言語か何かでeval関数があったのを思い出して探してみたら
エクセルにも似たようなのがある事が分かって、
使ってみたらうまくいった次第です。

コメント(0)

mixiユーザー
ログインしてコメントしよう!

Excel(エクセル)活用 更新情報

Excel(エクセル)活用のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。