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型の配列で返します。

以前のGoogle マップを使う。前のページ

PDFファイルに差し込み印刷するVBAマクロ次のページ

関連記事

  1. Office関連

    [Excel 2013]Web関数を使ってマッシュアップ

    以前書いた記事「Excel 2013で追加された「WEBSERVICE…

  2. Office アドイン

    [Office用アプリ]アプリ開発コンテスト・受賞者発表

    以前書いた記事でお知らせしていた「Apps for Office アプ…

  3. Excel

    Python in Excelのパブリックプレビューがリリースされました。

    ※ 本記事の内容は、2023年8月時点ではまだパブリックプレビュー段階…

  4. Office関連

    [OneNote]クリップボードから新しいページに貼り付け

    何かをメモするとき、ファイルを保存するとき等々、私はよくOneNote…

  5. Office関連

    代替テキストを削除するPowerPointマクロ

    PowerPointの図やSmartArt、グループやグラフといった視…

  6. Office関連

    Outlookの連絡先をvcf形式で一括保存する方法

    Outlookの連絡先をvcf形式で保存する場合、通常は「連絡先を v…

コメント

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

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

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP