バイト配列にする
ここに載せてあるソースコードは、参考のために載せてあります
サンプルコードは、一番下にLZHとしてあります
Option Explicit '型←配列や、配列←型にするAPIです 'このAPIは、VBではサポートされていないようなので ' ~~~~~~~~~~~~~~~~~~ '使用するときは注意してください。 Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDest As Any, pSource As Any, ByVal ByteLen As Long) '構造体の宣言です Private Type type_X a As String * 50 b As String * 12 c As String * 15 d As Long e As Long End Type 'グローバル変数は、バイト配列だけです Dim bytArr() As Byte Private Sub Command1_Click() Dim x1 As type_X, xLen1 As Integer '構造体の大きさを取得します xLen1 = LenB(x1) '情報の設定です x1.a = "あいうえお" x1.b = "黒猫ルキア" x1.c = "ken3@24h.co.jp" x1.d = 256 x1.e = 500 '配列の大きさを変えます(0も含むから-1にしています) ReDim bytArr(xLen1 - 1) '「配列←型」にします CopyMemory bytArr(0), x1, xLen1 'コマンドボタンの制御です Command1.Enabled = False Command2.Enabled = True 'バイト配列になった情報を見たい時は、 'ここにStopなどを書いて、 'ローカルウィンドウでみましょう End Sub Private Sub Command2_Click() Dim x2 As type_X, xLen2 As Integer '構造体の大きさを取得します xLen2 = LenB(x2) '「型←配列」にします CopyMemory x2, bytArr(0), xLen2 '復元された情報をイミディエイトウィンドウに表示します Debug.Print x2.a Debug.Print x2.b Debug.Print x2.c Debug.Print x2.d Debug.Print x2.e 'コマンドボタンの制御です Command1.Enabled = True Command2.Enabled = False End Sub Private Sub Form_Load() '初期設定です Command2.Enabled = False End Sub |