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

解決済みの質問

Excelで、同じ文字を入力する手間を省きたい

Excel97を使用しています。

C列に「会員番号」を入力するのですが、
5桁の番号の前に、「0」を5つつけたいのです。

いちいち「0」を打たずに、自動的に頭に5つ
「0」が入るようにしたいのですが…。

「セルの書式設定」の「表示形式」→
「ユーザー定義」で「"00000"#####」とすれば、
一応そのように表示はされるのですが、
数式バーでは「0」は表示されませんよね?
(数字なので…)

でも、実際のセルに「00000XXXXX」と入力
されているようにしたいのです。
(C列が、他の数式の参照先になっているので)

「表示形式」を「文字列」にしてしまうと、
「0」がなくなってしまいますし…。

関数はあまりよく分からないのですが、
「0」の5つ入った列と、
数字の入った列を「CONCATENATE」でつないで、
後で「形式を選択して貼り付け」→「値」
にすれば一応出来ますが、
もっと手軽にやる方法はないでしょうか?

マクロは全然分からないのですが、
そういったものを使わないと無理なのでしょうか?

投稿日時 - 2004-04-26 21:16:38

QNo.841646

すぐに回答ほしいです

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

#1です。

文字列は文字ですから通常では自動的には変更出来ません。
C列以外の作業列を設けてC列に関数を入れるか、 =Text(C1,"00000")

マクロを使うかでしょうか。
例えばこんな感じ。

Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
For Each r In Target
 If IsNumeric(r) And r.Column = 3 Then
  Application.EnableEvents = False
  r.NumberFormat = "@"
  r.Value = Format(r.Value, "0000#")
  Application.EnableEvents = True
 End If
Next r
End Sub

試すのは新規ブックを開いて、シート名タブを右クリックして「コードの表示」を選び、出てきたところにコピペします。C列に数字を入れると前0の5桁表示にします。

投稿日時 - 2004-04-26 22:07:46

お礼

マクロまで書いて頂いて、
ありがとうございます。

お教え頂いた通りにすると、出来ました!
これでいけそうです。

回答、ありがとうございました。

投稿日時 - 2004-04-26 22:23:16

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

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

回答(3)

ANo.2

一時余分な1列を使いますが、A1セルには、00000を省いた文字列を入れ(注)B1セルに
="00000"&A1と入れれば良いです。
(注)前もってA列をA1A40とか範囲指定し、文字列に書式設定して、数字を入力すること。
その後B列にB列を値複写すれば式が消えますのでA列を抹消すれば良い。

投稿日時 - 2004-04-26 21:40:52

お礼

それに近いものは考えたのですが、
関数やコピペなどをせずに出来ないか…
と思ったので…。

回答、ありがとうございました。

投稿日時 - 2004-04-26 22:21:39

ANo.1

参照式ってのはどんな関数なのでしょう?

文字列で渡されれば良いなら、

C列はセルの書式設定で「0000#」にして
参照する関数の方で

Text(C1,"00000")

のようにすれば良いのでは?

投稿日時 - 2004-04-26 21:25:58

補足

すみません。実は職場の人に
尋ねられたので、どのような参照式なのかは
分からないのです…。

曖昧な質問で申し訳ありません。

関数はあまり詳しくないのですが、
その方法で出来るか試してみます。

しかしやはり、
「文字列として、自動的に同じ文字を頭につける」
というは無理なのでしょうか?

投稿日時 - 2004-04-26 21:34:16

あなたにオススメの質問