アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルのVLOOKUP関数に関する質問です。
BOOK(1)とBOOK(2)(それぞれは別フォルダに入っています)があり、
BOOK(1)の中でVLOOKUP関数を用いて、BOOK(2)からデータを参照しています。
参照先のBOOK(2)は管理者以外読み取り専用となっていますが、
たとえ保存できなくても誰かがデータを書き換えたり、別名で保存したりすると、VLOOKUPの参照結果も、書き換え後のデータ(別名保存したファイル)になってしまうようです。
希望としては、VLOOKUPの参照先であるBOOK(2)を固定したいです。
この件に関して、対処法はありますでしょうか。

A 回答 (3件)

No.2です。


先ほどの回答ではうまくいかないことがわかったので、補足です。
・シート保護を解除(パスワード入力)
・編集
・保存
・再びシート保護でパスワードを設定
と書きましたが、最後にシート保護をした時点で、「シート保護をした状態で保存」することができなくなってしまいます。右上の×で閉じると「保存しますか?」というダイアログが出るので、これで保存できるかと思ったら、保存はしたものの再びブックを開くとシート保護が解除されている状態でした。(なぜかはわかりませんが?)

マクロを仕込まなければ、シート保護した状態で保存できますが、名前をつけて保存もできてしまいます。
申し訳ありませんが、No.2の回答は無視してください。
    • good
    • 0
この回答へのお礼

お礼が遅くなりました。申し訳ございません。
ご丁寧に回答いただき、ありがとうございました。
エクセル初心者なので、いろいろと悪戦苦闘中です。
また機会があればよろしくお願いいたします。

お礼日時:2007/02/28 00:44

まず管理者以外は編集できないようにしましょう。



ツール>保護>シート保護
を選択し、パスワードを入力してOKを押します。
こうしておけば、シートの内容を変更できなくなります。管理者が編集を行いたいときは、
ツール>保護>シート保護解除
でパスワードを入力し、シート保護を解除すれば編集できるようになります。

さらに別名で保存もできなくする方法です。

Alt+F11でVBAの画面を開き、左側のThisWorkbookをダブルクリックして、右の画面に以下のマクロをコピーして貼り付けておくと(Sheet1のところは実際のシート名に書き換えてください)、シート保護を解除している間だけ保存ができるようになります。シート保護がかかっている状態では名前をつけて保存もできません。

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
 If Worksheets("Sheet1").ProtectContents = True Then
  Cancel = True
 End If
End Sub

管理者が内容を編集するときは、
・シート保護を解除(パスワード入力)
・編集
・保存
・再びシート保護でパスワードを設定
という手順でやればよいかと思います。

マクロが無効にされていたらこの方法は回避されてしまいますが…。
    • good
    • 0

=VLOOKUP(基準値,INDIRECT("[ブック名.xls]シート名!範囲名"),列番号,検索方法)


でできませんか?
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
やってみたのですが、うまくいきません。
私の入力がおかしいのかもしれないので、
いろいろ試してみます。

お礼日時:2007/02/28 00:45

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