一つのテキストの中で複数箇所の文字を反転できますか。文字列の長さがそれぞれ違ってもできますか。
出来ます。複数箇所を探して、長さを指定して文字を反転するような関数を作れば。
お世話になります。VBは始めたばかりで、学ぶことばかりです。関数も考えてみます。
( ゜д゜)ハッ!
…ヒント書くの忘れてたっぽぃ(or------z
とりあえず、VB6で使う関数。
InStr()
Mid$()
Mid ステートメント
後、StrReverse$()かな?
※ヘルプ見ながらの方が断然お得で早いぞ。
@「テキスト」というとテキストボックスコントロールに勘違いしやすいので、
「文字列」と言ったほうが吉。
そして、文字列に関する関数は"String."で出てくると思われ。
…VB6だけどね(ぇ
こんにちは、じゃんぬねっと です。
# ガッさん、その節はどーもです。m(_ _)m
ところで、
「複数箇所」
というのが気になりなって仕方ありません...。
例えば、文字列"0123456789ABCDEFGHIJKLM"の中の、"345"と"HIJK"のように
長さの違う複数個所を反転させたいんじゃないでしょうか?
Private Sub Command1_Click()
Debug.Print strReverseEX("0123456789ABCDEFGHIJKLM", "345", "HIJK")
End Sub
Private Function strReverseEX(strText As String, ParamArray strData()) As String
Dim i As Integer
For i = LBound(strData) To UBound(strData)
If InStr(strText, strData(i)) > 0 Then
strText = Replace(strText, strData(i), StrReverse(strData(i)))
End If
Next i
strReverseEX = strText
End Function
ありがとうございます。例えば、テキストである文字列をマウスでなぞれば、対応する別の文字列の位置を何らかの形、同じように反転させるか、カーサーで分かるようにしたいのですが・・・・。
オーナードローすればできるかも。
RichTextBoxなら、色を変えるとか、太字にするとか、斜体にするとか
出来そうですね。
VB6以前ってオーナードローできたっけ?
> じゃんぬねっとさん
(・∀・)ニヤ/( ´Д`)<ぃぇぃぇ、こちらこそ(ぉ
※本題が終了しそうなので投稿できませんですた(orz
> ぬるぽさん
出来ます。
APIを駆使すれば、出来ますたらしいです。
やったことがありませんが(orz
駆使というほどではありません。
手順的にはサブクラス化してWM_DRAWITEMを拾って
自前の描画処理を呼ぶだけです。
この「自前の描画処理」がコントロールや描画内容によっては
結構面倒だったりしますが。
興味あるなら、
み〜くんパパの仕事部屋にサンプルあったような。
ありがとうございました。別件ですが、テキストボックスで開いたテキストを検索するとText1.SelStartとText1.SelLengthで文字を反転できましたが、リッチテキストボックスで開いたテキストで検索したら文字が反転できなくなりました。RichTextBox1.SelStartとRichTextBox1.SelLengthではダメなのでしょうか。
宜しくお願いします。
解決しました。
ツイート | ![]() |