Pertanyaan Perlindungan workbook Excel: bagaimana cara menghentikan pengguna merusak buku kerja?


Saya memiliki buku kerja dengan banyak lembar, makro dan perhitungan yang sedang berlangsung. Saya sekarang perlu mengirim lembaran ini keluar (bukan sebelumnya sebelum kemarin). Bagaimana cara saya menguncinya sehingga pengguna:

  • tidak dapat mengakses / melihat makro?
  • tidak dapat memperlihatkan lembar tersembunyi?
  • tidak dapat melihat kode atau menambahkan kode /

Saya telah melalui dan membuka kunci sel-sel yang saya ingin mereka ubah. Baris-baris tombol dan formula tersembunyi kemudian mengunci mereka. Lembar kerja yang disembunyikan. Saya sekarang telah melindungi lembar kerja dengan kata sandi.

Namun, apakah ini menghentikan pengguna mengakses Macro's / Code? atau memunculkan lembar? Jika tidak, bagaimana saya bisa mengunci buku kerja dengan benar / aman / total?

Kedengarannya seperti jenis perlindungan keamanan dari saudara besar, tetapi saya hanya memastikan bahwa semua sel yang saling terkait tidak sengaja diubah, atau makro dijalankan sehingga saya tidak perlu menjalankannya.

Terimakasih banyak

Michael.


2
2017-09-13 09:24


asal


Mencoba situs ini - tampaknya menjawab semua 3 pertanyaan. - Traveling Tech Guy


Jawaban:


Pertama - perhatikan bahwa sebagian besar fitur perlindungan di Excel tidak fitur keamanan. Sebagian besar cukup mudah patah atau dilewati. Mereka baik-baik saja untuk menghentikan kerusakan yang tidak disengaja - tetapi tidak akan menghentikan siapa pun yang tahu apa yang mereka lakukan dan benar-benar ingin melihat bit-bit yang Anda sembunyikan.

Yang mengatakan, inilah beberapa jawaban:

Perlindungan Inital

Anda telah membahas ini, pada dasarnya mengunci sel dan menyembunyikan hal-hal dan dibutuhkan.
Lalu lindungi setiap lembar.
Kemudian lindungi buku kerja itu sendiri.

Lembar Sangat Tersembunyi

Spreadsheet dapat dibuat "sangat" tersembunyi, ini berarti satu-satunya yang tidak dapat dihubungi melalui VBA (mereka tidak muncul dalam daftar tak terlihat di antarmuka). Ini hanya dilakukan melalui garis VBA, yang perlu dijalankan setidaknya sekali untuk memicu perubahan pengaturan, dan tidak perlu disimpan dalam file setelah dijalankan (tetapi ini mungkin berguna untuk mengingat lembar mana yang harus ditampilkan kemudian):

Sheets("Sheet1").Visible = xlVeryHidden

Kode VBA Tersembunyi

Atur kata sandi pada proyek Anda. Dari editor VBA, klik kanan modul Anda di Project Explorer, pilih <ProjectName> Properties dan atur kata sandi di Protection tab.

Perhatikan bahwa ini bisa dibuka secara paksa.

Makro Tersembunyi

Saya berasumsi di sini Anda berarti Anda tidak ingin mereka muncul di daftar makro ketika seseorang membuka Run Macro jendela?

Untuk melakukan ini, buat makro yang diinginkan, baik a Private Sub atau a Function, ini membuat mereka tidak terlihat sebagai makro tetapi masih memungkinkan mereka dipanggil dengan kode lain dalam modul yang sama.

Saya tidak berpikir Anda tidak dapat mencegah orang dari berlari makro yang terlihat dan Anda tidak dapat menetapkan makro tersembunyi ke tombol.


6
2017-09-13 09:59



Terima kasih atas detailnya. Saya telah berhasil menguncinya berdasarkan jawaban Anda (dan tautan dari orang teknologi Bepergian di bawah). - RocketGoal
The xlVeryHidden sepertinya tidak berfungsi. Tidak yakin kenapa. Saya telah membuat modul dan memasukkan kode itu, dan kemudian mencoba benar-benar menempatkan kode di lembar itu sendiri. Dengan kedua kasus itu saya masih bisa mengklik kanan pada tab / s di bagian bawah dan menu masih menunjukkan lembar VeryHidden. Aneh. - RocketGoal
@Mike punya kamu menjalankan kode dengan pemicu sangat tersembunyi? - DMA57361
Pertanyaan bagus. Tidak, saya pikir saya baru saja menyimpannya. Jadi, di situlah saya salah. Ups. - RocketGoal
@Mike kode hanya perlu dijalankan sekali, untuk menetapkan nilai ini pada sheet. Setelah selesai Anda dapat menghapus kode jika diperlukan (tetapi mungkin berguna untuk menjaga mengetahui lembaran mana yang akan dikembalikan). - DMA57361


Jika Anda hanya ingin penerima tidak mengubah beberapa bit secara tidak sengaja, perlindungan Excel akan mencukupi. Tetapi jika ada data rahasia yang Anda tidak ingin orang yang menerima buku kerja dapat melihat, mereka tidak baik.

Jika Anda hanya ingin menampilkan data dan tidak memformat, cara sederhana untuk "menyiram" semua data tersembunyi adalah mengekspor setiap lembar sebagai CSV, lalu masukkan kembali sebagai buku kerja Excel baru. (Langkah kedua adalah opsional opsional, tetapi orang-orang tidak terbiasa dengan file CSV, jadi lebih baik untuk mengirim file Excel seperti yang mereka harapkan.)

Jika Anda ingin memiliki output yang dapat ditampilkan yang orang tidak dapat memodifikasi, cetak lembar ke file PDF dan kirim itu.


0
2017-09-13 18:21



Pengguna harus menggunakan lembaran ini, sayangnya, tetapi dengan saran perlindungan di atas saya senang bahwa itu dilindungi ke standar. Saya dan rekan-rekan saya senang dengan hal itu. Ini bukan informasi rahasia, hanya banyak waktu dalam menulis kode, dan memformat yang mungkin diminati oleh sebagian pengguna. - RocketGoal