[[20211124221126]]@w”¼Šp‚Æ‘SŠp¬Ý‚Ì•¶Žš—ñ•ªŠ„‚ɂ‚¢‚ÄBxiƒCƒ}j@ƒy[ƒW‚ÌÅŒã‚É”ò‚Ô

[ ‰‚ß‚Ä‚Ì•û‚Ö | ˆê——(ÅVXV‡) | ‘S•¶ŒŸõ | ‰ß‹ŽƒƒO ]

@

w”¼Šp‚Æ‘SŠp¬Ý‚Ì•¶Žš—ñ•ªŠ„‚ɂ‚¢‚ÄBxiƒ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 ExcelFExcel2019AŽg—p OSFWindows10 „


 ‚±‚ñ‚ÈŠ´‚¶‚Å‚Í‚Ç‚¤‚Å‚µ‚傤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
ihatenaj 2021/11/25(–Ø) 04:58

ƒÁ—l
hatena—l
ƒTƒ“ƒvƒ‹ƒR[ƒh‚²’ñŽ¦‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B
ŽQl‚É‚³‚¹‚Ä‚¢‚½‚¾‚«‚Ü‚·B
iƒCƒ}j 2021/11/25(–Ø) 10:59

Œ»Ý‰º‹L‚̃R[ƒh‚Å
 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
ihatenaj 2021/11/25(–Ø) 14:32

hatena—l@
‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B
‚±‚Ì‚Ü‚Ü‚Å‚ÍDebug.Print‚ª•\Ž¦‚³‚ê‚Ü‚¹‚ñ‚ª
‚±‚¿‚ç‚Í”¼Šp‘SŠp¬‡‚Å
40ƒoƒCƒg‚ÅŠ„‚èØ‚ê‚È‚¢ê‡A•¶Žš‰»‚¯‚µ‚È‚¢ƒTƒ“ƒvƒ‹‚Å‚µ‚傤‚©B
‚»‚ê‚Æ‚à‚ ‚­‚Ü‚Å
40ƒoƒCƒg‚²‚ƂɃJƒ“ƒ}‚ð‘}“ü‚·‚éƒCƒ[ƒW‚Å‚µ‚傤‚©B
‚¨Žè”‚ð‚¨‚©‚¯‚µ‚Ü‚·B
iƒCƒ}j 2021/11/25(–Ø) 14:51

ƒÁ—lB
ƒTƒ“ƒvƒ‹•‚©‚è‚Ü‚·B
‚±‚¿‚ç‚̃R[ƒh‚̓Zƒ‹‘€ì‚Å‚·‚ª
debug.print‚Å•\Ž¦‚Å‚«‚é‚悤‚É
‚·‚é‚ƃR[ƒh“I‚ɂǂ̂悤‚É‚È‚è‚Ü‚·‚©B
‚¨Žè”‚ð‚¨‚©‚¯‚µ‚Ü‚·B
iƒCƒ}j 2021/11/25(–Ø) 14:54

 ‚±‚¿‚ç‚Å‚Í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 

ihatenaj 2021/11/25(–Ø) 15:00


hatena—l
Ž¸—炵‚Ü‚µ‚½B
Debug.PrintŠm”F‚Å‚«‚Ü‚µ‚½B
ŽÀۂ̃eƒXƒgƒf[ƒ^‚©‚ç
‚¢‚ë‚¢‚ë‚ȃpƒ^[ƒ“‚̃eƒXƒgƒf[ƒ^‚ÅŒŸØ‚µ‚½‚Æ‚±‚ë
¡‚Ì‚Æ‚±‚ë–â‘è‚È‚­
³í‚ÈŽÀsŒ‹‰Ê‚ª“¾‚ç‚ê‚Ä‚¨‚è•‚©‚è‚Ü‚µ‚½B
‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚µ‚½B

iƒCƒ}j 2021/11/25(–Ø) 17:06


ƒRƒƒ“ƒg•ÔMF

[ ˆê——(ÅVXV‡) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.