お世話になります。
VB6にて下記ソースの様にバイトオーダのエンディアン変換を行っているのですが、
一旦Stringに入れ込んでいるせいなのか、
非常に処理が遅く困っております。
2Btyteのデータの入れ替えだけなのですが、
高速化もしくは単純化する方法がございましたら教えていただけないでしょうか
Public Function Swap(ByVal L As Long) As Integer
Dim S As String
S = Right(String(4, "0") & Hex(L), 4)
Swap = CInt("&H" & Right(S, 2) & Left(S, 2))
End Function
No.2ベストアンサー
- 回答日時:
構造体を使ってバイトを入れ替える方法。
Public Type Data4Byte2
myByte(1) As Byte
End Type
Public Type Data4Byte4
myByte(3) As Byte
End Type
Public Type Data4Integer
myInteger As Integer
End Type
Public Type Data4Long
myLong As Long
End Type
Public Function Swap(ByVal L As Long) As Integer
Dim d4b2 As Data4Byte2
Dim d4b4 As Data4Byte4
Dim d4i As Data4Integer
Dim d4l As Data4Long
'
d4l.myLong = L
LSet d4b4 = d4l
d4b2.myByte(0) = d4b4.myByte(1)
d4b2.myByte(1) = d4b4.myByte(0)
LSet d4i = d4b2
Swap = d4i.myInteger
End Function
ありがとうございました
おかげさまで、
なんと23sかかっていた処理が13sと大幅に短縮ができました。
構造体を使うなんて、なんて発想が柔軟なんでしょう!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- Visual Basic(VBA) Excel VBA メール作成について 本文の中にExcel でコピーした図を上下に2つ 貼り付けを 2 2023/06/14 01:48
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
char str[256]の256の意味は?
-
COBOLのCOMP形式について
-
10Mバイトて文字数に すると何...
-
UTF-8で5~6バイトになる文字コ...
-
ビットスワップとバイトスワッ...
-
VBでShift_JISへurlエンコード...
-
ピクセル,dpiから容量(バイト...
-
エクセルシート名の制限を変更...
-
GetWindowTextでアドレスバーか...
-
ReadProcessMemoryの読み込みバ...
-
機種依存文字をチェックしたい。
-
バイト配列 抜き出す
-
「1TB」のHDDに日本語は何字入...
-
全角半角を調べるライブラリ関...
-
バイナリファイルの読込み(小...
-
2byte文字の判定
-
VBAでShift-JISのURLエンコード
-
:(コロン)のKeyCode
-
バイナリとBCDコード
-
64bit対応
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UTF-8で5~6バイトになる文字コ...
-
10Mバイトて文字数に すると何...
-
エクセルシート名の制限を変更...
-
COBOLのCOMP形式について
-
char str[256]の256の意味は?
-
バイナリとBCDコード
-
「1TB」のHDDに日本語は何字入...
-
Javaで日本語1文字のバイト数
-
バイト列とバイナリ列の違いが...
-
SQLで1バイト、2バイト混在...
-
ピクセル,dpiから容量(バイト...
-
C++ Builderで文字列をバイトに...
-
64bit対応
-
ワイド文字のバイト数が取得で...
-
UCS-2の一覧表が欲しい
-
3バイト文字(UTF-8)をprintfで...
-
VBAでShift-JISのURLエンコード
-
機種依存文字をチェックしたい。
-
ビットスワップとバイトスワッ...
-
VBSでテキストファイルの文字列...
おすすめ情報