みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

エクセルの文字入力で困っています。
1セル1文字で効率的に文字入力ができる方法が
ないか悩んでいます。

イメージとしては、文字列を入力して
エンターキーを押した後、自動的に1セル1文字で
入力される方法があったら嬉しいなぁっと
思っています。

宜しくお願い致します。

投稿日時 - 2005-03-20 23:49:23

QNo.1281341

すぐに回答ほしいです

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

こんな式で、下にドラッグして、文字列を分解する方法もありますが、
=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

後は、フォームボタンでも、ワークシートに取り付けて、このマクロを登録すれば、マクロの起動は簡単です。

投稿日時 - 2005-03-21 11:18:24

お礼

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

投稿日時 - 2005-03-22 19:44:35

ANo.3

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.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です。
いかがでしょうか。

投稿日時 - 2005-03-21 10:52:15

お礼

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

本当に有り難うございました。

投稿日時 - 2005-03-22 19:50:15

ANo.1

通常の操作ではエクセルでご希望の操作はできません。
マクロを利用するとそれに似た操作は可能かもしれませんが、一定の条件で入力するのでない限りまったく実用性はありません。逆に、いったん入力したものを後で分離するほうが実用的だと思います。

この場合でしたら、マクロでも対応しやすく、関数や区切り位置の機能を用いることもできます。

例えば区切り位置を利用する場合は、
データ範囲の列を選択して、「データ」「区切り位置」で「スペースによって・・・」にチェックを入れ、「次へ」で1文字ごとに区切りを入れることで1文字ずつに分離できます。

投稿日時 - 2005-03-21 01:02:12

お礼

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

投稿日時 - 2005-03-22 19:54:59

あなたにオススメの質問