【緊急急募】エクセル得意な人ちょっと来て!!!!!

■ このスレッドは過去ログ倉庫に格納されています
0001以下、5ちゃんねるからVIPがお送りします2023/03/19(日) 20:44:07.208ID:lX2Uz8BE0
セルに数字を入れたら数字と数字の間にピリオドが入るようにしたいんだよ
例えば
1→1
12→1.2
123→1.2.3
1234→1.2.3.4
12345→1.2.3.4.5
となるようにしたい
どうしたらいいの?

0002以下、5ちゃんねるからVIPがお送りします2023/03/19(日) 20:44:29.298ID:Z80ccdtpp
表示形式

0003以下、5ちゃんねるからVIPがお送りします2023/03/19(日) 20:45:12.252ID:lX2Uz8BE0
>>2
むり
カスタムしても桁数には対応しなかった

0004以下、5ちゃんねるからVIPがお送りします2023/03/19(日) 20:45:42.183ID:6MVLuFjh0
VBA

0005以下、5ちゃんねるからVIPがお送りします2023/03/19(日) 20:45:57.520ID:lX2Uz8BE0
>>4
コードは?

0006以下、5ちゃんねるからVIPがお送りします2023/03/19(日) 20:46:42.290ID:V46DRDJy0
表示形式でなんとかならんのか

0007以下、5ちゃんねるからVIPがお送りします2023/03/19(日) 20:47:33.730ID:ATFJEKnd0
普通に数字打ってあとから1~9を置換
んで末尾だけ消す方法なんかあるだろ

0008以下、5ちゃんねるからVIPがお送りします2023/03/19(日) 20:48:37.016ID:e1UrMq0q0
Sub InsertDots()
Dim cell As Range
For Each cell In Selection.Cells
Dim val As String
val = cell.Value
Dim i As Integer
For i = 1 To Len(val) - 1
val = Left(val, i) & "." & Right(val, Len(val) - i)
Next i
cell.Value = val
Next cell
End Sub

0009以下、5ちゃんねるからVIPがお送りします2023/03/19(日) 20:49:16.458ID:e1UrMq0q0
Excelマクロ:ピリオド挿入


せめてマナーは一流でありたい
Excelで以下のマクロを組んで

セルに数字を入れたら数字と数字の間にピリオドが入るようにしたいんだよ
例えば
1→1
12→1.2
123→1.2.3
1234→1.2.3.4
12345→1.2.3.4.5
となるようにしたい
どうしたらいいの?

以下は、指定された動作を実現するExcel VBAマクロの例です。

vbnet
Copy code
Sub InsertDots()
Dim cell As Range
For Each cell In Selection.Cells
Dim val As String
val = cell.Value
Dim i As Integer
For i = 1 To Len(val) - 1
val = Left(val, i) & "." & Right(val, Len(val) - i)
Next i
cell.Value = val
Next cell
End Sub
このマクロを使用するには、以下の手順に従ってください。

Excelを開き、数字が入力されたセルを選択します。
Alt+F11キーを押して、Visual Basic for Applications(VBA)エディタを開きます。
左側のProject Explorerで、マクロを作成するワークブックを選択します。
メニューから「挿入」>「モジュール」を選択します。
新しいモジュールが開かれます。ここに、上記のマクロをコピーして貼り付けます。
メニューから「ファイル」>「保存」を選択し、VBAエディタを閉じます。
Excelに戻り、数字が入力されたセルを再度選択します。
メニューから「開発」>「マクロ」を選択します。
「InsertDots」というマクロが表示されます。これを選択して実行します。

0010以下、5ちゃんねるからVIPがお送りします2023/03/19(日) 20:50:12.019ID:lX2Uz8BE0
>>6
なんとかならんかった
例えば0"."0"."0"."0としても桁数が合わないと0.が余計に出たりする

0011以下、5ちゃんねるからVIPがお送りします2023/03/19(日) 20:50:38.942ID:GQ9eoZET0
有限なら
文字数を数える
あとはmidと&

0012以下、5ちゃんねるからVIPがお送りします2023/03/19(日) 20:51:05.881ID:lX2Uz8BE0
ChatGPTに聞いてもワザップだったからアテにしてない

0013以下、5ちゃんねるからVIPがお送りします2023/03/19(日) 20:51:48.514ID:7KULWxFbd
Excelでピリオドを追加する


Y Asakuya
Excelでセルに数字を入れたら数字と数字の間にピリオドが入るようにしたい

Excelで数字と数字の間にピリオドを入れるには、次の手順を実行します。

数字を入力したいセルを選択します。
セル内でピリオドを挿入したい場所にカーソルを合わせます。
キーボードで「Alt + 0,1,8,3」の順に押します。
カーソルがピリオドに変わります。
残りの数字を入力します。
これにより、入力した数字と数字の間にピリオドが挿入されます。ただし、この方法はセル内のすべての数字に対して手動で行う必要があります。自動的にすべての数字に対してピリオドを挿入するには、VBAマクロを使用する必要があります。

0014以下、5ちゃんねるからVIPがお送りします2023/03/19(日) 20:52:40.413ID:lX2Uz8BE0
>>13
だからワザップやめろ
オルトキーでなんとかなるわけねーだろ
考えてレスしろやタコ

0015以下、5ちゃんねるからVIPがお送りします2023/03/19(日) 20:52:58.576ID:f4OuIg93a
関数でやったらいいじゃん

0016以下、5ちゃんねるからVIPがお送りします2023/03/19(日) 20:55:42.985ID:lX2Uz8BE0
>>15
関数だと別の入力セル準備しなきゃいかんだろ?
できればそのセルで完結させたい
というか関数としても表示設定指定できんだろ

0017以下、5ちゃんねるからVIPがお送りします2023/03/19(日) 20:55:58.593ID:bOeMqI5Z0
そんな使い方するやつ初めて見た

0018以下、5ちゃんねるからVIPがお送りします2023/03/19(日) 20:56:15.096ID:V46DRDJy0
VBAあんま知らんけど文字数数えてその文字数分繰り返しで.を入れる関数作れないかな

0019以下、5ちゃんねるからVIPがお送りします2023/03/19(日) 20:57:25.528ID:iip4JYYg0

0020以下、5ちゃんねるからVIPがお送りします2023/03/19(日) 20:57:28.656ID:ATFJEKnd0

0021以下、5ちゃんねるからVIPがお送りします2023/03/19(日) 21:00:31.207ID:V46DRDJy0
他の入力セルを作らずにそのセルだけで完結させるのは無理やね

0022以下、5ちゃんねるからVIPがお送りします2023/03/19(日) 21:01:02.511ID:lX2Uz8BE0
>>19
最終手段はそれしかないか
入力規則とかVBAとかでなんとかならんか?

0023以下、5ちゃんねるからVIPがお送りします2023/03/19(日) 21:02:17.351ID:lX2Uz8BE0
>>21
マジかよ
諦めるしかないのか

0024以下、5ちゃんねるからVIPがお送りします2023/03/19(日) 21:06:20.007ID:ATFJEKnd0
えっ俺の案は駄目なの

0025以下、5ちゃんねるからVIPがお送りします2023/03/19(日) 21:07:32.019ID:iip4JYYg0
VBAにしたいなら毎回起動めんどくさいだろうしアドイン作れ

0026以下、5ちゃんねるからVIPがお送りします2023/03/19(日) 21:09:37.614ID:lX2Uz8BE0
>>24
だめ
なんでピリオド挿入の話してんのにn番目削除の話してんの?
表示形式の0.なら対応できないよそれ
百歩譲っても桁数なんて毎回バラバラなんだが

0027以下、5ちゃんねるからVIPがお送りします2023/03/19(日) 21:10:49.988ID:lX2Uz8BE0
>>25
作り方分からんわ
そもそもアドインとか作ったことすらない

0028以下、5ちゃんねるからVIPがお送りします2023/03/19(日) 21:16:01.554ID:iip4JYYg0
ちなみに点つけてどうしたいのこれ

0029以下、5ちゃんねるからVIPがお送りします2023/03/19(日) 21:18:50.532ID:lX2Uz8BE0
>>28
別にコンマじゃなくてもカンマでもいい
数字を区切りたいんだよ
入力するときいちいち1.2.3って入れるの面倒だろ?
123と入れたら勝手に区切ってくれると楽だろ?
そういうことよ

0030以下、5ちゃんねるからVIPがお送りします2023/03/19(日) 21:20:10.051ID:0WxND7OS0
別の道探したほうがよさそう感あるよね(ただの感覚ですまんけど)

0031以下、5ちゃんねるからVIPがお送りします2023/03/19(日) 21:24:24.523ID:lX2Uz8BE0
>>30
仕方ないか
俺だけ理解して俺だけ楽すりゃいいだけの話だもんな
そうするわ

0032以下、5ちゃんねるからVIPがお送りします2023/03/19(日) 21:31:43.832ID:0WxND7OS0
>>31
セルが最小単位なので普通はセルによって区切るだろうからね
csvだよ

0033以下、5ちゃんねるからVIPがお送りします2023/03/19(日) 21:40:05.866ID:6MVLuFjh0
Function test(hoge As Variant)
hoge = VBA.CStr(hoge)
Dim i As Long
Dim a()
ReDim Preserve a(Len(hoge) - 1)
For i = 0 To Len(hoge) - 1
a(i) = Mid(hoge, i + 1, 1)
Next
test = Join(a, ",")

End Function

0034以下、5ちゃんねるからVIPがお送りします2023/03/19(日) 21:40:07.575ID:NGp6oGab0
これ最大何桁まで使う?

0035以下、5ちゃんねるからVIPがお送りします2023/03/19(日) 21:44:51.324ID:NGp6oGab0
これでどう?

Private Sub Worksheet_Change(ByVal Target As Range)
Dim inputString As String
Dim outputString As String
Dim i As Integer

On Error GoTo endline

If Target.Cells.Count > 1 Then Exit Sub

If IsNumeric(Target.Value) Then
inputString = CStr(Target.Value)
outputString = ""
For i = 1 To Len(inputString)
outputString = outputString & Mid(inputString, i, 1)
If i < Len(inputString) Then
outputString = outputString & "."
End If
Next i
Application.EnableEvents = False
Target.Value = outputString
Application.EnableEvents = True
End If

endline:
Application.EnableEvents = True
End Sub

0036以下、5ちゃんねるからVIPがお送りします2023/03/19(日) 21:47:12.184ID:NGp6oGab0
あれ?居なくなった?

0037以下、5ちゃんねるからVIPがお送りします2023/03/19(日) 21:57:17.148ID:WRkz6kdR0
いなくなったね

0038以下、5ちゃんねるからVIPがお送りします2023/03/19(日) 22:53:58.381ID:6MVLuFjh0
なんやこんだけでええやんけ最近のは便利やな
=TEXTJOIN(",",TRUE,MID(A1,SEQUENCE(LEN(A1)),1))

0039以下、5ちゃんねるからVIPがお送りします2023/03/19(日) 23:11:13.862ID:NGp6oGab0
(´・ω・`)

■ このスレッドは過去ログ倉庫に格納されています