Excel (VBA)

Excel VBAに関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 10 Pro : Excel 2016)
数字と数字の間にピリオド入力
投稿日時: 21/09/14 12:53:31
投稿者: hiromiki1122

セル範囲A2からA300に数字が入力されているセルでピリオドを付ける。
ブランクのセルにはピリオド入力はしない。
 
条件
・数字は10桁固定で入力されている。
・先頭4桁目と6桁目にピリオド入力。
 
宜しくお願い致します。

回答
投稿日時: 21/09/14 13:29:47
投稿者: QooApp

Dim getValue As String
 
getValue = Format(Range("A1").Value, "0000000000")
 
Range("A1").NumberFormatLocal = "@"
 
Range("A1").Value = Left(getValue, 4) & "." & Right(getValue, 6)
 
 
セルの書式が現在のままだと
0000000001 という値は 0000000000.000001 (青い部分は目視できない) になるはずですが、セルの表示は変更して大丈夫でしたか。
 
赤文字のRange()は適宜Cells()に変更する等して下さい

回答
投稿日時: 21/09/14 13:32:16
投稿者: QooApp

ブランクのセルかどうかは
 
If (Range("A1").Value <> "") Then
 
'ブランクではない場合、ここのコマンドが使用できます。
 
Endif
 
で判定が取れます。

回答
投稿日時: 21/09/14 13:40:36
投稿者: WinArrow
投稿者のウェブサイトに移動

一般機能でも対応できるんで、数式を紹介します。
これを参考にVBAを考えてみましょう
なお、ループで処理しない方が早いです。
 
 
>数字は10桁固定で入力されている。
>先頭4桁目と6桁目にピリオド入力
は、先頭から4桁目の後にピリオドを入れると解釈しています。
 
セルB2に
=IF(A2="","",REPLACE(REPLACE(A2,7,0,"."),5,0,"."))

投稿日時: 21/09/14 13:51:16
投稿者: hiromiki1122

関数にて解決致しました有難うございました。

回答
投稿日時: 21/09/14 18:46:22
投稿者: WinArrow
投稿者のウェブサイトに移動

解決したら、スレを閉じてくださいね・・・

回答
投稿日時: 21/09/15 14:05:33
投稿者: Suzu

セルの書式設定
   0000"."00"."0000

トピックに返信