現在オフラインです。再接続するためにインターネットの接続を待っています

[HOWTO] Microsoft Office で Visual Basic for Applications から Visual Basic .NET クラス ライブラリを呼び出す方法

Office 2003 のサポートは終了しました

マイクロソフトでは、2014 年 4 月 8 日に Office 2003 のサポートを終了しました。この変更は、ソフトウェアの更新プログラムおよびセキュリティ オプションに影響しています。 この変更の意味および保護された状態を維持する方法について説明します。

概要
この資料では、Visual Basic for Applications から .NET クラス ライブラリを呼び出す方法について手順を追って説明します。この資料のサンプルでは、Visual Basic for Applications プログラムから Visual Basic .NET クラス ライブラリを使用して、文字列の暗号化と復号化を行う方法を示します。.NET Framework に含まれている cryptography 名前空間を使用して、暗号化と復号化を行うことができます。

先頭に戻る

Visual Basic .NET クラス ライブラリを作成する

  1. Microsoft Visual Studio .NET を起動します。[ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。[Visual Basic プロジェクト] の [クラス ライブラリ] をクリックします。[プロジェクト名] に CryptoClass と入力し [OK] をクリックします。デフォルトで Class1 が作成されます。
  2. Class1 の内容を以下のコードで置き換えます。

    Imports System.Security.Cryptography<ComClass(Class1.ClassId, Class1.InterfaceId, Class1.EventsId)> Public Class Class1    Public Const ClassId As String = "98349785-8BE2-4604-848D-F5B103D61715"    Public Const InterfaceId As String = "36613EE9-125F-493d-9968-771E18C2226A"    Public Const EventsId As String = "A036F02F-F87E-4548-A536-7DD7EA8E62B5"    Const sKey As String = "MyKey"    Public Function EncryptTripleDES(ByVal sIn As String) As String        Dim DES As New TripleDESCryptoServiceProvider()        Dim hashMD5 As New MD5CryptoServiceProvider()        ' Compute the MD5 hash.        DES.Key = hashMD5.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(sKey))        ' Set the cipher mode.        DES.Mode = CipherMode.ECB        ' Create the encryptor.        Dim DESEncrypt As ICryptoTransform = DES.CreateEncryptor()        ' Get a byte array of the string.        Dim Buffer As Byte() = System.Text.ASCIIEncoding.ASCII.GetBytes(sIn)        ' Transform and return the string.        Return Convert.ToBase64String(DESEncrypt.TransformFinalBlock(Buffer, 0, Buffer.Length))    End Function    Public Function DecryptTripleDES(ByVal sOut As String) As String        Dim DES As New TripleDESCryptoServiceProvider()        Dim hashMD5 As New MD5CryptoServiceProvider()        ' Compute the MD5 hash.        DES.Key = hashMD5.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(sKey))        ' Set the cipher mode.        DES.Mode = CipherMode.ECB        ' Create the decryptor.        Dim DESDecrypt As ICryptoTransform = DES.CreateDecryptor()        Dim Buffer As Byte() = Convert.FromBase64String(sOut)        ' Transform and return the string.        Return System.Text.ASCIIEncoding.ASCII.GetString(DESDecrypt.TransformFinalBlock(Buffer, 0, Buffer.Length))    End FunctionEnd Class						

    : GUID ジェネレータを使用して、ClassId、InterfaceId、および EventsId の新しい GUID を作成できます。新しい GUID を作成するには、[ツール] メニューの [GUID の作成] をクリックします。
  3. プロジェクトのプロパティで [構成プロパティ] をクリックします。[ビルド] をクリックし、[COM 相互運用機能に登録] チェック ボックスをオンにします。[OK] をクリックします。
  4. [ビルド] メニューの [ソリューションのビルド] をクリックして DLL を作成します。
先頭に戻る

.NET クラス ライブラリを呼び出す Visual Basic for Applications マクロを作成する

  1. Microsoft Excel を起動します。Alt キーを押しながら F11 キーを押して Visual Basic Editor を起動します。
  2. [挿入] メニューの [標準モジュール] をクリックして、空白のモジュールを挿入します。
  3. [ツール] メニューの [参照設定] をクリックします。CryptoClass ライブラリへの参照を追加し、[OK] をクリックします。
  4. Module1 のコード ウィンドウに、以下のコードを入力するか貼り付けます。
    Sub TestCrypto()  Dim oCrypto As New CryptoClass.Class1  Dim sCrypt As String    sCrypt = oCrypto.EncryptTripleDES("This is a test")  MsgBox "Encrypted text = " & sCrypt  MsgBox "Decrypted text = " & oCrypto.DecryptTripleDES(sCrypt)End Sub					
先頭に戻る

コードをテストする

  1. [ツール] メニューの [マクロ] をクリックします。マクロの一覧で、[TestCrypto] をクリックし、[実行] をクリックします。
  2. メッセージ ボックスに暗号化された文字列が表示されたら、[OK] をクリックします。2 番目のメッセージ ボックスに復号化された文字列が表示されます。
  3. .NET Framework を実行している別のコンピュータでクラス ライブラリを登録する必要がある場合は、DLL をそのシステムにコピーし、次のコマンドを実行します。
    regasm CryptoClass.dll /tlb:CryptoClass.tlb
先頭に戻る
関連情報
関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
301070 [HOW TO] Visual Basic .NET を使用してファイルの暗号化および復号化を行う方法
詳細については、次の MSDN (Microsoft Developer Network) Web サイトを参照してください。先頭に戻る
crypto vba
プロパティ

文書番号:317535 - 最終更新日: 06/29/2007 04:00:37 - リビジョン: 8.3

  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Office PowerPoint 2003
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft Office Word 2003
  • Microsoft Visual Studio .NET 2003 Professional Edition
  • Microsoft Word 2002
  • Microsoft Visual Studio .NET 2002 Professional Edition
  • kbcrypt kbsecurity kbhowtomaster KB317535
フィードバック