書類

VBA (Visual Basic for Applications) コードを保護する 4 つの方法

あなたが書く VBA コードは、スプレッドシートの心臓部です。VBA コードの保護は、コードが盗まれたり、知らないうちに使用されたりしないようにするために行う必要があります。この記事では、VBA コードを保護し、自分だけが簡単にアクセスできるようにするさまざまな方法について説明します。

VBA コードの保護に注目すべき理由

VBA は、Excel、Word、PowerPoint で自動化されたタスクやアクションを作成するために使用できるマクロ言語です。VBA コードを保護する必要がある理由はいくつかあります。

  • VBA コードが誤って変更されるのを防ぐため。VBA コードは Excel ユーザーにとって強力なツールですが、使用しない人にとってはストレスの原因にもなります。VBA をパスワードで保護しないと、ブックを使用している他のユーザーがコードにアクセスし、実際に何をしているのかわからないまま変更を加えることができます。VBA コードのデバッグは面倒な作業になる可能性があるため、避けてください。原因を突き止めるのに何時間もかかり、さらに時間がかかる可能性があります。
  • 知的財産を保護するため。VBA コードは、一部の企業にとって非常に価値のあるものとなります。他の誰かがスプレッドシートにアクセスし、使用している機能をコピーした場合、その人はそれを自分の作品として偽って多くの企業に販売する可能性があります。セキュリティ対策を講じて貴重なソース コードを保護してください。誰でも簡単に盗んだりコピーしたりできないようにしてください。
  • 自分の作業が他人に利用されるのを防ぐため。作業を簡単にしたり効率化したりする貴重な VBA コードがある場合は、それを個人使用のみに保護することをお勧めします。

VBA コードを保護する方法はいくつかありますが、すべての方法が同じようにコードを保護するわけではないことに注意してください。ニーズに最適な方法を選択するのはあなた次第です。

#1 VBAProject ツールを使用して Excel 内の VBA コードをパスワードで保護する

この部分では、VBA プロジェクト保護設定を使用して、VBA コードを詮索好きな目や改ざんからある程度保護する方法について説明します。

  • セキュリティレベル: 弱い; 次のようなツールがあります VBA パスワード削除ツール 数分でパスワードのロックを解除できます。
  • 難易度: 簡単;
  • 料金:無料

ステップ1。 Excel の「開発」メニューから「Visual Basic」を選択します。

Excel 開発タブから Visual Basic パネルを開く

ステップ2。 VBA プロジェクトをロックダウンするには、バーの「ツール」をクリックし、「VBAProject プロパティ」を選択します。

パスワードを設定するには、VBAProject プロパティを選択します。

このメニュー項目をクリックすると、次のダイアログボックスが表示されます。

VBAProject プロパティのメイン インターフェイス

デフォルトでは「全般」タブが選択されていますが、「保護」タブをクリックします。

ステップ3。 「プロジェクトを表示用にロックする」をチェックし、両方のボックスにパスワードを 2 回入力して、「OK」をクリックします。

VBA プロジェクトを表示用にロックし、パスワードを設定して VBA コードを保護します。

ステップ4。 保存して Excel ファイルを再度開きます。VBA プロジェクトをダブルクリックすると、VBA パスワード保護が適切に有効になっているかどうかがわかります。VBA プロジェクトをパスワードで保護すると、誰かが誤って変更するのを防ぐことができます。

VBA コードを表示するにはパスワードが必要です

#2 VBA難読化を使用してマクロコードを保護する

VBA 難読化とは、VBA コードを読み取り不可能にしながらも機能させる技術です。複数のレベルの難読化によって既存のマクロを変更し、基礎となるロジックの理解を困難にします。高度な VBA 難読化ツールでは、高度な難読化手法が多数使用されるため、逆トレースや回復がかなり困難になります。

  • セキュリティ レベル: 中。誰かが時間と十分なリソースを費やしてコードを回復することは可能です。
  • 難易度: 中程度; レベルによって異なります;
  • 料金: 無料の VBA 難読化ツール /プレミアム;

VBA 難読化は、最初にモジュールを難読化してからパスワードで保護する、#1 の手法と併用できます。難読化は元に戻せないため、続行する前にソース ファイルのバックアップを作成してください。また、難読化されたコードが問題なく実行されるとは限らないことにも注意してください。リリースする前に徹底的にテストしてください。難読化には、プロジェクトの 1 つの部分を使用します。最初のモジュール難読化テストが成功したら、2 番目のテストに進みます。

#3 VBA コードをダイナミックリンクライブラリ (DLL) に変換する

Visual C++ や Visual Basic などのコンパイラは、クラックが困難なアプリケーションを作成します。これは、コードが実行可能ファイルまたはダイナミック リンク ライブラリ ファイルにコンパイルされるためです。したがって、VBA コードをダイナミック リンク ライブラリ ファイルにコンパイルして、Excel で使用することもできます。

  • セキュリティレベル: 高;
  • 難易度: 中程度
  • 料金:無料

この保護方法は強く推奨されますが、100% 保証されるものではありません。コンパイル方法については、VbaCompiler.com の手順を参照してください。 VBA コードをネイティブ Windows DLL にコンパイルする 10 ステップ

Excel ファイルの VBA コードのコンパイルが VbaCompiler for Excel で正常に完了しました

#4 VBAをCまたはC++に変換する

マクロを C または C++ に変換するのは、VBA よりもリバース エンジニアリングが困難です。コードを保護したい場合は、これが最善の方法です。

  • セキュリティ レベル: 最高。権限なしでコードを入手することはほぼ不可能です。ただし、100% 保証されるわけではありません。
  • 難易度: 複雑で時間がかかります。VBA と C/C++ は非常に異なる言語であるため、多くの労力を費やす必要があり、より困難です。

結論

マクロを使用すると、高度な関数の開発を効率化できます。残念ながら、マクロを使用すると、コードが盗まれたり、他の人にコピーされたりするリスクがあります。この記事では、他のユーザーが VBA コードを盗んだり改ざんしたりするのを防ぐ方法について説明します。VBA コードの保護は完全なセキュリティではありませんが、偶発的な攻撃者に対してはある程度の保護を提供します。

スザンナの写真

スザンナ

Susanna は Filelem のコンテンツ マネージャー兼ライターです。彼女は長年、編集者および書籍レイアウト デザイナーとして経験を積んでおり、さまざまな生産性ソフトウェアを試用し、テストすることに興味を持っています。また、彼女は Kindle の大ファンで、Kindle Touch を 7 年近く使用しており、どこへ行くにも Kindle を持ち歩いています。少し前にこのデバイスが寿命を迎えたため、Susanna は Kindle Oasis を喜んで購入しました。

関連記事

トップに戻るボタン