TARU-NET.JP

ExcelVBA ClassModules
HashAlgorithms 動作確認: Excel 2000-2003 更新日: 2014/02/05 Reference Download

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

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

主な機能:
・指定した文字列、ファイルのハッシュ値(MD5/SHA1)を求めることが出来る。
・他のモジュールを使用しないためExcelファイル内で処理を完結することが出来る。
・三種類の文字コード([SHIFT-JIS/UTF-8/UNICODE)コードを扱ったハッシュ変換が出来る。

・複数のクラスを[Interfaceによる利用/Instanceによる利用]と2パターンのサンプルでまとめているので、VBAにおけるクラスモジュールの使い方を実例に基づいて学習出来る。
 →「こうやって他のクラスを利用するんだ」とか「VBAでインターフェイスの継承はこうするんだ」とか「なんか面倒なわりにいまいちだね」など、色々と何かを掴めるかもしれません。

HashAlgorithms クラスモジュール
作成日:2014/02/05
更新日:2014/02/05





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]の詳細に関してはそれぞれのオンラインリファレンスを参照してください。

主な機能:
・指定した文字列、ファイルのハッシュ値(MD5/SHA1)を求めることが出来る。
・他のモジュールを使用しないためExcelファイル内で処理を完結することが出来る。
・三種類の文字コード([SHIFT-JIS/UTF-8/UNICODE)コードを扱ったハッシュ変換が出来る。

・複数のクラスを[Interfaceによる利用/Instanceによる利用]と2パターンのサンプルでまとめているので、VBAにおけるクラスモジュールの使い方を実例に基づいて学習出来る。
 →「こうやって他のクラスを利用するんだ」とか「VBAでインターフェイスの継承はこうするんだ」とか「なんか面倒なわりにいまいちだね」など、色々と何かを掴めるかもしれません。



PREPARATION -- 準備


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

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


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


最初に[Dim HashAlgorithms As New HashAlgorithms]を宣言し、オブジェクトを使用可能にします。
オブジェクトを[Dim HashAlgorithms]とした場合の記述方法は以下の通りです。
            Dim HashAlgorithms As New HashAlgorithms
		
○[MD5]オブジェクト「HashAlgorithms.MD5」プロパティ
MD5ハッシュ値の算出を行うには、「HashAlgorithms.MD5」プロパティを使用します。
[MD5]オブジェクトに関するメソッドはMD5のオンラインリファレンスを参照してください。
            HashAlgorithms.MD5.Text = "a"
		
○[SHA1]オブジェクト「HashAlgorithms.SHA1」プロパティ
SHA1ハッシュ値の算出を行うには、「HashAlgorithms.SHA1」プロパティを使用します。
[SHA1]オブジェクトに関するメソッドはSHA1のオンラインリファレンスを参照してください。
            HashAlgorithms.SHA1.Text = "a"
		


EXAMPLE INSTANCE -- 使用例 Instance版

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

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

                objHash.SHA1.Text = "message digest"
                Debug.Print objHash.SHA1.TextHash
            End Sub
		
例3:文字コードを指定して文字列のMD5とSHA1ハッシュ値を取得する。
            Sub Main()
                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 Main()
                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"
		
○[Text]オブジェクト「HashAlgorithms.Text」プロパティ
ハッシュ値を求めたい文字列を指定するには、「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 Main()
                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 Main()
                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 Main()
                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 Main()
                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/


COPYRIGHT

Copyright (C) 2014, Syunzi Shimohata. Japan. All Rights Reserved.