会社からエクセルシートが送られてきた。
シートにロックがかかっていて、文字と数字の入力しかできない。行の高さの変更も、列の幅の変更も、数式の入力さえできない。つまり、エクセルの機能がほとんど使えない。
こんなばかげたシートを使っていたのでは無駄な時間を取られるばかりなので、ロックを解除することに。以下の方法は、全て無料でできます。登録も一切必要ありません。
シートのロックの解除の仕方は、シート全体([CTRL]+[A])をコピー([CTRL]+[C])して、新規のシート([CTRL]+F11)に貼り付け([CTRL]+[V])れば良いのですが、この方法では別のシートとのリンクが切れてしまうので使えない。以前は簡単に解除できたのですが、OFFICE2007になってからめんどくさくなったので、専用のアドインを使うことに。
アドインのダウンロード
「password.xla」というアドインをこちらのサイトから無料でダウンロードします。
当たり前のことですが、ダウンロードと使用は自己責任で。
現在の所、ウイルスは組み込まれていないようです。
>
ダウンロードしたアドインを以下のフォルダに移動。(OSはVISTA, Office2007)
C:Users\ユーザーの名前\AppData\Roaming\Microsoft\AddIns
このファイルをアドイン登録すれば、シートのロック解除が簡単にできる。
・・・・、というほど甘くはない。ここからが重要なところ。
「このファイルのVBA プロジェクトを開くためには、現在インストールされていないコンポーネントが必要です。というエラーメッセージが出ます。
それでは、そのコンポーネントやらをインストールしましょう。
EXCEL2007以降でVBAを開くために不足しているプログラムのインストール
1.不足しているプログラムは、以下の2つのプログラムです。検索すると直ぐに見つかります。たくさんのサイトで公開しています。
vbacv10d.dll
vbacv10.dll
たとえば、ここなど。
この2つのファイルを次のフォルダの中に移動します。
C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6
パスの解除の方法
1.シートにパスワードのかかっているファイルを開きます。
(なお、ファイル自体にパスワードがかかっていると開くことはできません)
2.[アドイン]タブの[メニューコマンド]で、「Unprotect sheet」をクリック。
するとパスワードの入力を求めるダイアログが開くので、そのまま「OK」をクリック。
3.すると下の画像のように、「ロックは解除されましたよ」、というお知らせが出るので、[OK]をクリック。なんとなく警告ダイアログのような感じですが、完了のお知らせダイアログです(笑)。
ブックの解除も同様に行います。
解除が済んだら、念のため、アドイン登録は外しておきましょう。
たいていの人は、VBAのコンポーネント不足のところでつまずくと思うので、今回、詳しく書きました。EXCEL 2003で使えて、2007になってから使えなくなったアドインを使えるようになるので便利です。
シートにロックをかけた上でファイルを配布し、他人に作業を強要するのであれば、もっとユーザビリティを考慮してもらわないと困ります。素人の作ったEXCELファイルと遊んでいるほどヒマじゃない。
ちなみに、Microsoft社のVBAコンポーネント不足のサポート記事をご覧下さい。この説明で理解できる人がいるのでしょうか。もともと説明する気がないということでしょう。コンバータなんか不要なのに。直接的には決してたどり着けない幻のコンバータを多くの人が探したのではないでしょうか。
【追記】
この方法で、パスは解除できるのですが、元々のパスは分からない。
会社のEXCELシートなので、パスのかかった状態に戻しておく必要があります。まあ、管理人の本来業務ではないので、その辺はどうでも良いのですが、一応パス名を解読しました。
これには別のソフトを使って、パス名を解読することになります。解読できるソフトはたくさん出ているのですが、有料です。
【追記2】
Excel 2003のパスを解読できたフリーのアドインは、2007でも使えます。古いアドインと侮ってはいけない(笑)。VBAでxlsと書いてある記述をすべてxlsxに書き換えるとそのまま使えます。
「Excel UnPassword Version 0.40」という2002年リリースのツールがあります。
EXCEL 2007ということで、以前のツールを忘れていました。