• ベストアンサー

Excelの表示形式

Excelの表示形式で困っています。 例えば、セル上の191.65.1.1の表記を191.065.001.001のように "0"を含めた三桁表示にしたいのですがどなたかおわかりになる方いらっしゃいますでしょうか? マクロを使ってもOKなので、どなたか教えてください。

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

  • ベストアンサー
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.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

JOCX
質問者

お礼

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

その他の回答 (6)

回答No.6

マクロは苦手なんでアレですが、こんな感じでカーソルのあるセル を書き換えちゃうのはいかがでしょう。 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 だれか添削してくれないかな…

JOCX
質問者

お礼

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

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.5

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 が出来ますので、コピー、値のみで貼り付ければどうでしょう

JOCX
質問者

お礼

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

  • Pii-suke
  • ベストアンサー率16% (1/6)
回答No.4

連続した数字として認識したい場合、 書式のセルで表示形式をユーザー定義にして、 「000"."000"."000"."000」と設定します。

JOCX
質問者

お礼

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

  • Rukky
  • ベストアンサー率57% (8/14)
回答No.3

JOCXさん、こんにちはぁ。 セル上の191.65.1.1の表記を191.065.001.001のようにするには 表示形式を文字列にすればできると思いますが。 違っていたらすいません。

JOCX
質問者

お礼

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

  • Pii-suke
  • ベストアンサー率16% (1/6)
回答No.2

書式のセルで表示形式をユーザー定義にして 「0」から「000」にすれば3桁になります。

JOCX
質問者

お礼

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

noname#187541
noname#187541
回答No.1

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

JOCX
質問者

補足

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

関連するQ&A