ActiveCell.FormulaR1C1 = "=SUBSTITUTE(RC[41],"".jpg"","" & k2 & "")"
こういうことでしょうか?
あ、後に くっつけるだけだから
ActiveCell.FormulaR1C1 = "=SUBSTITUTE(RC[41],"".jpg"","""") & " & k2
でもいいのか。
でも、最初のでも 最後が .jpgなら それに 置換するから 結果は だいたい同じかもね。
▽2
●
gong1971 ●100ポイント ベストアンサー |
ActiveCell.FormulaR1C1 = "=SUBSTITUTE(RC[41],"".jpg"","""")&""" & k2 & """"
k2は文字列変数なので""内に書いてしまうと、k2という固定の文字列で処理されてしまいます。
-----
以下、補足。
元の数式では、 ) の後の " が不要なのと、
k2 を固定文字列(""内)に入れているのが正しくないですね。
きゃづみぃさんの回答と私の回答の違いですが、
きゃづみぃさんの回答では .jpg を入力した文字列で置換しているのに対し、
私の回答では、 .jpg を置換で消したあと、後ろに入力した文字列を連結しています。
もし、AP列のセルに .jpg が無かった場合、私の回答では強制的に入力した文字列を連結し、
きゃづみぃさんの回答では入力した文字が連結されません。
SUBSTITUTEはワークシート関数なので、Application.WorksheetFunction.SUBSTITUTE のようにして呼び出します。
それよりも Replace を使った方が簡単で、下記のようになります。
Dim k2 As String Dim r As Long '行列の行が2からスタート k2 = InputBox("文字列", Title:="特定の文字列を入れてください", Default:="") For r = 2 To 16 Cells(r, 1).Value = Replace(Cells(r, 42).Value, ".jpg", "") & k2 Next r