2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

変数の中身をファイルに保存する

Posted at

VBAには値型の変数の中身をファイルに保存する機能が備わっています。

VBScriptでは使えない、構文がちょっと面倒といった欠点はありますが、簡単な情報の保存には使える気がします。

使用するもの

今回使用するのは以下のステートメントです。

Open ステートメント
Put ステートメント
Get ステートメント

Open

Openはファイル操作を開始するためのステートメントです。
ModeとしてBinaryを指定することで、バイナリデータの入出力が可能になります。

Put

Putは変数をファイルに書き出すためのステートメントです。
値型であれば、ユーザー定義型や配列も保存することが出来ます。

Get

Getはファイルの中身を変数に読み込むためのステートメントです。
PutとGetは対として使用します。

サンプルコード

tempフォルダに適当なファイルを作って保存し、そのファイルからデータを読み込むサンプルです。

コードにもあるように、数字・文字列・日付といった値型の要素であれば問題無く保存、読み込みが可能です(二次元配列も問題無く保存することが出来ます)。

Sub VariableSaveTest()
    Dim tmpPath As String
    tmpPath = Environ$("tmp") & "\vba_temp.bin"
    
    Dim saveData As Variant
    saveData = Array(1024, "abc", Now)
    
    '保存
    SaveVariable tmpPath, saveData
    
    '読込
    Dim loadData As Variant
    loadData = LoadVariable(tmpPath)
    
    Stop '中身確認
End Sub


Sub SaveVariable(filePath As String, var As Variant)
    Dim fNo%: fNo = FreeFile()
    
    Open filePath For Binary As fNo
        Put fNo, , var
    Close fNo
    
End Sub

Function LoadVariable(filePath As String) As Variant
    Dim fNo%: fNo = FreeFile()
    
    Open filePath For Binary As fNo
        Get fNo, , LoadVariable
    Close fNo
    
End Function
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?