[VBA] 文章を1文字ずつバラバラにして配列に入れるマクロ

 はい。今回はタイトルにあるように、文章を1文字ずつバラバラにして配列にぽいっと放り込むマクロ でごさいますよ~。たとえば

 言葉の妖精こばとです

て文章を

 [言][葉][の][妖][精][こ][ば][と][で][す]

というように分解して配列要素とするわけです。

 え? そんなマクロをいったい何に使うのかって? ...... 文章作成ソフト作ったり、文字を暗号文に変えたり(近日中に公開予定)、けっこう色々なことに応用できる ...... かもしれません。
 

文章を1文字ずつ配列に入れるマクロ

 まあとにかく、マクロはこんなかんじね~。

 Option Base 1

 '1文字ずつ配列に入れます

 Sub StringArray()

 Dim i As Integer
 Dim mylen As Integer
 Dim mystr As String
 Dim wd() As String

 '文章を用意します
 mystr = "言葉の妖精こばとです"

 '文章の文字数を数えます
 mylen = Len(mystr)

 '配列の要素数を確定します
 ReDim wd(mylen)

 '1文字ずつ配列に入れます
 For i = 1 To mylen

  wd(i) = Mid(mystr, i, 1)

  Debug.Print wd(i)

 Next i

 End Sub

 マクロを実行すると、配列に1文字ずつ格納されます。
 Debug.Print のコードを入れてあるので、イミディエイトウィンドウに文字が縦にずらずらっと表示されますが、必要なければこの部分のコードは削ってくださいな。このマクロでは動的配列(予め要素数を定めない配列)を使っているので、

mylen = Len(mystr)

というコードで文章の文字数をカウントして、

ReDim wd(mylen)

で配列の要素数を決定しています。あとは Mid 関数を使って文章から 1 つずつ文字を抜き出して配列に放り込んでいくだけです。

1文字ずつセルに入力します

 配列をセルに入力したい場合は次のコードをご使用くださいな。

 '1文字ずつセルに入力します

 Sub StringCodeCell()

 Dim i As Integer
 Dim mylen As Integer
 Dim mystr As String
 Dim wd() As String

 mystr = "言葉の妖精こばとです"

 mylen = Len(mystr)

 ReDim wd(mylen)

 For i = 1 To mylen

  wd(i) = Mid(mystr, i, 1)

  Cells(1, i) = wd(i)

 Next i

 End Sub

 実行すると下の図のように1文字ずつセルに入力されます。

 Excel VBA 文字を別々のセルに入力

 ≫ VBA 辞典メニューに戻って他の記事も読んでね~♪

Google広告
スポンサーリンク
スポンサードリンク
末尾大型広告
末尾大型広告

コメントをどうぞ

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください