お世話になります。
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ランキング
-
10Mバイトて文字数に すると何...
-
ビットスワップとバイトスワッ...
-
UTF-8で5~6バイトになる文字コ...
-
char str[256]の256の意味は?
-
バイト列とバイナリ列の違いが...
-
VB 2008: LenB関数の代行機能は...
-
PHP 文字列抽出
-
バイナリとBCDコード
-
「1TB」のHDDに日本語は何字入...
-
全角半角を調べるライブラリ関...
-
シフトJISの2バイト文字
-
最大長を用意せずにバイナリデ...
-
unicode←→JISコード
-
iconv変換後のサイズについて
-
任意のアルファベットの2進表...
-
Visual C++ 2008 Express Editi...
-
VBでShift_JISへurlエンコード...
-
memcmp バイナリデータの比較方法
-
UTF-8とUTF-16について質問です。
-
ポインター引数の関数でコンパ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
10Mバイトて文字数に すると何...
-
UTF-8で5~6バイトになる文字コ...
-
char str[256]の256の意味は?
-
エクセルシート名の制限を変更...
-
COBOLのCOMP形式について
-
バイナリとBCDコード
-
バイト列とバイナリ列の違いが...
-
ビットスワップとバイトスワッ...
-
ピクセル,dpiから容量(バイト...
-
SQLで1バイト、2バイト混在...
-
Javaで日本語1文字のバイト数
-
「1TB」のHDDに日本語は何字入...
-
機種依存文字をチェックしたい。
-
VBAでShift-JISのURLエンコード
-
GetWindowTextでアドレスバーか...
-
COBOL PICTUREで X,S,Vの意味
-
【VB2005】テキストボックス内...
-
URLは最高何文字まで可能なので...
-
1KBが1024byteな理由
-
ワイド文字のバイト数が取得で...
おすすめ情報