• ベストアンサー

文字列を1セル1文字で入力する

エクセルの文字入力で困っています。 1セル1文字で効率的に文字入力ができる方法が ないか悩んでいます。 イメージとしては、文字列を入力して エンターキーを押した後、自動的に1セル1文字で 入力される方法があったら嬉しいなぁっと 思っています。 宜しくお願い致します。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんな式で、下にドラッグして、文字列を分解する方法もありますが、 =IF(ROW(A1)>LEN($A$1),"",MID($A$1,ROW(A1),1)) (A1:文字列, Rowの中のA1は、ダミーですから、いつでも、最初は、A1) 簡単なマクロを作りました。試してみてください。 画面の下の使っている場所のシートタブ(例:Sheet1)のところを右クリックして、以下を貼り付けてしてください。 Sub 文字分割()  ans = Application.InputBox("文字列を入力してください", Type:=2)  If ans = "" Or ans = False Then MsgBox "データが空です.": Exit Sub  Application.ScreenUpdating = False  For i = 1 To Len(ans)   ActiveCell.Offset(i - 1).Value = Mid$(ans, i, 1)  Next i  Application.ScreenUpdating = True End Sub 後は、フォームボタンでも、ワークシートに取り付けて、このマクロを登録すれば、マクロの起動は簡単です。

rabbits-Ma
質問者

お礼

早速、マクロを使用させて頂きました! イメージ通りのことが出来てとても嬉しいです。 本当に有り難うございました。 今後とも宜しくお願い致します。

その他の回答 (2)

  • TUNE0040
  • ベストアンサー率26% (220/842)
回答No.2

ひらがな←→カタカナ変換という処理をしたときに使った方法です。 A列に文字列を入力します。 B列にはその文字列長を表示させます。(LEN関数) C列以降に、一文字ずつ表示させます。 1行目にはカウンタを入力します。   セルC1に1を入力します。   セルD1には =C1+1 という式を入力します。   セルE1以降は、その式を複写すればOKです。   A列に入力する予定の文字列長分あればOKです。 2行目からはいよいよデータ行です。   セルC2には次のように入力してください。   =IF(C$1>$B2,"",MID($A2,C$1,1))   これを縦、横に複写すればOKです。   さらにB列のLEN関数も縦に複写してください。 一応これで完成です。 セルA2以降に入力していけば自動的に処理されます。 このデータを活用したいときは、ワークシート全体を値複写すればOKです。 いかがでしょうか。

rabbits-Ma
質問者

お礼

丁寧なご説明有り難うございます。 大変勉強になります。 私はエクセル初心者でちょっと何かやろうと思うと すぐ行き詰まってしまいます。 本当に有り難うございました。

  • macchan1
  • ベストアンサー率38% (52/136)
回答No.1

通常の操作ではエクセルでご希望の操作はできません。 マクロを利用するとそれに似た操作は可能かもしれませんが、一定の条件で入力するのでない限りまったく実用性はありません。逆に、いったん入力したものを後で分離するほうが実用的だと思います。 この場合でしたら、マクロでも対応しやすく、関数や区切り位置の機能を用いることもできます。 例えば区切り位置を利用する場合は、 データ範囲の列を選択して、「データ」「区切り位置」で「スペースによって・・・」にチェックを入れ、「次へ」で1文字ごとに区切りを入れることで1文字ずつに分離できます。

rabbits-Ma
質問者

お礼

ご指南有り難うございます。 区切り位置機能は初めて使いました。 勉強になりました。 本当に有り難うございました。