エクセルで、必ず5桁の数字を入れる列があるとします。
ところが、数値データとして最初に作っているので、0が頭になく桁が足りない場合があります。
任意文字として5桁の数字にしたいのですが、

何かいい方法はありませんでしょうか?

例)
A列 A列
50      00050
1000  ⇒  01000
11111    11111

どうぞよろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (6件)

次の方法は如何でしょうか。


(1)表示だけで良いのならば、セルの書式設定→表示形式→ユーザ定義で00000を設定
(2)データとして必要ならば、空き列(仮にB列)B1に=TEXT(A1,"00000")を入力、下方向にコピー→B列をコピー→A列に形式を選択して貼り付けで「値」を選択→OK、B列を削除
    • good
    • 35
この回答へのお礼

回答ありがとうございます。
表示だけでも大丈夫でしたが、データしても取り込めるとは!
ご回答いただいたようにしたら、できました。どうもありがとうございました。

お礼日時:2009/01/09 15:46

色々方法はありますが・・・


一例としては、B1セルに表示させる場合は
=TEXT(A1,"00000")
ではどうでしょう?

あとはオートフィルでコピーするだけです。
    • good
    • 15

やりたいセルを選んで右クリックして、セルの書式設定を選び、左にある分類でユーザー設定を選んで「種類(T)」というタイトルのボックスのところに0000#と入れてOKすればできます。

    • good
    • 11

セルの書式設定→表示形式→ユーザ設定で、


0000←ゼロ4つを設定してください。
    • good
    • 4

数字の五桁表示すれば良い、という要望でしたら。



セルの書式設定で、ユーザ定義を選択し、 00000 
のように、0(ゼロ)をいつつ並べた形式にすれば、
表示上は、ご要望のとおりにはなります。
    • good
    • 3

表示形式で、


ユーザ定義→00000
じゃだめかな?
    • good
    • 3

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q例えば、AさんからGさんまでがA列に縦に並んでいてB列に数字が入っています。B列にある数字の合計をA

例えば、AさんからGさんまでがA列に縦に並んでいてB列に数字が入っています。B列にある数字の合計をA-Gさん別々に出したいんですが簡単なvbaの記述方法はないでしょうか?
お願いします。

Aベストアンサー

こんばんは!

A列のA~Gさんは複数存在しているのでしょうか?
そうであればSUMIF関数で対応できると思いますが、VBAをお望みだというコトですので
一例です。

元データはSheet1にあり、Sheet2に表示するとします。
尚、Sheet1の1行目は項目行でデータは2行目以降にあるという前提です。
標準モジュールにしてください。

Sub Sample1()
Dim lastRow As Long, wS As Worksheet
Set wS = Worksheets("Sheet2")
wS.Cells.ClearContents
With Worksheets("Sheet1")
.Range("A:A").AdvancedFilter Action:=xlFilterCopy, copytorange:=wS.Range("A1"), unique:=True
lastRow = wS.Cells(Rows.Count, "A").End(xlUp).Row
With Range(wS.Cells(2, "B"), wS.Cells(lastRow, "B"))
.Formula = "=SUMIF(Sheet1!A:A,A2,Sheet1!B:B)"
.Value = .Value
End With
End With
End Sub

こんな感じではどうでしょうか?m(_ _)m

こんばんは!

A列のA~Gさんは複数存在しているのでしょうか?
そうであればSUMIF関数で対応できると思いますが、VBAをお望みだというコトですので
一例です。

元データはSheet1にあり、Sheet2に表示するとします。
尚、Sheet1の1行目は項目行でデータは2行目以降にあるという前提です。
標準モジュールにしてください。

Sub Sample1()
Dim lastRow As Long, wS As Worksheet
Set wS = Worksheets("Sheet2")
wS.Cells.ClearContents
With Worksheets("Sheet1")
.Range("A:A...続きを読む

QExcel2013 VBA A列とB列の文字をA列とB列とC列に移動させる方法

A列とB列に文字が入っているのですが、下記のようにA列とB列とC列に文字を移動させたいです。
(A列の数字は必ず奇数のA列に入っています。)
VBAのコードを教えて下さい。

例えば
A1 1  B1 cat
A2 空白 B2 猫
A3 空白 B3 dog
A4 空白 B4 犬
A5 2  B5 whale
A6 空白 B6 クジラ
A7 3  B7 rabbit
A8 空白 B8 ウサギ

とデータがある場合

A1 1  B1 cat  C1 猫
A2 空白 B2 dog  C2 犬
A3 2  B3 whale  C3 クジラ
A4 3  B4 rabbit C4 ウサギ

としたいです。

実際、データは、A5196まであります。

Aベストアンサー

No.1です。

>実際、データは、A5196まであります。

前回のコードは一つずつカット&ペーストしていますので
かなりの時間を要すると思います。
↓のコードに変更してみてください。

Sub Sample2()
Dim lastRow As Long
lastRow = Cells(Rows.Count, "B").End(xlUp).Row
Application.ScreenUpdating = False
With Range(Cells(1, "C"), Cells(lastRow, "C"))
.Formula = "=IF(MOD(ROW(),2)=1,B2,"""")"
.Value = .Value
.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End With
Application.ScreenUpdating = True
MsgBox "完了"
End Sub

少しは短縮できると思います。m(_ _)m

No.1です。

>実際、データは、A5196まであります。

前回のコードは一つずつカット&ペーストしていますので
かなりの時間を要すると思います。
↓のコードに変更してみてください。

Sub Sample2()
Dim lastRow As Long
lastRow = Cells(Rows.Count, "B").End(xlUp).Row
Application.ScreenUpdating = False
With Range(Cells(1, "C"), Cells(lastRow, "C"))
.Formula = "=IF(MOD(ROW(),2)=1,B2,"""")"
.Value = .Value
.SpecialCells(xlCellTypeB...続きを読む

QエクセルVBAにてA列の数字の合計をA列のラスト行に入力したい。

お世話になります。
表題通りです。

エクセルにてセルのA.1~2・3と順番に数字が入っています。但し、終わりが決まっていません。
このA列のデータの入っていないセルにA列の合計を自動で入れたいのですが、
Range("A100").End(xlUp).Offset.Select
ラスト行のセルを所得して、このセルにSUM(上)を入れたいのですが、


どのように書けばよいか教えて下さい。宜しくお願い致します。

Aベストアンサー

こんな感じになると思います。

Sub test()
  Range("A100").End(xlUp).Offset(1).Select
  ActiveCell.Formula = "=SUM(A1:A" & ActiveCell.Row - 1 & ")"
End Sub

ただ、これですと、何回も実行すると、SUM関数の数式を入れたセルも次々加算する
ことになりますので、これを防ぐため、一番下が数式のときは、そのセルに
上書きするようにするのであれば、こんな感じになると思います。

Sub test2()
With Range("A100").End(xlUp)
  If .HasFormula Then
    .Formula = "=SUM(A1:A" & .Row - 1 & ")"
  Else
    .Offset(1).Formula = "=SUM(A1:A" & .Row & ")"
  End If
End With
End Sub

QB列にA列の数字をかけた数字を出したい

B列の各行に3(or2or1)を入力をしたらA列の数字に0.3(2なら0.2,1なら0.1)
をかけて小数点第一以下は切り捨てをするマクロを組みたいのですができません。

例  A5に4581と入力されていてB5に3と入力をしたらB5が1374と変換される

ようにしたいです;どのようなマクロを組めばよいでしょうか。。。
環境はWINDOWSVISTAのEXCEL2007ですm(__)m

Aベストアンサー

>B列の各行に3(or2or1)を入力をしたらA列の数字に…

シート名タブを右クリックしてコードの表示を選ぶ
現れたシートに下記をコピー貼り付ける

private sub Worksheet_Change(byval Target as excel.range)
 dim h as range
 on error resume next
 for each h in application.intersect(target, range("B:B"))
  if h.value = 1 or h.value = 2 or h.value = 3 then
   application.enableevents = false
   cells(h.row, "A") = application.rounddown(cells(h.row, "A") * h * 0.1, 0)
   application.enableevents = true
  end if
 next
end sub

ファイルメニューから終了してエクセルに戻る
A列に数字を準備し、B列に1か2か3を記入する。

>B列の各行に3(or2or1)を入力をしたらA列の数字に…

シート名タブを右クリックしてコードの表示を選ぶ
現れたシートに下記をコピー貼り付ける

private sub Worksheet_Change(byval Target as excel.range)
 dim h as range
 on error resume next
 for each h in application.intersect(target, range("B:B"))
  if h.value = 1 or h.value = 2 or h.value = 3 then
   application.enableevents = false
   cells(h.row, "A") = application.rounddown(cells(h.row, "A") * h * 0.1, 0)
   appli...続きを読む

QA列とB列の重複を抽出したいのですがA列とB列の値は一部だけ同じ文字です。ご教示お願いします。

エクセル初心者です。重複を見つけるのが仕事です。いろいろやってみたのですがうまくできません。
お知恵をお貸しください。

A列には企業名が入力されています。
B列にも企業名が入力されていますが全く同じ文字ではないのです。

たとえばこういうことです。
A1 (有)雪見酒      B1  雪見
A2 株式会社豪雪地帯   B2 (株)豪雪地帯
A3 ゆきかき本舗     B3 (有)ゆきかき本舗

A列にある企業名とB列にある企業名が同じであればセルを塗りつぶすか○を表示させるように
したいのです。
重複を見つけるのが目的なので、ほかの方法でもかまいません。
すみません、A列のセルとB列のセルが全く同じ名前ならば重複が見つけられたのですが
ここから先がどうしてもわからないのです。。。
申し訳ありませんがどうか教えてください。。。

Aベストアンサー

No4です。以下のマクロを標準モジュールへ登録してください。
--------------------------------------------------
Option Explicit
Public Sub 重複チェック()
Dim maxrow1 As Long
Dim maxrow2 As Long
Dim row1 As Long
Dim row2 As Long
Dim nameT1() As String
Dim nameT2() As String
Dim t1, t2 As Variant
t1 = Time
maxrow1 = Cells(Rows.Count, "A").End(xlUp).row '最大行取得
maxrow2 = Cells(Rows.Count, "B").End(xlUp).row '最大行取得
ReDim nameT1(maxrow1)
ReDim nameT2(maxrow2)
Range("C1:" & "D" & maxrow2).Value = ""
Call makeTable(nameT1, "A", maxrow1)
Call makeTable(nameT2, "B", maxrow2)
For row1 = 1 To maxrow1
For row2 = 1 To maxrow2
If Cells(row2, "C") = "" Then
If Mymatch(nameT1(row1), nameT2(row2)) = True Then
Cells(row2, "C").Value = "○"
Cells(row2, "D").Value = row1
End If
End If
Next
Next
t2 = Time
MsgBox ("チェック完了 処理時間=" & Minute(t2 - t1) & "分" & Second(t2 - t1) & "秒")
End Sub
'余分な文字を削除した結果をテーブルに格納する
Private Sub makeTable(ByRef nameT() As String, ByVal col As String, ByVal maxrow As Long)
Dim row As Long
Dim ary As Variant
Dim name As String
Dim i As Long
ary = Array("㈱", "(株)", "株式", "(有)", "有限", "会社")
For row = 1 To maxrow
name = Cells(row, col).Value
For i = 0 To UBound(ary)
name = Replace(name, ary(i), "")
Next
nameT(row) = name
Next
End Sub
'企業名が一致かどうか判定する
Private Function Mymatch(ByVal name1 As String, ByVal name2 As String) As Boolean
Mymatch = False
Dim pos As Variant
pos = InStr(1, name1, name2, vbTextCompare)
If pos > 0 Then Mymatch = True
End Function
-----------------------------------------------------
一致の精度が悪ければその旨補足してください。
(一致すべきものが一致しない、一致してはいけないものが一致している)
100%解決できる保証はありませんが、多少のチューニングは行います。

No4です。以下のマクロを標準モジュールへ登録してください。
--------------------------------------------------
Option Explicit
Public Sub 重複チェック()
Dim maxrow1 As Long
Dim maxrow2 As Long
Dim row1 As Long
Dim row2 As Long
Dim nameT1() As String
Dim nameT2() As String
Dim t1, t2 As Variant
t1 = Time
maxrow1 = Cells(Rows.Count, "A").End(xlUp).row '最大行取得
maxrow2 = Cells(Rows.Count, "B").End(xlUp).row '最大行取得
ReDim ...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報