• ベストアンサー

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

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

  • npsw
  • お礼率33% (35/103)

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

  • ベストアンサー
  • 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% (7418/18948)
回答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% (7418/18948)
回答No.1

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

関連するQ&A

  • エクセル2010で文字に数字を割り当てたい

    たとえば通知表とかでエクセルの表にはA、B、C、D、E、としてAを5 Bを4 Cを3 Dを2 Eを1 として 特定の欄にA、B、C、D、Eの数によって数値が入るようにするにはどのようなマクロを組めばよいのでしょうか?

  • EXCELで 一桁の数値を二桁に

    教えてください。 エクセルで、入っているデータを編集しているのですが A列には、一桁の数値が B列には、1桁から2桁の数値が C列には、1桁から2桁の数値が D列には、文字データが入っています。 D列のデータに対する対応表を作るために このA~C列のデータを CONCATENATE関数を使って合体させたいのですが、 (合体させると、数値がダブらない為) B列とC列に入っている1桁の数値を 2桁に変換したいのですが、 何かよい方法はありませんでしょうか? 手打ちで変換するには、かなり多いデータなのです。 どなたか、助けてください。

  • Excelで文字を揃えるには

    Excelで、何行かの表に、アルファベットは大文字で Z-9.10 R-6. 9 E-4.19 U-6.37 F-7. 3 W-5. 2 W-9.13 などと入力します。ぴしっと揃えたいのですが、 どうしたら揃えられるのでしょうか? アルファベットは全角大文字でその他数字は半角で、 最後の所の数字は一桁の場合は二桁の所と合わせて スペースを1つ入れます。 等幅フォントのMSゴシックを使うと、アルファベットが 半角みたいになるのでなんとか全角大文字にするには どうしたらいいでしょうか? 宜しくお願いいたします。

  • 画像のようなエクセルのA~D列に任意文字列が入っています。

    画像のようなエクセルのA~D列に任意文字列が入っています。 E1に 「A1(半角スペース)+B1~D1のいずれかのうちの1つ」 を出力させたいのですが、ブランクの欄もあるので =IF(C2="",B2,C2) など入力してみたのですが、うまくいきません。 最終的に 「A1(半角スペース)+B1~D1のいずれかのうちの1つ」 を表示させることはできないでしょうか? 詳しい方、アドバイスお願いいたします。

  • エクセルのセルに入れた文字あるいは数字を別なセルに1文字づつ、「右詰」で移したい

    以前に エクセルのセルに入れた文字あるいは数字を別なセルに1文字づつ移したい、ということで質問しまして、「MID関数を利用する」事で、先頭文字から一文字ずつ別々なセルに移すことが出来ましたが、スミマセンが次のような場合はどのような関数になるのでしょうか? 例えば「番地などの表示」等で1桁の場合もあれば、5桁あるいは6桁等々の場合もあるとします。これを別なセルに下一桁を合せる様にしたいのです。 例としまして セルA1に1桁~6桁の数字(例:345678)を入力した場合、これを右側のB1には3を、同様にC1には4を、D1=5、E1=6、F1=7、G1=8を関数で入力できるようにしたい。 問題は、桁数が毎回違う場合にG1に下一桁が来るようにしたいのですがRIGHT関数では下一桁だけ応答されるのは上手くいくのですが、下二桁、三桁以上の場合には上手くいきません。 つまり「A1に789」の数字を入力したら、G1=9が、F1=8が、E1=7が応答されるようにしたいのです。 勿論、5桁の場合にはB1が空欄で、C1、D1、E1、F1、G1が埋まる様に、4桁であればB1とC1が空欄で、D1~G1が埋まるように、三桁の場合にはB1~D1が空欄でE1~G1が埋まるようにですが、出来ますでしょうか?? よろしくご教授お願いします。

  • エクセルのマクロで特定の文字があるときだけコピーできるようにしたい

    エクセルのマクロで特定の文字があるときだけコピーできるようにしたい エクセルでこういう表があるとします ココカラ 1 * 2 b 15 3 * 4 d 19 5 e 25 6 * 7 g 35 8 * 9 j 46 10 k 54 ココマデ このような表があるとき、マクロを使ってもしB列に「*」以外の文字(この場合アルファベットのb) があるときは左のセル(2)をずっと下のセルにコピー(仮にA50とします)した後、右のセル(15)をB51にコピー、 次は文字が「*」なのでコピーはせずにd列になったら4と19をC50,D51にコピー・・・ という作業をセルに「ココマデ」と書いているところまで繰り返す、というマクロを作りたいのですが、どうすれば いいのでしょうか?

  • エクセルについて

    WinXPのエクセル2000を使っています。 勤務表の休みの数を調べるために下記の表を作りました。 B C D E F G 1班 2班 3班 4班 5班 6班 上記の表でA2に1と入力したら自動でB2に1の数字が、A3に2と入力したら自動でC3に1の数字が、A4に3と入力したら自動でD4に1の数字が、でるようにするには何かよい方法はありませんか?教えて下さい。マクロか関数を使えばできそうなんですが・・・

  • EXCELで、文字列を任意の文字数毎に分割するには

    ≪やりたい内容と条件≫ ◆EXCELで、文字列を任意の文字数毎に分割したいです。 ◆文字列は、全角・半角・記号を含みます。 ◆1つのセルが半角80桁という制限があり、その上限を超えると、右の次のセルに流し込まれるようにしたいです。(A1は元の文字列1500桁くらい、以降B1,C1,D1,E1・・・という具合に流し込み) ≪試した内容≫ MIDB関数を見つけ挑戦しましたが、1つ目のセルはうまくいきますが、その後が出来ません。例えば、文字列が「・・・・・・abcあいうえお」となっていた場合、B1は「・・・・・・abcあいう」、C1は「 お」(「お」の前は、半角スペース)となります。 何かよい方法はないでしょうか。 一度に出来ないようであれば、A1-B1で残りの文字列が表示できれば、それ以降はまた関数を入れて一つ一つやっていきたいと思っています。 よろしくお願いいたします。

  • 全角半角を意識した文字分割

    A列           B列   C列  D列  E列     あいうえおかきくけこ  あ   いう  えお  か アイウエオカキクケコ    アイウ   エオ  カキ ク あイウえオかきくけこ    あ   イウえ  オか き 先ほど同じような質問を一度しているのですが、 A列に全角半角混在のテキスト項目があります。 B列、C列、D列、E列に以下のルールで分割したいのですが、 Excel関数で 実現可能でしょうか? 可能な場合は式をご教授して頂けますでしょうか。宜しくお願い致します。 ※全角をバイト数指定で分割して文字化けしないように全角半角を考慮して分割した いと考えております。 B列(半角3文字)  A列3桁目が半角の場合は半角3文字 A列3桁目全角の場合は半角2文字(全角1文字) C列 (半角4文字) A列4桁目が半角の場合は、左端4桁目~半4文字分 A列4桁目が全角の場合は、左端3桁目~半角4文字 D列(半角4文字) A列7桁目が半角の場合は、左端7桁目~半4文字分 A列7桁目が全角の場合は、左端6桁目~半角4文字 E列(半角2文字) A列11桁目が半角の場合は、左端11桁目~半2文字分 A列11桁目が全角の場合は、左端10桁目~半角2文字

  • エクセルで・・・

    エクセルでB2~E10で表を作ったとします。 (そのうちC列には元々文字が入っています。) その表を B2→D2→E2→B3→D3→…→E10 と文字を入力した後自動に各セルを選択する方法がありますでしょか? おそらくマクロを使えばできたと思うのですが忘れてしまいました。 もしわかる方がいれば教えてください。

専門家に質問してみよう