|
えくせーるさん、そしてみなさん、主宰者の谷です。
金曜日から土曜日にかけてこの掲示板を見る機会がなかったこと、
モメごとはできるだけ当事者の間で解決していただきたいとの考えがあることから、今まで登場しませんでした(というかできませんでした、ごめんなさい)。
さて、一連の書き込みに関して、主宰者である私の総論を述べたいと思います。
まずすでに半分お答えは出ているようなものですが
>手動で設定したシート保護のパスワード取得方法を教えてください。(VBAで)
「できない」を一応の答えとしておきます。
実際には、できます。というか、できるらしい。
事実「パスワード保護してそのパスワードを忘れてしまったブック/シート/VBAプロジェクトをパスワード解除します」なんていうサービスを悪意なく提供している(ここで「悪意なく」と書いたのは、れっきとしたサービスとしてちゃんと宣伝を行い、秘密保持契約まで結んでビジネスとしてやっていらっしゃるから)業者まであるぐらいです。
保護されたシートを含むブックと、VBAプロジェクトを含むブックが同じであればこのような質問は出なかったのでしょう。おそらくえくせーるさんは、保護されたシートを含む任意のブック(しかもそのシートのパスワードがわからない)に対してこの処理を行いたかったのだ、と推測します。
したがって、えくせーるさんに悪意がないのは自明の理です。
しかし、だからといって「こういうコードでパスワードクラックできますよ」とここに書いてしまうと、そのコードを見た第三者が悪意のあるプログラムを書いてしまうかもしれません。VBAに関する質問がある人のため、というニッチなニーズを満たすための質問箱ですが、とはいえ公共の場です。この公共の場で悪意のあるプログラムに応用できるコードを書くわけにはいかない、というのが一般論です。
と同時に、その一般論をふりかざすたいていの人は、実際「その具体的な方法を知らない」ことが多いのです。だから「知っているけど教えない」と意地悪しているわけではありません。もちろん上記の理由で、「知っているけど教えない」のは意地悪ではなく、モラルの問題ということになります。
シートの保護をかけた人と、そのシートを使う人が同一人物なら、画面に「この差作業は、シートのロックを解除する必要があります。ロックを解除するためのパスワードを入力してください」という InputBox を出し、ユーザーにパスワードを入力させて解除する(そして作業が終わったら同じパスワードで保護する)という方法もとれますよね。シートの保護をかけた人と、そのシートを使う人が別人であれば、また別の代替案を考えなければなりませんが。
---
さて、ここからは「争点」に関する考察です。
一見すると非難中傷にも感じられることばが飛び交ってしまうようになった最大の原因は、この回答に関連した多くの方の「言葉足らず」によるものだと思います。
ひとつひとつを挙げて指摘すると個人を非難することになりますし、第一意味がありません。しかしみなさん、もう一度自分が書いた書き込みを見直してみてください。これは質問者にも回答者にも言えることです。
文章があまりにも短いと思いませんか?
それで伝えたいことが伝えられるでしょうか。
読み手に誤解を生じさせる可能性は絶対にないとはいえないまでも、まずその心配はないだろう、と言いきれる文章でしょうか。
例えば(結局例を挙げてしまいましたが)
>自分がやりたいのは、ブック起動時にVBAで内部的にシート保護状態とそのパスワ
>ードを取得して(できればですが…)、また再保護をしたいのですが…
>理由は、Copy使うとなぜか保護が外れるので。
これはもう一歩踏み込んで、「なぜ Copy メソッドを使いたいのか」まで説明するほうが望ましかったといえるでしょう。そこまで説明すれば、もしかしたら Copy メソッドを使うよりもっといい方法を教えてさしあげることもできたかもしれません。
しかし説明が不十分なので
>早い話、Copyしなければいいだけの話。
というような意見が来て、この意見に対して腹をたてなければならなくなってしまうのです。
一方、回答者の方々も回答が短すぎるといわざるをえません。
例えば上記の例では、Copyメソッドを使いたいから使うのであって、Copyメソッドを使わなければよい、というのでは回答になりません。
もちろんその場合は代替案が必要になりますが、代替案を出したくてもその背景がわからなければ出しようがありませんよね。ですから「何がしたいのか」を質問者に尋ねるか、私が上で述べた InputBox の例のような「仮定による代替案の提示」をするのが、良識ある回答者の姿勢だと私は思います。仮定による代替案を出したら、質問者は「いや、私がやりたいのはそうじゃなくて・・・」と、さらなる説明をしてくださることでしょう。
それからもうひとつ、私が声を大にしていいたいことがあります。
これは今回の件に限ったことではないのですが。一部の方に見受けられる傾向です。
どうしてみなさん、「です・ます」体の文章を書かないのですか?
質問者も回答者も、相手に敬意を表して「です・ます」体の文章を書くのはあたりまえだ、と・・・少なくとも私はそう思っています。直接相手の顔を見て話をしている場所ではないので、どうしても「である」体の文章や体言止めの文章は、ぶっきらぼうに見えてしまうのです。多くの方はきちんと「です・ます」体の文章を書いておられるのですが、一部の方は体言止めにしておられます。
それはモラルの問題です。
と書くのと、
それはモラルの問題。
と書くのとでは、ちょっとした違いですけどこれを見たときの印象はずいぶん違いますよね。
その書き方が相手を非難するつもりではなかったにしても、相手は自分が非難されたと思い込み、さらに乱暴な文章で「応戦」しようとします。そうすると当初の「質問とそれに対する回答」や「なぜ回答できないかの説明」なんてのはどこかに吹き飛んでしまいます。
応戦する側も、あくまでも紳士的に「です・ます」体の文章で応戦することを強くお勧めします。議論はどこまでも論理的かつ具体的に。感情の交錯は、このような面と向かって話し合いのできない場所では修復不可能です。
一方、必要以上に人の神経を逆なでするような書き込みも感心できません。
神経を逆なでされた当事者が逆上するのは明らかですし、仮に何人かの人がこの意見に同意したとしても、そこからは何も生まれません。
---
「思い込み」は誰にでもあります。
>>あなたに悪意がないとしても、あなた以外の掲示板を見た人が
>>悪用することもできますよね?
>↑
>はぁ?
>VBAロックしてれば、不正な実行拒否れるだろ。
これだって、
「パスワードを知る方法をこの掲示板に書けば、あなた以外にこの掲示板を見た人が悪用するコードを書くかもしれませんよね」
という意味の書き込みに対して、
「私が書いたコードをちゃんとロックしていれば悪用されることはないだろう」
と「思い込んで」お答えになってますよね。
なぜそのような「思い込み」が発生するのか。理由はさまざまで、一言で言えば「コミュニケーション不足」なんですが、その原因のひとつが「言葉足らず」だと私は思うのです。
誰も、えくせーるさんが悪事を働くとは思っていません。
でも他に悪事を働く人もいるかもしれないから、悪いことに応用できるようなコードはここに書けない(第一、知らない)と答えたのです。
どちらが悪いのか、今になってはわかりません。しかし何らかの原因で、えくせーるさんは「自分が悪人呼ばわりされた」とお感じになったのではないでしょうか。
その一端は、「言葉足らず」にあるように思います。
ことばは便利です。しかし薬にも武器にもなります。
そのことばを発する前に、そのことばが相手に与える影響(または、足りないから影響を与えられないこと)を考えましょうね。
|
|