No.1ベストアンサー
- 回答日時:
エクセルファイルをアップロードした場合、顧客の環境にもエクセルが入っているのでしたら、そのファイルを顧客が見た場合ブラウザ内でエクセルが実行されますので、『機能する』はずです。
でも、ブラウザの種類だったり、OSの種類だったり色々と制約が発生します。で、普通のホームページみたいにしたいのであれば、JavaScriptとHTMLを使って、書き直さなければなりません。ただ、作り方はエクセルとはかなり異なります。セルの中に数式を書くというわけには行きません。
JavaScriptの話に入る前にHTMLのフォーム部品については理解しておいてください。その前提で話を進めます。結論から言うと、貴方の書いた式『((((A+350)/B)+0.999)*C)/1000』は完全に正しいJavaScriptです。
ただし、フォームのテキストフィールドから値を取ってこないといけません。テキストフィールドのidがそれぞれformA,formB,formCだとしたら、JavaScriptはこんな感じです。
A = document.getElementById("formA").value;
B = document.getElementById("formB").value;
C = document.getElementById("formC").value;
X = ((((A+350)/B)+0.999)*C)/1000;
こうすることによって、閲覧者がテキストフィールドに書き込んだ値を計算してXという変数に格納します。これをformXというテキストフィールドに書き込みたいのなら、その後に
document.getElementById("formX").value = X;
とすれば、計算結果が<input type="textfield" id="formX">となっているテキストフィールドに表示されます。
んで、表示されるタイミングですが、エクセルみたいに「書き込み終わったら、計算して表示する」と言うのがJavaScriptだと非常に難しいです。なので別途『計算する』ボタンを作って、ユーザがそれを押したタイミングで計算させるようにすれば良いと思います。
<input type="button" onclick="func();" value="見積もり開始">
適切な場所に上記のタグを入れればボタンが表示されます。このボタンはクリックしたらfuncという関数を呼びます。そこで先ほどのJavaScriptコードをfuncという名前(←実際の名前は何でも良いですが、ボタンのonclickで指定した名前と同じでなければいけません)の関数にしてしまいましょう。
function func(){
/* ここに上記のJavaScriptを書く */
}
これで、希望の動作が出来るはずです。
おまけ:
あとユーザが間違ってenterを押したときに変な動作をしないように<form>タグをちょこっといじっとくと良いと思います。
<form ~省略~ onsubmit="return false;">
この回答への補足
詳しい説明をありがとうございます。
function func(){
/*
document.getElementById("formA").value;
document.getElementById("formB").value;
document.getElementById("formC").value;
document.getElementById("formX").value = X;
X=((((A+350)/B)+0.999)*C)/1000;
*/
}
ここまでは<head>内に書き、
<input type="button" onclick="func();" value="見積もり開始">
は<body>内に書けばよろしいのでしょうか。
すみません、素人同然のものが無謀にも挑戦していますので。
以外にも { が無いとか */* が無いとか構文エラーです、とかいう警告がやたらと出るものですから。
ありがとうございました。
試行錯誤の結果、なんとか完成いたしました。
でも難しいものですね。
もっと勉強します、ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで上書き保存しないと反映...
-
エクセル0:00と表示される原因
-
エクセル COSθ の値
-
エクセルのカメラ機能を、700個...
-
エクセルで積分
-
アンダーバーの後の文字を大文...
-
エクセルとスプレッドシートの...
-
エクセルで作業時間数や残業時...
-
輝度を小数点で計算する理由(...
-
エクセル関数の大量利用
-
上書き保存をしないとデータの...
-
電卓は正しいのに エクセルで計...
-
gage R&R の計算
-
和洋菓子店です。各商品の原価...
-
ポール強度計算書ソフト
-
Excel
-
パワーポイントをエクセルファ...
-
エクセルで「500時間」を「何日...
-
【スプレドシート】IMPORTRANGE...
-
エクセルでファイルを閉じても...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで上書き保存しないと反映...
-
エクセル0:00と表示される原因
-
エクセルのカメラ機能を、700個...
-
gage R&R の計算
-
エクセルで作業時間数や残業時...
-
エクセルとスプレッドシートの...
-
アンダーバーの後の文字を大文...
-
電卓は正しいのに エクセルで計...
-
ポール強度計算書ソフト
-
エクセルを32ビットから64ビッ...
-
エクセルで積分
-
時刻の計算の仕方教えてくださ...
-
輝度を小数点で計算する理由(...
-
エクセルの式を一時的に止めて...
-
エクセル時間の大小
-
y=300x-1E-10
-
エクセルのSUM関数について
-
エクセルでの計算式をwebページ...
-
鉄筋関係のフリーソフトありま...
-
ASC関数が上手く出来ない!
おすすめ情報