
Excel を、私が見たことのあるオンライン計算機のような機能にできるかどうか知りたいです。例:
主な違いは、計算機内の各「セル」が、そこに値が入力されているかどうかを認識するように設計されていることです。その後、他のセルとの機能的な関係に応じて、条件付きで値が計算されます (またはそうではありません)。
これは「計算」ボタンを使用しますが、Excel スタイルのライブ更新の例もあり、値がまだ十分でない場合や矛盾する値がある場合は通常その旨が表示されますが、これは必須の機能ではありません (まだ)。
私は条件付きでExcelに同様のものを実装しようとしましたが、セルのロジックが複雑になりすぎていることがわかりました。速い私の場合は、解決しようとしているシステム (上記のシステムではない) の値は、入力のさまざまなサブセットから計算できるため、役に立ちません。つまり、「過剰定義」されていると言えるかもしれません。
Excel には、このスタイルのインターフェースをすばやく簡単に構築できるオプションまたはモードがありますか?
あるいは、同様のものを構築した人がいて、そのコツを共有してくれるでしょうか?
それは単に私自身の生産性のため(そして、他の人たちの生産性のためでもあるといいのですが!)であり、オンライン化することは期待していません...
答え1
これは、VBを使用してExcelワークシートで次のように実行できます。
立方体の体積は長さ×幅×高さであることがわかっています。
そのために計算機を作ってみましょう:
3つ与えられたら、4番目の値を見つける必要がある
Excel ワークシートを作成する
A1、A2、A3に長さ、幅、高さを入力します。A4は空白のままにします。A5に体積を入力します。
次に、ツール バーを使用してボタンを作成し、ボタンを右クリックしてテキストを「 CALCULATE 」に変更し、ボタンに必要な名前を付けます。
次に、ボタンを右クリックして、このボタンにマクロを割り当て、次のようにボタンクリック時のコマンドを作成します。
Sub Button1_Click()
If Range("B1").Value = 0
Then Range("B1").Value = Range("B5").Value / Range("B3").Value / Range("B2").Value
If Range("B2").Value = 0
Then Range("B2").Value = Range("B5").Value / Range("B1").Value / Range("B3").Value
If Range("B3").Value = 0
Then Range("B3").Value = Range("B5").Value / Range("B2").Value / Range("B1").Value
If Range("B5").Value = 0
Then Range("B5").Value = Range("B1").Value * Range("B2").Value * Range("B3").Value
End Sub
答え2
ご存知のとおり、ワークシートのセルでこれを行うのは少し難しい場合があります。
しかし、VBA を使用すると、これを非常に簡単に実行できます。コードは Worksheet_Change イベントに含めることができ、4 つのセルのいずれかが変更されるたびに実行されるように設定できます。
ロジックは簡単です。ちょうど 3 つのセルに値がある場合は、どのセルが空であるかを判断し、計算を実行して結果をそのセルに入力します。