お世話になります。
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バイトになる文字コ...
-
COBOLのCOMP形式について
-
エクセルシート名の制限を変更...
-
ビットスワップとバイトスワッ...
-
バイナリとBCDコード
-
memcmp バイナリデータの比較方法
-
char str[256]の256の意味は?
-
Javaで日本語1文字のバイト数
-
機種依存文字をチェックしたい。
-
3バイト文字(UTF-8)をprintfで...
-
unicode←→JISコード
-
ビットからバイトへの変換
-
2byte文字の判定
-
[VBScript][wsh]byte単位でのデ...
-
varchar(M)のMは文字数ですかバ...
-
バイト列とバイナリ列の違いが...
-
【VB】文字列を50バイトづつに...
-
ソケット通信の受信サイズ
-
0.5バイトづつ読み込みたいので...
マンスリーランキングこのカテゴリの人気マンスリー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な理由
-
ワイド文字のバイト数が取得で...
おすすめ情報