dポイントプレゼントキャンペーン実施中!

Excelの表示形式で困っています。

例えば、セル上の191.65.1.1の表記を191.065.001.001のように
"0"を含めた三桁表示にしたいのですがどなたかおわかりになる方いらっしゃいますでしょうか?

マクロを使ってもOKなので、どなたか教えてください。

A 回答 (7件)

複数のセルを選択して実行すれば、全部まとめて置きかえるマクロを作ってみました。

Alt+F11でVBAの画面を起動し、「挿入」>「標準モジュール」を選択し、以下のマクロをコピーして貼り付けてください。

使い方は、IPアドレスの入力されたセルを選択し、Alt+F8からマクロを実行すると、まとめて3桁表示に変換されます。

Sub Sample()
 Dim r As Range
 Dim ip As Variant
 Dim s_ip As String
 Dim i As Integer
 For Each r In Selection
  s_ip = ""
  ip = Split(r.Value, ".")
  For i = 0 To UBound(ip)
   s_ip = s_ip & Format(ip(i), "000") & IIf(i < 3, ".", "")
  Next
  r.Value = s_ip
 Next
End Sub
    • good
    • 0
この回答へのお礼

大変助かりました!!ありがとうございます。
この方法と、下の方に書いてある関数・計算を組み合わせたら
自分のやりたい事ができました。
しかも、一括で変換できるマクロには感動いたしました。
私ももっと、勉強しなきゃって感じですね。。。

お礼日時:2007/02/20 18:54

マクロは苦手なんでアレですが、こんな感じでカーソルのあるセル


を書き換えちゃうのはいかがでしょう。

Sub separate_IP()
Dim i, p As Integer
Dim str, ip As String

str = ActiveCell.Value & "."

For i = 1 To 4
  p = Application.WorksheetFunction.Find(".", str, 1)
  ip = ip & "." & Format(Left(str, p - 1), "000")
  str = Right(str, Len(str) - p)
Next i

ActiveCell.Value = Right(ip, Len(ip) - 1)

End Sub

だれか添削してくれないかな…
    • good
    • 0
この回答へのお礼

ありがとうございました。とても勉強になりました!
私もマクロは苦手なんで、もっと勉強しなきゃって感じですね。

お礼日時:2007/02/20 18:52

A1=191.65.1.1 とします



B1からI1までを作業列として使います(一時的に)

B1=F1&"."&G1&"."&H1&"."&I1
C1=FIND(".",$A1)
D1=FIND(".",$A1,C1+1)
E1=FIND(".",$A5,D1+1)
F1=RIGHT("00"&LEFT($A1,C1-1),3)
G1=RIGHT("00"&MID($A1,C1+1,D1-C1-1),3)
H1=RIGHT("00"&MID($A1,15+1,E1-D1-1),3)
I1=RIGHT("00"&RIGHT($A1,LEN($A1)-E1),3)

B列に191.065.001.001 が出来ますので、コピー、値のみで貼り付ければどうでしょう
    • good
    • 0
この回答へのお礼

大変助かりました!!ありがとうございます。
この方法と、上の方に書いてあるマクロを組み合わせたら
自分のやりたい事ができました。

お礼日時:2007/02/20 18:47

連続した数字として認識したい場合、


書式のセルで表示形式をユーザー定義にして、
「000"."000"."000"."000」と設定します。
    • good
    • 0
この回答へのお礼

表示形式を設定後の入力だとウマくいったのですが、
もともとあるデータを加工するので残念ながら。。。
ご回答いただきありがとうございました。

お礼日時:2007/02/20 18:43

JOCXさん、こんにちはぁ。


セル上の191.65.1.1の表記を191.065.001.001のようにするには
表示形式を文字列にすればできると思いますが。
違っていたらすいません。
    • good
    • 0
この回答へのお礼

Rukkyさん、こんにちは!
もともとあるデータを加工するので残念ながら駄目でした。。。
ご回答いただきありがとうございました。

お礼日時:2007/02/20 18:41

書式のセルで表示形式をユーザー定義にして


「0」から「000」にすれば3桁になります。
    • good
    • 0
この回答へのお礼

ご回答いただきありがとうございました。
>191.65.1.1が1つのセル上にある為、表示形式では解決できませんでした。
う~ん、エクセルって難しいですね。。。

お礼日時:2007/02/20 16:00

こんにちは。



>191.65.1.1
は、ひとつのセルに入力するのですか?
それとも、191と65と1と1は「それぞれ別のセルに入力ですか?
別セルであれば、表示形式のユーザー設定で000とすればいいです。
ひとつのセルだと表示形式では無理だと思います。
VBAでの処理になるでしょう。

この回答への補足

早速のご回答、ありがとうございます。
>191.65.1.1
は1つのセルに入力されております。
VBAでの処理となる場合、どのようなマクロを作成すればいいのでしょうか?

補足日時:2007/02/20 15:46
    • good
    • 0

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