<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VBA: Запаролить листы в книге Excel]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=15065</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=15065&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBA: Запаролить листы в книге Excel».]]></description>
		<lastBuildDate>Thu, 24 Jun 2021 16:09:08 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: VBA: Запаролить листы в книге Excel]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=148587#p148587</link>
			<description><![CDATA[<div class="quotebox"><cite>misha_057 пишет:</cite><blockquote><p>Это для снятия защиты, что совсем не обязательно.&nbsp; Пользователю можно открыть несколько ячеек для ввода, а лист держать под паролем.<br />Как таким методом отобразить скрытый лист, соответствующий паролю? Без хранения, наверное, никак.</p></blockquote></div><p>Я же написал — как. К сожалению, сие не работает, поскольку ошибка при исполнении метода .Unprotect(), увы, не перехватывается:<br /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><p><span class="postimg"><img src="https://i.imgur.com/jx0Korm.png" alt="https://i.imgur.com/jx0Korm.png" /></span></p></div></div>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Thu, 24 Jun 2021 16:09:08 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=148587#p148587</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBA: Запаролить листы в книге Excel]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=148581#p148581</link>
			<description><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>заводим массив/словарь листов, перебираем листы, пробуем введённый пароль</p></blockquote></div><p> Это для снятия защиты, что совсем не обязательно.&nbsp; Пользователю можно открыть несколько ячеек для ввода, а лист держать под паролем.<br />Как таким методом отобразить скрытый лист, соответствующий паролю? Без хранения, наверное, никак.</p><div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>Сие тоже отнюдь не панацея — пользователь может сохранить Рабочую книгу (со снятой защитой), а затем тупо «снять» процесс excel.exe.</p></blockquote></div><p>Что же он сохранит со своим паролем, только свои раскрытые листы?</p><p>Уже изобрели макрос сброса паролей листов, который можно легко нагуглить, так что изощряться с паролями нет смысла.<br />Интересно другое, этот макрос нужно вставить в редактор, поможет ли здесь защита редактора паролем?</p>]]></description>
			<author><![CDATA[null@example.com (misha_057)]]></author>
			<pubDate>Thu, 24 Jun 2021 11:39:25 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=148581#p148581</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBA: Запаролить листы в книге Excel]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=148579#p148579</link>
			<description><![CDATA[<p>Пожалуй, надо пояснить.</p><p>Во времена первых архиваторов под MS DOS был такой прародитель архиваторов PKARC (не тот, который тоже назывался PKARC, а позже стал PKZIP, а оригинальный). Так вот он нигде не хранил пароль от архива, а тупо использовал введённый пароль для расшифровки. Если пароль был неправильный — получалась белиберда.</p><p>Так же и здесь — просто заводим массив/словарь листов, перебираем листы, пробуем введённый пароль для снятия защиты, перехватываем ошибку времени исполнения при методе .UnProtect(). В массиве/словаре помечаем, для каких листов удалось снять защиту (и только для них же при закрытии книги выполняем .Protect()).</p><p>P.S. Сие тоже отнюдь не панацея — пользователь может сохранить Рабочую книгу (со снятой защитой), а затем тупо «снять» процесс excel.exe.</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Wed, 23 Jun 2021 19:43:30 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=148579#p148579</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBA: Запаролить листы в книге Excel]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=148578#p148578</link>
			<description><![CDATA[<p><strong>misha_057</strong>, предлагаю нигде не хранить.</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Wed, 23 Jun 2021 19:21:23 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=148578#p148578</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBA: Запаролить листы в книге Excel]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=148573#p148573</link>
			<description><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>Просто не надо хранить пароли в коде.</p></blockquote></div><p> Где предлагаете их хранить для книги Екселя? И чем плоха защита макроса паролем?</p>]]></description>
			<author><![CDATA[null@example.com (misha_057)]]></author>
			<pubDate>Wed, 23 Jun 2021 08:01:34 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=148573#p148573</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBA: Запаролить листы в книге Excel]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=148569#p148569</link>
			<description><![CDATA[<div class="quotebox"><cite>misha_057 пишет:</cite><blockquote><p>В вопросе не сказано о возможности видеть листы,</p></blockquote></div><p>Как бы:<br /></p><div class="quotebox"><cite>ypppu пишет:</cite><blockquote><p>Но тогда перестаёт работать то, ради чего всё делалось: пользователь начинает видеть все листы в книге</p></blockquote></div><p>так.</p><div class="quotebox"><cite>misha_057 пишет:</cite><blockquote><p>Если нужна защита посильнее - листы можно скрыть при закрытии файла и активировать нужный при открытии. И макросы тоже можно запаролить. А от мамкиных хакеров в Екселе защиты нет.</p></blockquote></div><p>Просто не надо хранить пароли в коде.</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Tue, 22 Jun 2021 20:32:11 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=148569#p148569</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBA: Запаролить листы в книге Excel]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=148565#p148565</link>
			<description><![CDATA[<p><strong>alexii</strong><br />Что &quot;ну и?&quot; Адекватный пользователь откроет файл, а не начнет его ломать.<br />В вопросе не сказано о возможности видеть листы, а сказано - получить доступ.<br />Если нужна защита посильнее - листы можно скрыть при закрытии файла и активировать нужный при открытии. И макросы тоже можно запаролить. А от мамкиных хакеров в Екселе защиты нет.</p>]]></description>
			<author><![CDATA[null@example.com (misha_057)]]></author>
			<pubDate>Tue, 22 Jun 2021 09:21:16 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=148565#p148565</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBA: Запаролить листы в книге Excel]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=148512#p148512</link>
			<description><![CDATA[<p><strong>misha_057</strong>, ну, и? Я открыл файл, отказался от исполнения макросов и вижу оба листа. Нажал ALt-F11, посмотрел в код, снял парольную защиту.</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Sat, 19 Jun 2021 00:01:33 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=148512#p148512</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBA: Запаролить листы в книге Excel]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=148505#p148505</link>
			<description><![CDATA[<p><strong>ypppu</strong> Есть такая возможность.</p>]]></description>
			<author><![CDATA[null@example.com (misha_057)]]></author>
			<pubDate>Fri, 18 Jun 2021 10:05:47 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=148505#p148505</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBA: Запаролить листы в книге Excel]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=136687#p136687</link>
			<description><![CDATA[<p>Ясно, спасибо.</p>]]></description>
			<author><![CDATA[null@example.com (ypppu)]]></author>
			<pubDate>Tue, 26 Nov 2019 03:47:08 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=136687#p136687</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBA: Запаролить листы в книге Excel]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=136685#p136685</link>
			<description><![CDATA[<p><strong>ypppu</strong>, в общем и целом — нет такой возможности.</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Mon, 25 Nov 2019 21:24:46 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=136685#p136685</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBA: Запаролить листы в книге Excel]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=136667#p136667</link>
			<description><![CDATA[<p><strong>red2881</strong>, спасибо, но по первой ссылке вводятся ограничения на область в рамках листа, в то время как нужно ограничить доступ к листу в рамках книги.</p><p>По второй ссылке находится пример, который я и описывал в первом сообщении. Он, судя по всему, построен на костылях и подпорках. При выходе из программы скрипт пытается сохранить файл без моего ведома, что уже не очень то правильно. Но это полбеды, если его открывает человек, имеющий права только на чтение файла, вылезает ошибка visual basic: [End] / [Debug] / [Отмена], плюс дважды вылезает окно с предложением сохранить файл.</p><p>Эти нежелательные окна перестают вылезать, если удалить в скрипте строку <em>ThisWorkbook.Save</em>. Но тогда перестаёт работать то, ради чего всё делалось: пользователь начинает видеть все листы в книге, окно ввода пароля при этом можно просто игнорировать.</p>]]></description>
			<author><![CDATA[null@example.com (ypppu)]]></author>
			<pubDate>Sat, 23 Nov 2019 09:51:04 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=136667#p136667</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBA: Запаролить листы в книге Excel]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=136666#p136666</link>
			<description><![CDATA[<p><strong>ypppu</strong><br />Добрый вечер. <br /><a href="http://www.cyberforum.ru/vba/thread781094.html">http://www.cyberforum.ru/vba/thread781094.html</a><br /><a href="https://www.excel-vba.ru/chto-umeet-excel/kazhdomu-polzovatelyu-svoj-listdiapazon/">https://www.excel-vba.ru/chto-umeet-exc … tdiapazon/</a></p>]]></description>
			<author><![CDATA[null@example.com (red2881)]]></author>
			<pubDate>Fri, 22 Nov 2019 17:49:09 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=136666#p136666</guid>
		</item>
		<item>
			<title><![CDATA[VBA: Запаролить листы в книге Excel]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=136652#p136652</link>
			<description><![CDATA[<p>Существует ли способ запаролить отдельные листы без багов и глюков? Чтобы пользователь открыл файл xls, в выпадающем списке выбрал свой логин, ввёл пароль и получил доступ только к определённым листам.<br />В интернете находил один способ, но там сплошные костыли, то и дело вылетает предупреждение visual basic: End / Debug / Отмена.<br />Примечание: файл xls одним пользователям будет доступен только для чтения, другим с возможностью изменения.</p>]]></description>
			<author><![CDATA[null@example.com (ypppu)]]></author>
			<pubDate>Thu, 21 Nov 2019 19:31:10 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=136652#p136652</guid>
		</item>
	</channel>
</rss>
