人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

アクセスで以下の通りの文字列で置き換えをしようとしましたら、うまく行きません。
スペースを含んでいるからだと思うのですが、
何かよい方法は無いでしょうか?

↓こちらを↓
ter>
<table width="85%" bgcolor="#CCCCF

↓こちらに変換する↓
ter><b><Font Size="3" Color="#ff6600">ようこそ!<br><br></Font></b><table width="85%" bgcolor="#CCCCF

よろしくお願いします。

●質問者: y7ujmnhy
●カテゴリ:コンピュータ
✍キーワード:いるか アクセス 文字列
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● llusall
●0ポイント

Option Compare Database

Option Explicit

'しっかりと、置換する文字列が設定されていれば、必ず置換できます。

'できない原因を推測

'  おそらく、

'  置換前の文字列に「改行」が入っているようですが、この改行の為、上手くいかない?

'    改行(vbCrLf)が正しく処理(セット)されているかよく確認する。

'  または、スペースの数が違っているため、置換できない。

'    念の為、スペース2つは、1つに置換(念の為)する処理を入れる

Public Function test()

    Dim s  As String

    Dim x As String

    Dim a As String

    Dim b As String

    

    '置換前の文字列

    s = "xxxxxxxxxxxxxter>" & vbCrLf

    s = s & "<table width=""85%""         bgcolor=""#CCCCF"" xxxxxxxxxx"

    '提案:スペース2つは、1つに置換

    x = ""

    Do Until s = x

        x = s

        s = Replace(s, "  ", " ")

    Loop

    

    'この文字列を(1)

    a = "ter>" & vbCrLf

    a = a & "<table width=""85%"" bgcolor=""#CCCCF"

    '提案:スペース2つは、1つに置換(念の為)

    x = ""

    Do Until a = x

        x = a

        a = Replace(a, "  ", " ")

    Loop

    

    'この文字列に置換する(2)

    b = "ter><b><Font Size=""3"" Color=""#ff6600"">ようこそ!<br><br></Font></b>< table width=""85%"" bgcolor=""#CCCCF"


    '[表示]-[イミディエイト ウィンドウ]に表示

    Debug.Print "置換前の文字列------------------------"

    Debug.Print s

    'Replace関数により置換

    s = Replace(s, a, b)


    '[表示]-[イミディエイト ウィンドウ]に表示

    Debug.Print "置換後の文字列------------------------"

    Debug.Print s

End Function


'以上、お役にたちますでしょうか?

◎質問者からの返答

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

スペースの削除をやってみましたが、うまくいきませんでした。

問題は改行にあるようです。

さらに、同じ文字列でも改行があるところと改行が入っていないところとあります。

これは改行を全部削除する必要があるようです。

当初の質問からずれておりますが、よろしかったらお答えをいただけるとありがたいです。800ポイント差し上げます。


2 ● llusall
●800ポイント

1.改行は、スペース1つに置換

2.スペース2つは、1つに置換


という2つの処理を入れ、文字列を整形してみたらいかがでしょうか??

以下、黒字部分です。


Public Function test()

    Dim s  As String

    Dim a As String

    Dim b As String

    

    '置換前の文字列

    s = "xxxxxxxxxxxxxter>" & vbCrLf

    s = s & "<table width=""85%""         bgcolor=""#CCCCF"" xxxxxxxxxx"


    '提案:文字列を整える

    s = ChangeChr(s)

    

    

    'この文字列を(1)

    a = "ter>" & vbCrLf

    a = a & "<table width=""85%"" bgcolor=""#CCCCF"


    '提案:文字列を整える

    a = ChangeChr(a)

    

    

    'この文字列に置換する(2)

    b = "ter><b><Font Size=""3"" Color=""#ff6600"">ようこそ!<br><br></Font></b>< table width=""85%"" bgcolor=""#CCCCF"

    '[表示]-[イミディエイト ウィンドウ]に表示

    Debug.Print "置換前の文字列------------------------(整形済み)"

    Debug.Print s

    'Replace関数により置換

    s = Replace(s, a, b)

    '[表示]-[イミディエイト ウィンドウ]に表示

    Debug.Print "置換後の文字列------------------------"

    Debug.Print s

End Function


'文字列を整える関数

Public Function ChangeChr(ByVal s As String) As String

    Dim x As String

    

    ChangeChr = ""

    

    '改行は、スペース1つに置換

    s = Replace(s, vbCrLf, " ")

    

    'スペース2つは、1つに置換

    x = ""

    Do Until s = x

        x = s

        s = Replace(s, "  ", " ")

    Loop

    

    ChangeChr = s

End Function



'以上、お役にたちますでしょうか?

◎質問者からの返答

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

がんばって、やってみましたが、手順がわかりませんでした。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ