- ベストアンサー
Excelで計算式が無いのに計算ができる!?
インターネットで個人の方が公開しているエクセルのワークシートをダウンロードしてきました。勤務時間を計算するものなのですが、それをアレンジして自分流に使いたいと考えているのですが、どこを見ても計算式が入力されていないのに、所定位置に出社時間・退社時間を入力すると実勤務時間が計算されて表示されているんです。 そこで ・どうしたらこういったことが可能なのか ・実際に使われている計算式を見ることは可能なのか を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
通常の手段で、マクロを使用しない方法として セルの書式で保護の項目を「ロック」「表示しない」にチェックして、ツール→保護で「シート保護」の設定をすれば、計算式は見えません。 また、入力シートと計算シートを別に作り、計算シートを「非表示」に設定することも可能です。 ツール→保護とたどって、保護の解除でパスワードの入力を求められなければ、アレンジ可能ですが、作成者の意図に添わない改ざんを許可しないようパスワードを設定していることは考えられますね。 いずれにせよ、自身で使われる分には、多少のアレンジは可能かと思いますが、ファイルの再配布などは行わないよう配慮が必要です。
その他の回答 (2)
- nishi6
- ベストアンサー率67% (869/1280)
>どうしたらこういったことが可能なのか マクロを作って、セルの値が変わったら計算して該当のセルにかき出すことで可能です。 例えば、下記マクロは、A、B列に数値を入力したら、A列セル-B列セルをC列に書き出します。(Sheet1を使用) ツール→マクロ→Visual Basic Editor でVBE画面に移り、Sheet1のコードウインドウに貼り付けます。 >実際に使われている計算式を見ることは可能なのか VBE画面に移り、プロジェクトエクスプローラを出して、シートのコードやモジュールのコードが表示されれば見ることができるでしょうが、普通は保護がかけてあり、パスワードの入力が必要になるのではないでしょうか。 Private Sub Worksheet_Change(ByVal Target As Excel.Range) On Error GoTo errorHandler If Target.Count = 1 Then If Target.Column = 1 Then 'A列を変更した場合 If IsNumeric(Target.Offset(0, 1)) And Target.Offset(0, 1) <> "" Then Target.Offset(0, 2) = Target.Value - Target.Offset(0, 1) End If ElseIf Target.Column = 2 Then 'B列を変更した場合 If IsNumeric(Target.Offset(0, -1)) And Target.Offset(0, -1) <> "" Then Target.Offset(0, 1) = Target.Offset(0, -1) - Target.Value End If End If End If Exit Sub errorHandler: End Sub
お礼
ご回答ありがとうございます。 しかしながら私の理解力を越えており・・・ 精進します。 またよろしくお願いします。
- nanazo
- ベストアンサー率56% (34/60)
はじめまして。 御質問の内容ですが、 >どうしたらこういったことが可能なのか マクロ、VBAを使用されているのだと思います。 ツール→マクロ→VisualBasic Editerを開くと確認できるかと思います。 >実際に使われている計算式を見ることは可能なのか 多分、パスワードがかかっているので中身は見れないと思いますが、パスワードがかかっていなければ、見ることは可能です。見れたとしても、VisualBasicかマクロを知らないと解らないかと思います。 Excelのヘルプに載っていますので一度御覧下さいませ。 それではこれでm(__)m
お礼
どうやらVBA等ではなく、#2のお答えの通り、保護されていたようです。結局中身は見れませんでした。 回答ありがとうございました。
お礼
ご指摘のとおり、保護されており、残念ながら参考にすることが出来ませんでした。 ご回答ありがとうございました。