プロが教えるわが家の防犯対策術!

インターネットで個人の方が公開しているエクセルのワークシートをダウンロードしてきました。勤務時間を計算するものなのですが、それをアレンジして自分流に使いたいと考えているのですが、どこを見ても計算式が入力されていないのに、所定位置に出社時間・退社時間を入力すると実勤務時間が計算されて表示されているんです。

そこで
・どうしたらこういったことが可能なのか
・実際に使われている計算式を見ることは可能なのか
を教えてください。

A 回答 (3件)

通常の手段で、マクロを使用しない方法として


セルの書式で保護の項目を「ロック」「表示しない」にチェックして、ツール→保護で「シート保護」の設定をすれば、計算式は見えません。
また、入力シートと計算シートを別に作り、計算シートを「非表示」に設定することも可能です。

ツール→保護とたどって、保護の解除でパスワードの入力を求められなければ、アレンジ可能ですが、作成者の意図に添わない改ざんを許可しないようパスワードを設定していることは考えられますね。
いずれにせよ、自身で使われる分には、多少のアレンジは可能かと思いますが、ファイルの再配布などは行わないよう配慮が必要です。
    • good
    • 0
この回答へのお礼

ご指摘のとおり、保護されており、残念ながら参考にすることが出来ませんでした。
ご回答ありがとうございました。

お礼日時:2001/11/30 07:15

>どうしたらこういったことが可能なのか


マクロを作って、セルの値が変わったら計算して該当のセルにかき出すことで可能です。
例えば、下記マクロは、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
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
しかしながら私の理解力を越えており・・・
精進します。
またよろしくお願いします。

お礼日時:2001/11/30 07:17

はじめまして。



御質問の内容ですが、
>どうしたらこういったことが可能なのか

マクロ、VBAを使用されているのだと思います。
ツール→マクロ→VisualBasic Editerを開くと確認できるかと思います。

>実際に使われている計算式を見ることは可能なのか
多分、パスワードがかかっているので中身は見れないと思いますが、パスワードがかかっていなければ、見ることは可能です。見れたとしても、VisualBasicかマクロを知らないと解らないかと思います。

Excelのヘルプに載っていますので一度御覧下さいませ。
それではこれでm(__)m
    • good
    • 0
この回答へのお礼

どうやらVBA等ではなく、#2のお答えの通り、保護されていたようです。結局中身は見れませんでした。
回答ありがとうございました。

お礼日時:2001/11/30 07:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!