おいふぉりーのぶろぐ

きっと趣味のブログに違いないです!!

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

[Excel tips]セルに数式を書いて計算させる。

タイトルを見ると、あたりまえじゃないかという思うかも知れませんが…
何がしたいのかというと

A
1x+2

というように、セルA1にxの文字式を書いてそれを、他のセルで計算するときに使いたいのです。

やり方ですが、こんなマクロを書きます↓(マクロについてはこの辺に記事が)
第一引数(数式文字列)に含まれる第二引数(変数文字列)を第三引数(変数の代入値)で置換した後、評価するという非常に単純な関数です。

Public Function calc1(funcStr As String, varName1 As String, var1 As Variant) As Variant
  Dim replacedFuncStr As String
  
  replacedFuncStr = Replace(funcStr, varName1, Str(var1))
  calc1 = Evaluate(replacedFuncStr)
End Function

ワークシートのほうはこんな感じに書きます↓

ABC
1x+23=calc1(A1,"x",B1)

計算されたワークシートは

ABC
1x+235

となります。データ整理で同じ数式を使いまわしたいときに、使ってみてください。
ちなみに、変数が二つの数式を使いたいときは、こん風にします↓

Public Function calc2(funcStr As String, varName1 As String, var1 As Variant, _
  varName2 As String, var2 As Variant) As Variant
  Dim replacedFuncStr As String
  
  replacedFuncStr = Replace(funcStr, varName1, Str(var1))
  replacedFuncStr = Replace(replacedFuncStr, varName2, Str(var2))
  calc2 = Evaluate(replacedFuncStr)
End Function


P.S.
単純に "x" を置換だと数式中の関数名に "x" が含まれていた場合まずいですね。
単語単位で置換しなければ・・・、後で改良しましょうか。
スポンサーサイト
  1. 2008/11/09(日) 08:46:56|
  2. ソフトウェアTips
  3. | トラックバック:0
  4. | コメント:2

来客数

プロフィール

Euphorie

Author:Euphorie
"おいふぉりー"って呼んでくださいな☆
ハードウェアとかソフトウェアとかの開発に興味があったり。。。
連絡先は上の画像。

最近の記事

最近のコメント

最近のトラックバック

月別アーカイブ

カテゴリー

ブロとも申請フォーム

この人とブロともになる

ブログ内検索

RSSフィード

リンク

このブログをリンクに追加する

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。