Home » エクセルマクロ・Excel VBAの使い方 » 配列 » Byte配列を使って先頭・末尾から指定文字数を削除

Byte配列を使って先頭・末尾から指定文字数を削除

「byte配列 先頭 指定文字数削除」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

どのプログラミング言語について調べていたのかわかりませんけれど、VBA(Visual Basic for Applications)のマクロを2つご紹介しておきます。

[スポンサードリンク]

Byte型配列を利用して末尾の指定文字数を削除するサンプルマクロ

「byte配列 先頭 指定文字数削除」
ということですが、末尾の文字列を削除する動きを、先に確認するほうがいいように感じます。

以下のSubプロシージャを実行すると、定数・ORGに指定された「松竹梅」という文字列から、定数・DELで指定された末尾の「1」文字削除した「松竹」という文字列が変数・retに代入されているのを、ローカルウィンドウで確認できます。

Sub Byte配列で末尾のn文字削除()
  Const ORG = "松竹梅"  ' 元の文字列
  Const DEL = 1  ' 削除する文字数

  Dim arr_org() As Byte, arr_ret() As Byte
  Dim ret As String
  Dim i As Long

  arr_org = ORG
  ReDim arr_ret(UBound(arr_org) - DEL * 2)
  For i = 0 To UBound(arr_ret)
    arr_ret(i) = arr_org(i)
  Next i
  ret = arr_ret
  Stop
End Sub

元の文字列の格納されているByte配列から、指定文字数削除したByte配列を用意して、
  ReDim arr_ret(UBound(arr_org) - DEL * 2)

入れなおしてやれば、指定文字数を削除できます。
  For i = 0 To UBound(arr_ret)
    arr_ret(i) = arr_org(i)

Byte型配列を利用して先頭の指定文字数を削除するサンプルマクロ

で、以下のSubプロシージャを実行すると、定数・ORGに指定された「松竹梅」という文字列から、定数・DELで指定された先頭の「1」文字削除した「竹梅」という文字列が変数・retに代入されているのを、ローカルウィンドウで確認できます。

Sub Byte配列で先頭のn文字削除()
  Const ORG = "松竹梅"  ' 元の文字列
  Const DEL = 1  ' 削除する文字数
  
  Dim arr_org() As Byte, arr_ret() As Byte
  Dim ret As String
  Dim i As Long

  arr_org = ORG
  ReDim arr_ret(UBound(arr_org) - DEL * 2)
  For i = 0 To UBound(arr_ret)
    arr_ret(i) = arr_org(i + DEL * 2)
  Next i
  ret = arr_ret
  Stop
End Sub

先ほどの末尾の文字列を削除するプロシージャと考え方はよく似ていますが、先頭から削除するのでFor~Nextループ内の、
    arr_ret(i) = arr_org(i + DEL * 2)
の部分が異なります。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » 配列 » Byte配列を使って先頭・末尾から指定文字数を削除

「配列」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.