Home » ExcelVBA Rangeオブジェクト » Offsetプロパティ » 文字列を分解して1文字ずつセルに入力するExcelマクロ

文字列を分解して1文字ずつセルに入力するExcelマクロ

対象:Excel2003, Excel2007, Excel2010

「エクセル セルに1文字ずつ分解 マクロ」
という検索が行われていました。

セルに「=MID($A1,COLUMN()-1,1)」という数式を入力して、右方向にオートフィルするという方法で、A1セルに入力された文字列が1文字ずつ分解できることをご紹介しています。

「エクセル セルに1文字ずつ分解 マクロ」
という検索キーワードは、同様のことをVBA(Visual Basic for Applications)で行う方法を探している方によるものでしょう。

[スポンサードリンク]

実際にこのようなマクロを必要とするシーンでは、いろいろな条件があると思いますが、ここではもっともベーシックな形のマクロをご紹介しておきます。

Sub セルに入力された文字列を一文字ずつ横方向に分解する()
 Dim txt As String
 txt = ActiveCell.Value

 Dim i As Long
 For i = 1 To Len(txt)
   ActiveCell.Offset(0, i).Value = Mid(txt, i, 1)
 Next
End Sub

サンプルマクロの解説

分解したい文字列の入力されているセルを選択しておいて、上記のマクロを実行すると、その右のセルに、1文字ずつ分解された文字列が入力されます。

元の文字列を変数txtに格納しておいて

  txt = ActiveCell.Value

その文字列の長さ・文字の数だけFor~Nextループを回して

  For i = 1 To Len(txt)

右方向のセルに1文字ずつ入力しています。

   ActiveCell.Offset(0, i).Value = Mid(str, i, 1)

「Mid(txt, i, 1)」
というコードは、ワークシート関数の
「MID($A1,COLUMN()-1,1)」
と同じような意味です。

それをオートフィルするかわりに、ループで回しながら
「.Offset(0, i).Value =」
とオフセットして入力しています。

最終更新日時:2022-07-25 17:54

[スポンサードリンク]

Home » ExcelVBA Rangeオブジェクト » Offsetプロパティ » 文字列を分解して1文字ずつセルに入力するExcelマクロ

Home » ExcelVBA Rangeオブジェクト » Offsetプロパティ » 文字列を分解して1文字ずつセルに入力するExcelマクロ

「Offsetプロパティ」の記事一覧

検索


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

.