Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2546 / 13645 ツリー ←次へ | 前へ→

【67359】5桁の数字の2番目と4番目に数字を入れる Yoshim 10/11/27(土) 22:28 質問[未読]
【67360】Re:5桁の数字の2番目と4番目に数字を入れ... kanabun 10/11/27(土) 23:44 発言[未読]
【67369】Re:5桁の数字の2番目と4番目に数字を入れ... Yoshim 10/11/28(日) 13:58 お礼[未読]

【67359】5桁の数字の2番目と4番目に数字を入れる
質問  Yoshim  - 10/11/27(土) 22:28 -

引用なし
パスワード
   セルに5桁の数字が並んでいます。セル位置は随時選択で固定しておりません。
その数字の2番目に自在の数字を、また4番目に自在の数字を入れたいのですが、その方法を教えてください。

元の数字
23456

変更後の数字
2934586 ←9と8を入れた結果です。

現在までのコードは
Sub 数値入力()

Dim MyValue As Integer
Dim i As Integer
Dim Num(1 To 2) As Long
For i = 1 To 2
  Num(i) = Application.InputBox("数値を入力してください", Type:=1) 
Selection.Value = Num(i)
  'ここに2番目と4番目に数字を入れられるようなコードをお願いします

Next

End Sub

【67360】Re:5桁の数字の2番目と4番目に数字を入...
発言  kanabun  - 10/11/27(土) 23:44 -

引用なし
パスワード
   ▼Yoshim さん:
こんにちは〜

>セル位置は随時選択で固定しておりません。
>その数字の2番目に自在の数字を、また4番目に自在の数字を入れたいのです

>元の数字
>23456
>
>変更後の数字
>2934586 ←9と8を入れた結果です。

ワークシート関数のReplaceを使った方法です。

Sub Try1()
 Const prompt = "挿入する数値を2つカンマで区切って入力してください"
 Dim i As Integer
 Dim Num
 Num = Application.InputBox(prompt, , "9,8", Type:=2)
 If InStr(Num, ",") = 0 Then Exit Sub
 
 Num = Split(Num, ",")
 With Selection
   .Value = Application.Replace( _
        Application.Replace(.Cells, 2, 0, Num(0)) _
        , 4 + Len(Num(0)), 0, Num(1))
 End With
End Sub

ワークシート関数のあるものは Applicationクラスのメソッドとして
使うと、複数セル範囲を一括処理することができます。

なお、InputBoxで [9,8] を指定したとき、
セルの値が  23456 であれば、
上の結果は 2934856 となります。
なので、
> 2934586 
としたいときは、
Application.Replaceメソッドの第2引数の値を調整してください。

【67369】Re:5桁の数字の2番目と4番目に数字を入...
お礼  Yoshim  - 10/11/28(日) 13:58 -

引用なし
パスワード
   ▼kanabun さん:

貴重な回答ありがとうございました。
想像以上の仕上がりに感謝いたします。
高度な回答ですので、これから少し調べて理解をすすめたいと思います。

ありがとうございました。

2546 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free