• ベストアンサー

エクセルの使用方法についてご教示お願いします。例え

エクセルの使用方法についてご教示お願いします。例えばX1=1,Y1=2の値が入ったシートがあり、A1セルに=X1*Y1といった数式を入れます。当然A1セルには数字の2が表示されますが、A1セルに表示される数字と同じ数字をB1セルにそれもB1セルには=A1等の数式は一切設定せずに表示させる場合、どのような方法があるでしょうか?更にB1セルに表示させた数字はX1及び、Y1に設定された数値が消されても残るようにできれば最高です。

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

こんばんは! 質問を何度も読み返してみましたが、関数では難しいようです。 質問内容を極力忠実に再現できるようなコードにしてみました。 画面左下にある操作したいSheet見出し(Sheet1・Sheet2・・・)の部分で右クリック →  コードの表示 → VBE画面が出ますので、↓のコードをコピー&ペーストして X1・Y1のデータを色々変更してみてください。 尚、A1セルの数式はご自身で入れておいてください。 Private Sub Worksheet_Change(ByVal Target As Range) 'この行から 'X1・Y1セルのどちらかまたは両方にに空白があればマクロを実行しない '(A1セルに変更があってもB1セルはそのまま) If WorksheetFunction.CountBlank(Range("X1:Y1")) Then Exit Sub 'データ変更セルがX1またはY1セルであれば If Target.Row = 1 Then If Target.Column = 24 Or Target.Column = 25 Then 'B1セルはA1セルデータを! Range("B1") = Range("A1") End If End If End Sub 'この行まで こんな感じではどうでしょうか? ※ 質問に >更にB1セルに表示させた数字はX1及び、Y1に設定された数値が消されても残るようにできれば最高です とありますが、X1・Y1のデータ削除した場合は希望の動きになると思います。 「0」を入力した場合は削除ではないのでそのままの計算結果が表示されます。 以上、参考になれば良いのですが・・・m(_ _)m

OKpapaQA
質問者

お礼

親切ご丁寧なアドバイス本当にありがとうございます。 何度も読み返していただくなど貴重なお時間を割いてまで回答いただけましたこと心より感謝申し上げます。 言われるとおり入力して実際に使用してみたところ、思い描いた通りの動きが実現できました。あとは、教えていただいたマクロを自分なりに勉強を重ねアレンジして最終的な形の物に仕上げてみたいと思います。 本当にありがとうございました!

その他の回答 (5)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.6

>すなわち、X1とY1がどのような条件の時に値を『手』入力するのか、全くわかりません。 ここでいう「値を入力する」というのは手入力のことではなく、その前の説明にもあるように、マクロを実行してB1セルに値を入力する(自動的にマクロを走らせるトリガーになる)ということです。 すなわち、聞きたかったのは、X1とY1の値を変更したときにマクロを走らす(B1セルに入力する)なら、関数とまったく同じ結果になるので、X1とY1の値をどのように変更したときにマクロを実行させるのかを聞きたかったわけです。 いずれにしろ、そのような自動入力操作にしたい目的や、処理したいセル範囲などをもう少し具体的に例示されたほうが、皆さんからより的確な回答が寄せられると思います。

OKpapaQA
質問者

お礼

いろいろアドバイスいただきありがとうございました。 無事解決いたしました。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.4

>X1とY1にそれぞれ数値を入力した時に、その乗算値をA1にもB1にも表示したいのです。ただ、B1セルには"=A1"や"=X1*Y1"といった数式は入れずに行いたいのです。 この条件だと、X1とY1にデータを入力したときが、マクロを実行するとき(B1に値を入力するとき)になりますが、この条件では関数で入力した場合と全く同じことになります。 すなわち、X1とY1がどのような条件の時に値を入力するのか、全くわかりません。 実際のシートでこのような処理を行うケースは、個人的にはほとんどないと思うのですが、どのような目的でこのような操作がしたのか、もう少し具体的に説明されたほうが、皆さんからより的確な回答が得られると思います。

OKpapaQA
質問者

補足

>X1とY1がどのような条件の時に値を入力するのか全くわかりません んんん~、何と説明すればいいのでしょう。単なるキーボードからの手入力フィールドに(その入力されたデータと他のデータを使って様々な数値を算出します)、入力する為の条件が必要なのですか? 文書を読ませていただきますと、『(B1に値を入力するとき)』のように、私が使っている、『入力』の意味と、MackyNo1さんが使われている、『入力』の意味が違っているように思えますが・・・・。私が言う『入力』とは、手でキーボードから入力することを意味しています。 つまり、MackyNo1さんが書かれた文書を自分が書くと、 『この条件だと、X1とY1にデータを『手』入力したときがマクロを実行するとき(B1に値を『表示』するとき)になりますが、この条件では関数で入力した場合と全く同じことになります。すなわち、X1とY1がどのような条件の時に値を『手』入力するのか、全くわかりません。』 X1とY1への入力は、マクロや関数を実行した結果の入力ではなく、人が介在したマンマシンインターフェースでの手入力なので、入力する条件をあえて言うなら、『入力する必要が発生した時』としか言いようがありません。 申し訳ないです。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

質問者も当然お分かりのことだと思いますが、ご質問のことを実現するにはマクロを利用する必要があります。 ところで、B1セルにA1セルのデータをそのまま表示したいとのことですが、どの段階の(何を行ったときに)データを表示したいのでしょうか? いずれにしろ、ご希望の動作の目的がわからないので、皆さんもサンプルコードも提示しにくいと思います。 >何をやればいいのかわからない初心者でかつ、直ぐに対処方法を知りたいからこそ、ここに投稿し皆さんのご協力を仰いでいるつもりなんですがね マクロを実行した場合には、その結果が誤っていた場合でも、通常の入力とは異なり、Ctrl+Zキーなどで「元に戻す」操作ができません。 すなわち、データの途中経過が残りませんので、予期しないデータの変更があった場合には、重大な問題が発生する可能性があります。 また、皆さんから提示してもらったマクロを利用する場合にも、そのコードの内容を理解している必要があり、少なくとも自分で修正できる程度の最低限の知識は必要です。 ご質問の目的が良くわからないのですが、今回のケースでしたら、マクロを利用する場合でも、単純にそのセルをコピーして、そのまま形式を選択して「値」貼り付けするのが最も簡便な対応のように思います。

OKpapaQA
質問者

補足

お忙しいところ大変スミマセン。 >ところで、B1セルにA1セルのデータをそのまま表示したいとのことですが、どの段階の(何を行ったときに)データを表示したいのでしょうか? X1とY1にそれぞれ数値を入力した時に、その乗算値をA1にもB1にも表示したいのです。ただ、B1セルには"=A1"や"=X1*Y1"といった数式は入れずに行いたいのです。 >単純にそのセルをコピーして、そのまま形式を選択して「値」貼り付けするのが最も簡便な対応のように思います。 確かにその通りかと思います。また、そのやり方で実現できることもわかった上であえて質問させていただきました。と、言うのもその『コピーしてそのまま形式を選択して「値」貼り付け』をできる人間がそのシートを使用するなら何ら問題はないのですが(自分はできるつもりです)、使用する人間が70を超えた方であるため、なんとか煩わしい作業を行わずに見せることができないかと思い投稿させていただきました。でも、よくわかりました。マクロを使用しなければ実現不可能ということですね。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

初心者らしい質問ですが、VBAを勉強しないと対処できないでしょう。 もっと日頃エクセルを使うと同時に、エクセルの関数の本質(エッセンス、解説書には判るものとして改めては書いてないことが多い)を勉強してください。そうすれば関数を頭に置いたこういう質問(考え・要望)は、lしなくなるはずです。 >A1等の数式は一切設定せずに表示させる場合、 どんなことを考えていっているのか。何も(関数、操作、VBAなど)しなければ、セルの値が変わるはずが無いではないですか。 >更にB1セルに表示させた数字はX1及び、Y1に設定された数値が消されても残るよう・・ ここの部分だけ採り上げたなら、操作で、このセルに形式を選択して貼り付けで、値を貼り付ければ、式は消えて値だけ残ります。

OKpapaQA
質問者

補足

厳しいご意見ありがとうございます。確かにおっしゃるとおりです。自分は勉強不足だと思います。ただ、それを言い出すとここのサイトの存在意義がなくなりませんか?何をやればいいのかわからない初心者でかつ、直ぐに対処方法を知りたいからこそ、ここに投稿し皆さんのご協力を仰いでいるつもりなんですがね~(^^ゞ一歩ずつですが勉強はしています。ただ、要求のスピードに追いつかない分をこのサイトで補わせていただきたいと思っている次第です。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

自動で行いたい場合は、マクロ(VBA)組み込みになります。 手動でも良い場合、A1をコピー→B1に形式を選択して貼り付け→値を選択→OKの操作になります。

OKpapaQA
質問者

お礼

早々の回答ありがとうございます。 マクロVBAの作成はかなり難しいものでしょうか?

関連するQ&A

  • エクセルの使用方法

    エクセルの使用方法で質問があります。 1.あるA列10行に数式が入力されています。その数式はA列9行+B列10行の値です。B列10行に数値を入力する時、C列10行には日付を入力しています。このままだと、B列、C列に何も入力されていない行でも、A列だけは、延々と数値が表示されてしいます。できれば、B or C列に入力していない時は、A列の表示を空白にすることはできないでしょうか? 2.上記のようにA列には、数値が入っており、何行目まで数値があるのかは、B列、C列次第です。この状態で、A列の一番下の行のセルの数値を、固定したセルに表示させる方法はないでしょうか? ただこのシートは複数個作成し、あるシートでは、10行目が一番下だったり、あるシートでは25行目が一番下だったりする条件になります。 またB列にはマイナスの数値も入るので必ずしも行が増える程、A列の値が大きいわけではありません。 3.C列の日付ですが、たとえば「2009/8/8」と入力したら、「2008.8.8」と半角で表示するようにしてるのですが、これを「2008.08.08」と半角で表示する方法はないでしょうか? 4.エクセルで時々、あるセルの左上端が緑色になり<!>と表示されています。この<!>を押すと、いろいろコメントがでてくるのですが、エラーを無視するを選ぶと、消えます。一体これは何なんでしょうか? 出ないようにする方法はないでしょうか? 以上の件、どれでもよいのでご回答くださいますようお願います。

  • エクセルの作表について

    普通、数式が入っているセルに数字を入力すると、数式が無視されて入力した数字が表示されますが、セルに入力した時にその数字×3,000等の値を表示させることは可能でしょうか? 例えば、A1に3,000、B1に2,500、C1に4,000と入力している場合、A2に3と入力すればA2が9,000、B2に5と入力すればB2が12,500、C2に10と入力すればC2が40,000という感じです。

  • エクセル 0:30 を整数の 30 に置き換える方法

    -------------------------------- A B C 1 start end lap 2 10:30 11:00 0:30 *C2の数式  =b2-a2 *C2のセルの表示形式  [h]:mm --------------------------------  上記のエクセルワークシートにおいて  C2で得た 0:30 という値を 整数の 30 に変える方法はありませんでしょうか。  0:30 は30分を表していて、それを整数 の 30 という数値に置き換えたいという 意味です。

  • Excel 数式保護のやり方

    Excelで、シートに数式がたくさん入っています。 Aのシートの、ある一箇所のセルに数字を入れると、 Bのシートから その数字の列の情報を引き出し、 Aシートの各セルに表示する仕組みにしてます。 Aシートは、その一箇所のセル以外は全て数式なので 触れないようにしたいのです。 1つのセル以外を保護で固める方法を教えてください。

  • EXCELの書式設定、表示形式について

    よく使っているエクセルの同一のシート上の異なるセル同士なのですが、同じ数値でもそれぞれのセルで違う表示形式で表示されてしまい困っています。具体的には、計算結果が"0"となったときの表示形式なのですが、 A3セルには"=A1-A2"のように入っていて、赤字で"-0"と表示されます。 B3セルには"=B1-B2"のように入っていて、黒字で"0"と表示されます。 A3,B3どちらも表示形式の書式設定は数値で"-1234"(赤字)の設定になっています。 正確には、その参照先のセル(A1やB2など)もさらに別のセルを参照していたり、数式が入っていたりですが、同様の症状が出て解決された方などいませんでしょうか。 ちなみに、A3,B3ともに直接数字の"0"を入れればそのまま黒字で"0"が表示されるので、そのセルの書式設定の問題ではなく、数式の参照先のセルの方などの影響ではないかと考えています。 何か解決の手がかり等ありましたらご教授願います。

  • エクセルで、値が飛んでこないのは?

    エクセルで、シートからシートへ値をとばすように設定しているのに値が入力されません。例: シートAのセル1の値をシートBのセルへ飛ばすとき、Bシートのセルの数式は ”+A!A1”となりますが、A1の値が飛んできません。F2を押してENTERキーを押すと飛んできます。たくさんのシートがあるので、大変です。どうしたらいいですか?

  • エクセルについて質問です。

    ユーザーフォームの使い方で、テキストボックスやコンボボックスのControlSourceを,フォームを開いたのとは別のシートのセルにあてたいんですけど、できますか? 同様に、コンボボックスのRowSourceのリストも、別のシートの値を拾いたいんです。 具体的に言えば、ユーザーフォームを開くのは、常に「Sheet1」であって、入力した内容を表示するのは「Sheet2」なのです。 コンボボックスのリストは本当は、「Sheet3」の値を拾いたいのです。 今はよくわからないので、全部「Sheet1」にリンク(?)させて、値を取得させるようにしてます。 それと、セルの数式の中に別のセルの数値を代入できますか? 例えば、あるセルの数式が「=Sheet2!A4」だとしましょう。 この場合の「Sheet2」の「2」に、例えば、ある別のセルの値を代入して、 「=Sheet3!A4」とかにしたいのです。 つまり「=Sheet”A1”!A4」みたいにして、「A1」のセルの値が 「2」、「3」に変われば元の数式も変わる、みたいに。 同じように、セルの範囲につけた名前や、リンクするファイルの名前も数式の変数に入れられるのでしょうか? とりあえず、セルの数式の中に、別のセルの値を”文字”や”数値”として入れたいのです。 ちょっと説明がわかりにくいかもしれないけど、教えて下さい。

  • Excelの条件付き書式、直接入力と参照した数値は違う?

    Excelの条件付き書式、直接入力と参照した数値は違う? Sheet1のA1セルの数値を Sheet2のA1セルが「=IF(Sheet1!A1="","",Sheet1!A1)」という数式で参照しています。 数値に、「%以上」という文字列を追加したいので、 Sheet2のA1セルの書式設定を、ユーザー定義で「0"%""以""上"」としています。 Sheet1のA1セルに数値を入力 → Sheet2のA1セルが参照 → ユーザー定義で「○%以上」と表示させる。 ・・・ここまでは簡単にできました。 さらに、数値が表示されたときにセルの色を赤くしようと、 条件付き書式で、 「セルの値が 次の値以上 0」 と設定したのですが、入力が無くても赤いままになってしまいます。 設定を、 「セルの値が 次の値以上 ="0"」とか、 「セルの値が 次の値より大きい 0」とか、 いろいろとやってみましたがどうしてもうまくいきません。 参照ではなく、セルに直接入力するのであればこれでうまくいっていましたので、簡単に出来るものだと思っていたのですが、 これはたぶん、私が根本的なことをわかっていないのだと思います。 ご教授頂けましたら助かります。

  • EXCELで

    いつもお世話になります。 EXCELで次のようなことをしたいのですが、教えてください。 例 A1~A60セルに1~60の数字がランダムに入ります。 E1~E60セルにそれぞれ違った数式が入っています。 BセルにAセルに入れた数字のEセルの数式を使った計算結果を表示したいのです。 B1=E(A1の値)の数式を使った計算結果 どなたか宜しくお願いします。

  • エクセルで

    エクセルについてお伺いします。例えばセルA1に10%、A2に20%のパーセンテージで入力された値は合計は出せないのでしょうか。SUM関数で出すとエラーが出てしまいます。それと、数式を入力したセルの数値の値の合計も出ないのでしょうか。例えばあるセルに=A1+B1,もう一方のセルにA2+B2と入力されていてそれぞれ数値が5と4とします。合計9を出したいのですが、数式のためSUM関数では合計できません。何か方法はありますか。

専門家に質問してみよう