• ベストアンサー

エクセルで税込み額に変換したい

会社で売上実績計画表を作成しています。 元は人が作った今年の表を私が来年用に修正して作りたいのですが、 入力してある数値が「税抜き額」「税込み額」と混じってしまっています。 その表は、今後の実績の数値の入力をエクセル初心者の上司がするため、以下のことをしたいと依頼されました。 (といっても私も初級程度しか解りません~。関数できません~) (1) 「A1」のセルに100と入力すると、「A1」のセルで5%自動的に上乗せして105と計算表示させることは可能でしょうか? (2) また 「A20」には「A1」「A5」「A10」「A15」の合計を出したいのですが、そこは税抜き額で出したいのです。 ということは、もし(1)の変換が可能でも、ここでは元の数値で足した結果を表示するということになります。 これも可能でしょうか? 夫がエクセルに詳しい友人に(1)を電話で聞いてくれたのですが、 できなくはないが複雑な設定になって操作手順も元数値の確認作業がいるようになると思うので、おススメできないとのこと。 やっぱり無理な設定なんでしょうか。念のためここで質問させていただきます。よろしくお願いします。

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

  • ベストアンサー
  • vbafriend
  • ベストアンサー率47% (17/36)
回答No.3

早速の補足有難うございます。サンプルマクロと数式を組み合わせて貴方様のおやりになりたいことを実現させてみました。次のように操作して下さい。 ・新規ブックを立ち上げ、ALT+F11を押してVBE画面を表示させ、画面左上にVBAProjectと書かれている下のSheet1にマウスポインターをあわせてダブルクリックし、表示された右側の白い部分に下記のコードをコピー&ペーストする。 Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False Select Case Target.Address Case "$A$1", "$A$5", "$A$10", "$A$15" Target.Value = Val(Target.Value) * 1.05 End Select Application.EnableEvents = True End Sub ・ALT+F11を再度押してエクセルの画面にもどり、A20に下の数式を入力する。 =A1/1.05+A5/1.05+A10/1.05+A15/1.05 ・操作方法 シート1のA1・A5・A10・A15に適当な数値を入力してみる。 貴方様の思い通りの動作を体験していただけると思います。 なお、修正したい時は、すごく簡単です。 Select Case Target.Address Case "$A$1", "$A$5", "$A$10", "$A$15"←ここの部分にセル番地を入れる Target.Value = Val(Target.Value) * 1.05 End Select Application.EnableEvents = True End Select これだけしか修正するところはありません。 ご不明な点・不具合がございましたらお気軽に補足して下さい。

hennsyuucyou
質問者

お礼

ありがとうございます! そのとうりにやってみましたら、できました!! が! 一度終了させて、もう一回ファイルを開こうとしたらマクロセキュリティが働き、マクロを無効にしてしまいました。ヘルプを見たら、セキュリティレベルを「低」にすればよい事が分かりましたが、それも大変不安に感じられます。考えてみれば、見ず知らずの方のプログラムを使うというのは危険な行為なのかもしれないと思い、大変失礼かと思いましたが、vbafriend様の過去の回答をいろいろ拝見させていただきました。別名も含めて300件以上の回答されている小児科医で教育者の方だということが分かりました。そこでvbafriend様を信用してお伺いします。 (すいませんエクセルレベルが低いので)普通、このセキュリティレベルは皆さんどうされてるのでしょうか? 自分のプログラムを入れるのだったら問題ないから「低」レベルにしているのか、「デジタル署名」というのを登録して使っているのでしょうか? ウィルス対策ソフトは入れてあります。 また「低」にしたら、そのファイルに対してだけそうなるのか、そのパソコンのエクセルファイルみんなその設定になってしまうのでしょうか。 これを会社に持ってて使うので、やはり「低」レベルにしてしまうのは抵抗があります。他の支店とシステムや社内メールでつながっているし‥‥。 私が「デジタル署名」を登録して、そのファイルをフロッピーでコピーするつもりなのですが、そうしたら会社のパソコンでももう1回「デジタル署名」登録する必要が出てきますか。 すみません。お忙しいでしょうに‥‥。よろしくお願いします。

その他の回答 (4)

  • vbafriend
  • ベストアンサー率47% (17/36)
回答No.5

すみません。間違えて回答ボタンを押してしまいました。 私が想像するには、マクロを含んでいるブックを開くとまず最初に「マクロを無効にする」「マクロを有効にする」「詳細」とかかれた3つのボタンを含んだメッセージボックスが表示されますが、このマクロを無効にするというボタンを押したためにマクロが無効になってしまったのではないでしょうか。この時、マクロを有効にするというボタンをクリックすれば他のところをいじらずにマクロを実行できるかと思います。 もしこの方法で回避できない時は、マイクロソフトのサポートセンターにお聞きになってみることをお勧めいたします。

hennsyuucyou
質問者

お礼

早速の回答ありがとうございます! 最初に出てきたメッセージは「このブックにあるマクロは、セキュリティレベルが高に設定されており、デジタル署名されていないか、または安全なものとして確認されていないため利用できません。マクロは実行するには署名するか、またはセキュリティレベルを変更する必要があります。詳細についてはヘルプを参照してください」と出て、「OK」と「ヘルプ」の二つのボタンが出てきます。「OK」をクイックしたらマクロが無効になってしまいましたが、1回閉じてもう1度開いたら同じメッセージが出たので、完全にマクロがボツになったわけではないようです。 試しにセキュリティレベルを低にしたら何のメッセージも出ずに使えました。次にレベルを中にしたら、vbafriend様のいうとおりのメッセージが出て、マクロを有効にするというボタンをクイックしたらちゃんと使えました。中レベルなら、安心かな?と思いましたので、それでやるか、デジタル署名するというのも試しにやってみようと思います。 ちなみにファイルをふたつ作って実験したのですが、一つのレベルを変えると、もうひとつもそのレベルになってしまいました。 やはり会社のパソコンでやる時は、デジタル署名に挑戦してみてみます。できなかったら中レベルにしてやろうと思います。 いろいろありがとうございました!!

hennsyuucyou
質問者

補足

結局、デジタル署名のやり方がよくわからなかったのですが、会社のパソコンのエクセルは元々レベルが中に設定されていたので、そのまま使用することができました。 ありがとうございました!! おさわがせしました?! ちなみに友人に訊いたところ、エクセルのバージョンにより、セキュリティレベルの設定がないものもあるそうです。てことは、そんなにレベルに神経質になることもないのかもしれませんね。一応、中レベルで使うようにはしますが‥‥。

  • vbafriend
  • ベストアンサー率47% (17/36)
回答No.4

早速の補足有難うございます。 私は、今迄300以上のマクロを組んできましたが、貴方様の体験されたようなことは一度も経験したことがありませんので、貴方様のご質問にはお答えすることが出来ません。実力不足をお許し下さい。

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

A1セルに=a1*1.05と言う式を入れられません。 別に列1つ目立たない列(S列と仮定)を設け、そこに入力し、A列A1セルに=S1*1.05と入れれば可能なことはご存知でしょう。自分のセルの値を使って何倍かとかを演算し、自分のセルへ直ちに納めることは出来ないのです。(#1で回答されようとしていると思われる)VBA(プログラムを組む)なら出来ますが、にわかには修正要領を学習できないと思われるので、だれか回りに、心得のある人が必要でしょう。計画表のように会社独自の採用項目やデータを使い、修正が頻繁にあり得そうなものには、ブラックボックス的なワークシートがあることはどうでしょうか。 税抜き列を余分に作れば、その合計は出して持ってくるのはたやすいことですよね。 同じようなものですが、別シートSheet2のA1に消費税抜きのデータを入力し、もとのA1セルに1.05倍を持ってくるのは、A1セルに=Sheet2!A1とすれば可能です。

hennsyuucyou
質問者

お礼

No.1の方に返信しているうちに次の回答が!! ありがとうございます! 私のレベルは低いので、おおよそのことしか理解できないのですが、自分のセルの値を使って演算して自分のセルに戻すのは、やはりできないのですね。 No.1の方は特別にプログラムしてくれるってことですよね。 それだと後で修正が難しいので、別の方法を教えてくださったのですね。 税抜き列を余分に作るのはダメらしいので、別のシートで入力する方法で考えてみます。 そのやり方と、特別プログラムと両方のやり方で作って、最終的に上司に提出するのはどっちか、よく考えさせていただきます。(上司本人に選ばせるかも‥‥しれませんが) すみませんです~

  • vbafriend
  • ベストアンサー率47% (17/36)
回答No.1

初めまして。貴方様のおやりになりたいことは、マクロを組めば簡単に実行することが出来ます。コードをコピー&ペーストするだけで、思い通りの動作をするサンプルマクロを、私でよろしければ組んでみたいと思います。 ご希望の節は、次のことを教えて下さい。 ・A1のセルに100と入力すると自動的にA1の値が105になるということでよいのか。 ・A5・A10・A15のセルは、衆力したままの数値を表示すればよいのか。それとも自動的に5%上乗せした値を表示するのか。 お手数をおかけいたしますが、よろしくお願いいたします。

hennsyuucyou
質問者

お礼

さっそくの回答ありがとうございます!! できるのですね!よかった! でも「マクロ」って聞いたことあるけどわからない‥‥。組んでいただいたのをコピー&貼り付けするだけでいいんですね。 こちらこそお手数をおかけします!! ・A1のセルに100と入力すると自動的にA1の値が105になるということでよいのか そのとうりです。と思ったけど、セルの中は自動的に上乗せした105になって、上のツールバーのとこ(何という名前かわかりません、すみません)の表示が元の100のままに表示できるのだったらわかりやすくていいかなとも思います。日付入力なんかは、セルの中と上のとこが違うふうに表示されますよね? でもかえって分かりにくかったり、できなかったらいいです。  A5・A10・A15のセルもA1と同じように表示したいのですが。 よろしくお願いいたします。

関連するQ&A