• ベストアンサー

エクセルの文字8桁を1桁づつに分ける

エクセルの表のA欄に文字が8桁入っています。その各文字を1文字ずつB欄C欄D欄に分けたいのです。 A欄に入っている文字は、00089301など半角数字です。 それを、B欄には、0  C欄には0 D欄には0 E欄には8・・・・などに分けたいのです。 そんなマクロが組めるのでしょうか? どなたか教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

一例です。 A1からデータがあるものとします。 Sub test01()   Dim c As Range, i As Long   For Each c In Range("A1", Range("A1").End(xlDown))     For i = 1 To Len(c.Value)       c.Offset(, i) = Mid(c.Value, i, 1)     Next i   Next End Sub 別に8桁に限りません。

その他の回答 (4)

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.5

No.1です。マクロの記録で出来る方法 「マクロの記録」を開始して 開始行(A1)を選択 Ctrl+Shiftを押しながら↓を押す Ctrlを押しながらCを押してコピー B1を選択 Ctrlを押しながらVを押して貼り付け データ、区切り位置で「スペースによって・・・」を選択して「次へ」 数字の各桁をマウスを使って1桁ずつに分割して「完了」 「マクロの記録の終了」 上記で下記のマクロが出来ます。 Sub Macro1() ' ' Macro1 Macro ' ' Range("A1").Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Range("B1").Select ActiveSheet.Paste Application.CutCopyMode = False Selection.TextToColumns Destination:=Range("B1"), DataType:=xlFixedWidth, _ FieldInfo:=Array(Array(0, 1), Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array _ (5, 1), Array(6, 1), Array(7, 1)), TrailingMinusNumbers:=True End Sub

  • gyouda1114
  • ベストアンサー率37% (499/1320)
回答No.4

A1の 00089301 は、文字列であることが必要です。 画像で  B1に =MID($A$1,COLUMN(A1),1) 右方向にオートフィル

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

一例です。 Sub sample() For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row For j = 1 To Len(Cells(i, "A")) Cells(i, j).Offset(, 1).Value = Mid(Cells(i, "A"), j, 1) Next Next End Sub

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

関数でいいなら B2=MID($A2,COLUMN()-1,1) としてC2:I2にこの数式をコピー ※A列が文字列でなく数値を表示形式で8桁表示なら B2=MID(TEXT($A2,"00000000"),COLUMN()-1,1) としてください。

関連するQ&A