滝の音

滝の音

名こそ流れてなお聞こえけれ

VBAで暗号を実装しよう その2 暗号文をメモ帳で管理

  • はじめに

前回スキュタレー暗号を扱いましたが
書いたコードで不便な場所があったので
ひとつ「形式の修正」をします。

  • メモ帳を扱う

前回はシート上のセルから文字列を読み込んで
また別のセルに書き出していましたが
それだとちょっと不便かもしれないので
メモ帳から文字列を読み込んで
VBAで演算をして
結果をメモ帳に返す仕様にしましょう。

  • コード

まずはファイルから文字列を読み込んで
その値を返す関数です。

Function txt_input() As String
 Dim ans As String
 Dim file_name As String
 
 file_name = "ここにファイルのアドレスを載せます"
 Open file_name For Input As #1
    Line Input #1, ans
 Close #1
 txt_input = ans
End Function

次は演算した文字列データを
ファイルに書き出す関数です。

Function txt_output(str As String)

 Dim file_name As String
 
 file_name = "ここにファイルのアドレスを載せます"
 Open file_name For Output As #1
    Print #1, str
 Close #1

End Function
  • 組み込んでみよう

スキュタレー暗号に組み込んでみましょう。

関数をプログラムの中に組み込むことって
意外と難しいですよね。。

どこに組み込めばいいんだろう??
という風になりがち。

Sub Scytare_coding()
 Sheets("スキュタレー").Activate
 Dim str As String
 Dim str2 As String
'------------------
'strを認識
'------------------
 str = txt_input
'------------------
'strを暗号化
'------------------
 str2 = coding(str)
'------------------
'str2を記述
'------------------
 Call txt_output(str2)
End Sub

各関数は既出なので
気になる方は前回の投稿を見てください。

機能を分割しておくと
その中のどれかをちょっと書き換えるだけで済むから楽ですね~

  • まとめ

さっきも書いたのですが
機能を分割しておけば
仕様を変えたいときに変えやすいですね。
オブジェクト指向ではないのだろうけど
このやり方もまるっきり不便というわけではないかなと思っています。