0

Excel セル (完全なセルではない) の一部を選択し、マクロを実行して大文字に変換します。

選択したセルまたは選択したセル範囲を大文字に変換するコードがありますが、私の要件は、選択がセルの一部 (サブ文字列) になり、マクロを実行する場合は大文字に変換する必要があることです。

たとえば、「ご協力ありがとうございます」という値のセルがあります。

今私のコードは次のとおりです。

Convert_To_Upper()
Selection.value = UCase(Selection.Value)
end Sub

ユーザーがセルを選択してマクロを実行すると、セルは「THANKS FOR HELPING」に変更されます。

今、私の要件は..

ユーザーがセルから「Helping」のみを選択してマクロを実行する場合、セルは「Thanks for HELPING」に変更する必要があります。

これを達成することは可能ですか?

4

3 に答える 3

1

要するに:いいえ、できません。

それを修正するための非常に醜いハックは次のとおりです。

ユーザーにテキストを選択してもらい、CTRL+C を押してクリップボードにコピーしてから、マクロを実行します。

クリップボードから変数に文字列をプルします (MSForms Reference を追加する必要があります)。

'Clipboard -> variable S
Dim DataObj As New MSForms.DataObject
Dim S As String
DataObj.GetFromClipboard
S = DataObj.GetText

ある種の差分または正規表現を使用してセル内のテキストからそれを削除し、それをアッパーに変換してセルと連結します。

それはそれを成し遂げますが、それは正確なベストプラクティスではありません...

于 2013-10-11T13:59:39.843 に答える