[ �‰‚߂Ă̕û‚Ö | ˆê——(�Å�V�X�V�‡) | ‘S•¶ŒŸ�õ | ‰ß‹Žƒ�ƒO ]
�@
�w”¼Šp‚Æ‘SŠp�¬�݂̕¶Žš—ñ•ªŠ„‚ɂ‚¢‚Ä�B�x�iƒCƒ}�j
"‚P‚Q‚R‚S‚T‚U‚V‚W‚X‚O‚P‚Q‚R‚S‚T‚U‚V‚W‚Xa‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚Vb‚V"
�ã‹L‚̂悤‚È”¼Šp‚Æ‘SŠp‚Ì•¶Žš—ñ‚ª‚ ‚è
40byte‚²‚Ƃɋæ�؂肽‚¢�ê�‡‚É
•¶Žš—ñ‚Ì’l‚ª40byte‚ÅŠ„‚è�Ø‚ê‚È‚¢�ê�‡
"‚P‚Q‚R‚S‚T‚U‚V‚W‚X‚O‚P‚Q‚R‚S‚T‚U‚V‚W‚Xa"‚Ü‚Å
•¶Žš‰»‚¯‚ð‚µ‚È‚¢‚悤‚É�¶‚©‚ç•¶Žš—ñ‚ðŽæ‚è�o‚µ‚Ä‚¢‚é‚̂ł·‚ª
40byteˆÈ�~‚ðŽæ‚è�o‚·•û–@‚ŃAƒhƒoƒCƒX‚¢‚½‚¾‚¯‚È‚¢‚Å‚µ‚傤‚©�B
‚æ‚낵‚‚¨Šè‚¢‚¢‚½‚µ‚Ü‚·�B
"‚P‚Q‚R‚S‚T‚U‚V‚W‚X‚O‚P‚Q‚R‚S‚T‚U‚V‚W‚Xa‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚Vb‚V"
�«
‰º‹L‚̂悤‚É•ªŠ„
"‚P‚Q‚R‚S‚T‚U‚V‚W‚X‚O‚P‚Q‚R‚S‚T‚U‚V‚W‚Xa"(40byteˆÈ“à)
"‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚Vb"(40byteˆÈ“à)
Sub TEST()
�Z�ŠŠ¿Žš = "‚P‚Q‚R‚S‚T‚U‚V‚W‚X‚O‚P‚Q‚R‚S‚T‚U‚V‚W‚Xa‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚Vb‚V"
Debug.Print ConvLeftBStr(�Z�ŠŠ¿Žš, 40)
End Sub
Function ConvLeftBStr(varData As Variant, intLenB As Integer) As String
Dim strBin As String Dim strRet As String
strBin = StrConv((varData), vbFromUnicode)
If LenB(strBin) <= intLenB Then
strRet = (varData)
Else
If LenB(StrConv(LeftB(strBin, intLenB), vbUnicode)) = _
LenB(StrConv(LeftB(strBin, intLenB + 1), vbUnicode)) Then
strRet = StrConv(LeftB(strBin, intLenB - 1), vbUnicode)
Else
strRet = StrConv(LeftB(strBin, intLenB), vbUnicode)
End If
End If
ConvLeftBStr = strRet
End Function
�ƒ Žg—p Excel�FExcel2019�AŽg—p OS�FWindows10 �„
‚±‚ñ‚ÈŠ´‚¶‚ł͂ǂ¤‚Å‚µ‚傤�B
Sub test()
Const n As Long = 40
Dim s As String
Dim ss As String
ReDim ary(0 To 0) As String
s = "‚P‚Q‚R‚S‚T‚U‚V‚W‚X‚O‚P‚Q‚R‚S‚T‚U‚V‚W‚Xa‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚Vb‚V"
Columns("A").NumberFormat = "@"
Do
ss = LeftB(s, n)
ary(UBound(ary)) = ss
s = Replace(s, ss, "", Count:=1)
If s = "" Then Exit Do
ReDim Preserve ary(UBound(ary) + 1)
If LenB(StrConv(s, vbFromUnicode)) <= n Then
ary(UBound(ary)) = s
Exit Do
End If
Loop
[A1].Resize(UBound(ary) + 1, 1) = Application.Transpose(ary)
End Sub
# �C�³‚µ‚Ü‚µ‚½�B
# Ž¿–âŽÒ‚³‚ñ‚̃R�[ƒh‚ÅŠ®�¬‚µ‚Ä‚¢‚½‚̂ł·‚Ë�B‚Ç‚¤‚àŽ¸—ç�B
�iƒÁ�j 2021/11/25(–Ø) 01:16
’ñަ‚ÌConvLeftBStr‚ðŽg‚¤‚È‚ç�A
Sub TEST()
Dim �Z�ŠŠ¿Žš As String, res As String
�Z�ŠŠ¿Žš = "‚P‚Q‚R‚S‚T‚U‚V‚W‚X‚O‚P‚Q‚R‚S‚T‚U‚V‚W‚Xa‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚Vb‚Vaaa"
Do
res = ConvLeftBStr(�Z�ŠŠ¿Žš, 40)
Debug.Print res
If res = �Z�ŠŠ¿Žš Then Exit Do
�Z�ŠŠ¿Žš = Mid(�Z�ŠŠ¿Žš, Len(res) + 1)
Loop
End Sub
�ihatena�j 2021/11/25(–Ø) 04:58
�Z�ŠŠ¿Žš = "‚P‚Q‚R‚S‚T‚U‚V‚W‚X‚O‚P‚Q‚R‚S‚T‚U‚V‚W‚Xa‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚Vb‚V12345"‚¾‚Á‚½�ê�‡ ‚P‚Q‚R‚S‚T‚U‚V‚W‚X‚O‚P‚Q‚R‚S‚T‚U‚V‚W‚Xa, ‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚Vb‚V12345‚ƂȂé‚̂ł·‚ª ‰º‹L‚ÌŒ‹‰Ê‚̂悤‚É
‚P‚Q‚R‚S‚T‚U‚V‚W‚X‚O‚P‚Q‚R‚S‚T‚U‚V‚W‚Xa,
‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚Vb,
‚V12345
40byte‚²‚Ƃɔz—ñ‚ð‹æ�؂肽‚¢‚̂ł·‚ªƒAƒhƒoƒCƒX‚¢‚½‚¾‚¯‚邯�•‚©‚è‚Ü‚·�B
•â‘«‚Å‚·‚ª120byteˆÈ�ã‚ ‚é�ê�‡‚Í
”z—ñ‚Í‚S‚‚ɂȂÁ‚Ä‚¢‚‚Ì‚ð‘z’肵‚Ä‚¨‚è‚Ü‚·�B
�¡‰ñ‰º‹L‚Å‚²’ñަ‚³‚¹‚Ä‚¢‚½‚¾‚¢‚½ƒR�[ƒh‚Å
—¬—p‚·‚é�ê�‡‚Ì
ƒAƒhƒoƒCƒX‚𒸂¯‚½‚ç‘å•Ï�•‚©‚è‚Ü‚·�B
Sub test()
Dim address1 As String, address2 As String, address3 As String
Dim work As String
Dim ii As Integer
�Z�ŠŠ¿Žš = "‚P‚Q‚R‚S‚T‚U‚V‚W‚X‚O‚P‚Q‚R‚S‚T‚U‚V‚W‚Xa‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚Vb‚V12345"
For ii = 1 To Len(�Z�ŠŠ¿Žš)
work = Left(�Z�ŠŠ¿Žš, ii)
work = StrConv(work, vbFromUnicode)
If (LenB(work) > 40) Then
Exit For
End If
Next ii
address1 = Left(�Z�ŠŠ¿Žš, ii - 1) '�Z�Š‚P
address2 = Mid(�Z�ŠŠ¿Žš, ii) '�Z�Š‚Q
Debug.Print address1 & "," & address2
End Sub
�iƒCƒ}�j 2021/11/25(–Ø) 11:16
40ƒoƒCƒg‚²‚ƂɃJƒ“ƒ}‚ð‘}“ü‚µ‚½‚¢‚Æ‚¢‚¤‚±‚ƂȂç�A‰º‹L‚Å�B
Sub test()
Dim address As String
Dim �Z�ŠŠ¿Žš As String
Dim work As String
�Z�ŠŠ¿Žš = "‚P‚Q‚R‚S‚T‚U‚V‚W‚X‚O‚P‚Q‚R‚S‚T‚U‚V‚W‚Xa‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚Vb‚V12345"
Do
work = ConvLeftBStr(�Z�ŠŠ¿Žš, 40)
address = address & "," & work
If work = �Z�ŠŠ¿Žš Then Exit Do
�Z�ŠŠ¿Žš = Mid(�Z�ŠŠ¿Žš, Len(work) + 1)
Loop
address = Mid(address, 2)
Debug.Print address
End Sub
ConvLeftBStr‚ÍŽ¿–â‚É‚ ‚éŠÖ�”‚»‚̂܂܂Å�B
”z—ñ‚É‚µ‚½‚¢‚È‚ç�A�ÅŒã‚É Split(address,",") ‚Å”z—ñ‚ɕϊ·‚Å‚«‚Ü‚·�B �ihatena�j 2021/11/25(–Ø) 14:32
‚±‚¿‚ç‚Å‚Í�AƒCƒ~ƒfƒBƒGƒCƒgƒEƒBƒ“ƒhƒE‚É�A
‚P‚Q‚R‚S‚T‚U‚V‚W‚X‚O‚P‚Q‚R‚S‚T‚U‚V‚W‚Xa,‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚V‚Vb,‚V12345
‚ƃJƒ“ƒ}‹æ�Ø‚è‚Å•\ަ‚³‚ê‚Ă܂·‚¯‚Ç�B
Ž¿–â‚É‚ ‚鉺‹L‚̃R�[ƒh‚Í�í�œ‚µ‚Ä‚¢‚È‚¢‚Å‚·‚æ‚Ë�B
Function ConvLeftBStr(varData As Variant, intLenB As Integer) As String
Dim strBin As String
Dim strRet As String
strBin = StrConv((varData), vbFromUnicode)
If LenB(strBin) <= intLenB Then
strRet = (varData)
Else
If LenB(StrConv(LeftB(strBin, intLenB), vbUnicode)) = _
LenB(StrConv(LeftB(strBin, intLenB + 1), vbUnicode)) Then
strRet = StrConv(LeftB(strBin, intLenB - 1), vbUnicode)
Else
strRet = StrConv(LeftB(strBin, intLenB), vbUnicode)
End If
End If
ConvLeftBStr = strRet
End Function
�ihatena�j 2021/11/25(–Ø) 15:00
�iƒCƒ}�j 2021/11/25(–Ø) 17:06
[ ˆê——(�Å�V�X�V�‡) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.