Office関連

文字列を指定した文字数で分割するVBA関数

“01234567890123456789012…”というような長い文字列を一定の文字数で区切る必要があったので、簡単に処理を考えてみました。

Option Explicit

Public Sub Sample()
  Dim v As Variant
  Dim s As String
  
  s = "01234567890123456789012"
  s = s & "34567890123456789012345"
  s = s & "67890123456789012345678"
  s = s & "90123456789012345678901"
  s = s & "23456789012345678901234"
  s = s & "56789012345678901234567"
  s = s & "89012345678901234567890"
  s = s & "12345678901234567890123"
  s = s & "45678901234567890123456"
  s = s & "7890123456789012345"
  
  v = SplitStr(s, 10)
  Debug.Print s
  Debug.Print "----------"
  Debug.Print Join(v, vbCrLf)
End Sub

Private Function SplitStr(ByVal TargetStr As String, ByVal StrLength As Long) As Variant
'文字列を指定した文字数で分割
  Dim v As Variant
  Dim n As Long
  Dim i As Long
  
  n = 0 '初期化
  ReDim v(0 To Round(Len(TargetStr) / StrLength - 0.5, 0)) '切り捨て
  For i = 1 To Len(TargetStr) Step StrLength
    v(n) = Mid(TargetStr, i, StrLength)
    n = n + 1
  Next
  SplitStr = v
End Function

上記SplitStr関数は、指定した文字数で文字列を分割して結果をVariant型の配列で返します。

関連記事

  1. Office関連

    WordBasicマクロの資料

    Word 97でVBA機能が搭載される以前のWordでは、WordBa…

  2. Office関連

    Re: 【Wordマクロ】Word起動時に、前回終了時に開いていたファイルを表示

    Word MVPの新田さんがブログで面白い記事を書かれていました。…

  3. アイコン一覧

    Office 2013 アイコン一覧(W)

    ・Office 2013 アイコン一覧 NUM…

  4. Office関連

    [Word VBA]ルビ(ふりがな)ダイアログの操作に挑む(2)

    2016/10/28 追記:改良版のマクロを書きました。…

  5. Office関連

    「クイックアクセスツールバーからPowerPointマクロを実行するアドイン」のコード

    2年ほど前に書いたPowerPointマクロの記事「クイックアクセスツ…

  6. Office関連

    Word 2013の「個人用テンプレート」はどこ?

    Word 2010では、から「個人用テンプレート」(カスタム テンプレ…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

Time limit is exhausted. Please reload CAPTCHA.

最近の記事

アーカイブ

RapidSSL_SEAL-90x50
PAGE TOP