■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#37698-0VB5でReplace関数のようなことがしたいおさるさん2001-01-25(木) 18:07
     #37699-0RE#37698:VB5でReplace関数のようなことがしたいよねKEN2001-01-25(木) 18:25
     #37701-0RE#37698:VB5でReplace関数のようなことがしたい通りすがる者2001-01-25(木) 18:35
     #37703-0RE#37699:VB5でReplace関数のようなことがしたいおさるさん2001-01-25(木) 18:53
     #37759-0RE#37701:VB5でReplace関数のようなことがしたい(お礼)おさるさん2001-01-26(金) 13:59
#37698-0
VB5でReplace関数のようなことがしたい
お世話になります。
VB5を使用しています。

VB6で使っていたReplace関数がVB5では
使えないようなので困っています。

VB6では、
   Format(Replace(TextBox.Text , ".", "-"), "YYYYMM")

の一文で済んだんですが・・・。
VB5では、1文字ずつループで回して変換させるしか方法はないのでしょうか?
他の方法がありましたら、ぜひご教授ください。
よろしくお願いしますm(__)m
#37699-0
RE#37698:VB5でReplace関数のようなことがしたい
> VB6で使っていたReplace関数がVB5では
> 使えないようなので困っています。
    :
> VB5では、1文字ずつループで回して変換させるしか方法はないのでしょうか?
Replace関数を自作すればよいと思いますが・・・(^^;
InStr関数で検索できますので、それを使えばそれほど難しいこともありませんし。

ただ、今回の例なら、Mid関数等で1文字目から4文字、6文字目から2文字取り出して
間を"-"で連結するだけでよいと思いますけれど。

私のページにてVB5でのReplace関数の互換関数を扱っています。
他にもメジャーなところの関数はおいてますので、よかったら名前の横のリンクからどうぞ。
#37701-0
RE#37698:VB5でReplace関数のようなことがしたい
> VB6で使っていたReplace関数がVB5では
> 使えないようなので困っています。
スクリプトコントロールをインストールしておけば、
VBScriptを呼び出せるので、そちらのReplace関数が使えます。

Option Explicit

Private O As Object

Private Sub Command1_Click()
    MsgBox Format(Replace(Text1.Text, ".", "-"), "YYYYMM")
End Sub

Private Sub Form_Load()
    Set O = CreateObject("MSScriptControl.ScriptControl")
    O.Language = "VBS"
    O.AddCode _
        "Function Rep(Expression, Find, ReplaceWith, Start, Count, Compare)" & vbCrLf & _
        "  Rep = Replace(Expression, Find, ReplaceWith, Start, Count, Compare)" & vbCrLf & _
        "End Function"
End Sub

Private Sub Form_Unload(Cancel As Integer)
    Set O = Nothing
End Sub

Public Function Replace(ByVal Expression As String, _
                        ByVal Find As String, _
                        ByVal ReplaceWith As String, _
               Optional ByVal Start As Long = 1, _
               Optional ByVal Count As Long = -1, _
               Optional ByVal Compare As VbCompareMethod = vbBinaryCompare) As String
    
    Replace = O.Run("Rep", Expression, Find, ReplaceWith, Start, Count, Compare)
End Function


> VB5では、1文字ずつループで回して変換させるしか方法はないのでしょうか?
VB5単体でとなると、一発置換ということはできません。
しかし、一文字ずつループでは遅いので、InStr関数を使った方が良いでしょう。
# 短い文字列なら、ループでも大差ないけど。
#37703-0
RE#37699:VB5でReplace関数のようなことがしたい
> Replace関数を自作すればよいと思いますが・・・(^^;
> InStr関数で検索できますので、それを使えばそれほど難しいこともありませんし。
> ただ、今回の例なら、Mid関数等で1文字目から4文字、6文字目から2文字取り出して
> 間を"-"で連結するだけでよいと思いますけれど。
> 私のページにてVB5でのReplace関数の互換関数を扱っています。
> 他にもメジャーなところの関数はおいてますので、よかったら名前の横のリンクからどうぞ。

よねKEN さん、早速の返答ありがとうございます。
おっしゃるとおり、Mid関数でもできますね(^^ゞ
落ち着いて考えればわかることなのに、
柔軟な考え方ができていませんでした。
HPの方も行きましたが色々と役立つ情報があったので
これからの勉強に参考にさせていただきたいと思います。
ありがとうございましたm(__)m
#37759-0
RE#37701:VB5でReplace関数のようなことがしたい(お礼)
> スクリプトコントロールをインストールしておけば、
> VBScriptを呼び出せるので、そちらのReplace関数が使えます。
 
   中略
 
> > VB5では、1文字ずつループで回して変換させるしか方法はないのでしょうか?
> VB5単体でとなると、一発置換ということはできません。
> しかし、一文字ずつループでは遅いので、InStr関数を使った方が良いでしょう。
> # 短い文字列なら、ループでも大差ないけど。


通りすがる者 さんありがとうございます。
よく使う関数を組み合わせれば実現できること
というのは多いんですね(^^ゞ
これからは、1つの考えに固執せず
もっと色々な組み合わせで考えてみて、
それでも出来なかったらここに投稿したいと思います。
教えていただいたコードも今後の参考にさせていただきます。
ありがとうございましたm(__)m
このページと関連する記事:
#8322-0データーベースでの一文字の抽出、置換について教えてください。1999-10-27(水) 14:22
#3652-0RE#3643:VBA6.0の関数をVB5.0で使用する方法1999-11-05(金) 10:51
#5772-0文字列の分割方法を教えて下さい1999-12-16(木) 21:06
#8690-0Listからのtextの取り出し2000-06-08(木) 15:09
#7503-0Unixで作成されたテキストファイルの読み込み1999-10-17(日) 00:11
#27724-0文字変換?2002-03-20(水) 13:23
#10270-0文字列中の特定の文字を変換したい。1999-11-24(水) 18:09
#506-1lzhの戻り値の表示について質問1999-06-28(月) 21:13
#84-1計算して読み込む方法2002-08-12(月) 09:49
#15947-0スペースが邪魔です2001-05-02(水) 14:04
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)