NAME

        HashAlgorithms -- MD5  クラスモジュール
                          SHA1 クラスモジュール
		


SYNOPSIS

        Sub Main()
            Dim objHash As New HashAlgorithms

            objHash.MD5.Text = "a"
            Debug.Print objHash.MD5.TextHash

            objHash.SHA1.Text = "a"
            Debug.Print objHash.SHA1.TextHash
        End Sub
		

DESCRIPTION



AN OUTLINE -- 概要

MD5SHA1 をまとめたクラスモジュールでExcelVBAから文字列やファイルのハッシュ値をそれぞれ求めることが出来ます。
他のモジュールを使用していないので、Excelが動作する環境であればファイル内で完結した処理が行えます。

なお、[MD5/SHA1]の詳細に関してはそれぞれのオンラインリファレンスを参照してください。

主な機能:
・指定した文字列、ファイルのハッシュ値を求めることが出来る。
・他のモジュールを使用しないため、Excelファイル内で処理を完結することが出来る。
・三種類の文字コード([SHIFT-JIS/UTF-8/UNICODE)コードを扱ったハッシュ変換が出来る。
・複数のクラスを[Interfaceによる利用/Instanceによる利用]と2パターンのサンプルでまとめているので、VBAにおけるクラスモジュールの使い方を実例に基づいて学習出来る。
→「こうやって他のクラスを利用するんだ」とか「VBAでインターフェイスの継承はこうするんだ」とか「なんか面倒なわりにいまいちだね」など、色々と何かを掴めるかもしれません。



PREPARATION -- 準備

[DOWNLOAD] から、本ExcelBookをダウンロードします。

ダウンロードが完了したらマクロを有効にして開いてください。そこにサンプルモジュールと本モジュールが含まれています。

※クラスをエクスポート、インポートする事で別のExcelBookでも使用することが出来ます。



HOW TO USE INSTANCE -- 使用方法 Instance版

最初に[Dim objHashAlgorithms As New HashAlgorithms]を宣言し、オブジェクトを使用可能にします。
オブジェクトを[Dim objHashAlgorithms]とした場合の記述方法は以下の通りです。

        Dim objHashAlgorithms As New HashAlgorithms
		
○[MD5]オブジェクト「HashAlgorithms.MD5」プロパティ
MD5ハッシュ値の算出を行うには、「HashAlgorithms.MD5」プロパティを使用します。
[MD5]オブジェクトに関するメソッドはMD5の オンラインリファレンス を参照してください。
        objHashAlgorithms.MD5.Text = "a"
		
○[SHA1]オブジェクト「HashAlgorithms.SHA1」プロパティ
SHA1ハッシュ値の算出を行うには、「HashAlgorithms.SHA1」プロパティを使用します。
[SHA1]オブジェクトに関するメソッドはSHA1の オンラインリファレンス を参照してください。
        objHashAlgorithms.SHA1.Text = "a"
		


EXAMPLE INSTANCE -- 使用例 Instance版

例1:文字列のMD5ハッシュ値を取得する。
        Sub Sample()
            Dim objHash As New HashAlgorithms

            objHash.MD5.Text = "message digest"
            Debug.Print objHash.MD5.TextHash
        End Sub
		
例2:文字列のSHA1ハッシュ値を取得する。
        Sub Sample()
            Dim objHash As New HashAlgorithms

            objHash.SHA1.Text = "message digest"
            Debug.Print objHash.SHA1.TextHash
        End Sub
		
例3:文字コードを指定して文字列のMD5とSHA1ハッシュ値を取得する。
        Sub Sample()
            Dim objHash As New HashAlgorithms

            objHash.MD5.Charset = "UTF-8"
            objHash.MD5.Text = "本日は晴天なり 2014/2/4"
            Debug.Print objHash.MD5.TextHash

            objHash.SHA1.Charset = "UTF-8"
            objHash.SHA1.Text = "本日は晴天なり 2014/2/4"
            Debug.Print objHash.SHA1.TextHash
        End Sub
		
例4:ファイルのMD5とSHA1のハッシュ値を取得する。
        Sub Sample()
            Dim objHash As New HashAlgorithms

            objHash.MD5.FilePath = "C:\hoge.txt"
            Debug.Print objHash.MD5.FileHash

            objHash.SHA1.FilePath = "C:\hoge.txt"
            Debug.Print objHash.SHA1.FileHash
        End Sub
		


HOW TO USE INTERFACE -- 使用方法 Interface版

最初に使用したいクラス[Dim objSHA1 As New SHA1] or [Dim objMD5 As New MD5]を宣言しオブジェクトを使用可能にします。
次に[Interface]である[HashAlgorithms]のオブジェクトを作成し、上で作成したオブジェクトをセットします。
[Interface]オブジェクトを[Dim objHash As HashAlgorithms]とした場合の記述方法は以下の通りです。

        Dim objSHA1 As New SHA1
        Dim objHash As HashAlgorithms
        Set objHash = objSHA1
		
○[Charset]オブジェクト「HashAlgorithms.Charset」プロパティ
文字列の文字コードを指定するには、「HashAlgorithms.Charset」プロパティを使用します。
指定可能な文字コードは[SHIFT-JIS][UTF-8][UNICODE]の三種類となります。
注:何も指定しない場合は[SHIFT-JIS]が設定されます。
        objHash.Charset = "UTF-8"
		
○[SHA1]オブジェクト「HashAlgorithms.SHA1」プロパティ
ハッシュ値を求めたい文字列を指定するには、「HashAlgorithms.Text」プロパティを使用します。
        objHash.Text = "a"
		
○[FilePath]オブジェクト「HashAlgorithms.FilePath」プロパティ
ハッシュ値を求めたいファイルを指定するには、「HashAlgorithms.FilePath」プロパティを使用します。
        objHash.FilePath = "C:\hoge.txt"
		
○文字列のハッシュ値を取得「HashAlgorithms.TextHash」メソッド
[HashAlgorithms.Text]にて設定した文字列のハッシュ値を取得するには、「HashAlgorithms.TextHash」メソッドを使用します。
        value = objHash.TextHash
		
○ファイルのハッシュ値を取得「HashAlgorithms.FileHash」メソッド
[HashAlgorithms.FilePath]にて設定したファイルのハッシュ値を取得するには、「HashAlgorithms.FileHash」メソッドを使用します。
        value = objHash.FileHash
		


EXAMPLE INTERFACE -- 使用例 Interface版

例1:文字列のMD5ハッシュ値を取得する。
        Sub Sample()
            Dim objMD5 As New MD5
            Dim objHash As HashAlgorithms
            Set objHash = objMD5

            objHash.Text = "message digest"
            Debug.Print objHash.TextHash
        End Sub
		
例2:文字列のSHA1ハッシュ値を取得する。
        Sub Sample()
            Dim objSHA1 As New SHA1
            Dim objHash As HashAlgorithms
            Set objHash = objSHA1

            objHash.Text = "message digest"
            Debug.Print objHash.TextHash
        End Sub
		
例3:文字コードを指定して文字列のMD5とSHA1ハッシュ値を取得する。
        Sub Sample()
            Dim objMD5 As New MD5
            Dim objSHA1 As New SHA1
            Dim objHash As HashAlgorithms

            Set objHash = objMD5
            objHash.Charset = "UTF-8"
            objHash.Text = "本日は晴天なり 2014/2/4"
            Debug.Print objHash.TextHash

            Set objHash = objSHA1
            objHash.Charset = "UTF-8"
            objHash.Text = "本日は晴天なり 2014/2/4"
            Debug.Print objHash.TextHash
        End Sub
		
例4:ファイルのMD5とSHA1のハッシュ値を取得する。
        Sub Sample()
            Dim objMD5 As New MD5
            Dim objSHA1 As New SHA1
            Dim objHash As HashAlgorithms

            Set objHash = objMD5
            objHash.FilePath = "C:\hoge.txt"
            Debug.Print objHash.FileHash

            Set objHash = objSHA1
            objHash.FilePath = "C:\hoge.txt"
            Debug.Print objHash.FileHash
        End Sub
		


REFERENCE

Name Description Syntax


ATTENTION

・本クラスモジュールを利用した事によるいかなる損害も一切の責任を負いません。

・感想や要望、不具合などありましたら、作者までご連絡ください。



MEMO

本モジュールの本文中に「NAME/VERSION/AUTHOR/COPYRIGHT」が記載されています。



CONTRIBUTION

寄付歓迎

本モジュールはフリーですが、「このモジュールのおかげで、素晴らしいソフトが作れた」など、寄付をしていただける方がいましたら、作者宛までご一報ください。

なお受け付けている物は、お金(日本通貨円)、食料(酒/缶詰/お米など)となっております。



DOWNLOAD

<<---DOWNLOAD HashAlgorithms--->>



VERSION

Version:1.00 - Wed Feb 5, 2014



AUTHOR

Syunzi Shimohata < webmaster@taru-net.jp > http://www.taru-net.jp/