質問
テキストボックス内の文字の一括変換
- 投稿日時:2009/02/20 13:24
Office2003のテキストボックスのことですが、
テキストボックスが100個あります。
各テキストボックスには数式で「=ABC!A1」・「=ABC!A2」と
別のシートの値を参照しています。
別のシートを参照させたいので、
テキストボックス内のABCを一括で変換する方法はありますか?
実際は、シートABCとそれを参照しているテクストボックスのあるシートをもう1セット作りたいのです。
シートABCをコピーし、テキストボックスのあるシートをコピーしても、
テキストボックスのあるシートは元のシートABCを参照しています。
よって、一括変換ができればと思います。
宜しくお願いいたします。
回答 (4件)
- 最新から表示
- 回答順に表示
- ベストアンサーのみ表示
No.4
- 回答日時:2009/02/22 15:57
>各テキストボックスには数式で「=ABC!A1」・「=ABC!A2」と
>別のシートの値を参照しています。
>別のシートを参照させたいので、
>テキストボックス内のABCを一括で変換する方法はありますか?
話が逆戻りしますが、テキストボックスの種類を確認したいと思います。
Excelには、3種類のテキストボックスがあります。
私が対象にしているのは、ツールバーにある横・縦書きテキストボックスです。
それ以外に、フォームとコントロールツールボックスにも其々テキストボックスがあります。
当方のExcel2007では、フォームのテキストボックスが使えなくなっているようです。
k-kikuchiさんの質問されているテキストボックスはどのテキストボックスでしょうか?
ツールバーにある横・縦書きテキストボックスなら
”テキストボックス内のABCを一括で変換する方法はありますか?”
↑この意味が分かりません。
テキストボックスに表示される文字列は、リンクセルのデータですから
リンクセル側で置換しなければなりません。
ループするマクロの一例です。
Sub test2()
Dim txb As TextBox
Dim txf As String
For Each txb In ActiveSheet.TextBoxes
txf = txb.Formula
If Split(txf, "!")(0) = "ABC" Then
txb.Formula = "=" & Trim(Replace(txf, "ABC", "XYZ"))
End If
Next
End Sub
この回答へのお礼
まだ、上記で教えていただいたマクロは実行していませんが、
使っているテキストボックスはツールバーにあるテキストボックスです。
表示される文字列はリンクされているデータというのもわかっています。
リンク先を一括で変換したいということなのですが、
説明が下手ですいません。
テキストボックスが1~100まであります。
テキストボックス1~100には別のシートのセルが数式によってリンクされています。
例:テキストボックス1 「=ABC!A1」
テキストボックス2 「=ABC!A2]
といった具合に100個あります。
リンク先のシート名ABCをXYZに変換をしたいと思っています。
説明が下手ですいません。
No.3
- 回答日時:2009/02/22 07:58
>セルの数式は参照されるのですが、
>テキストボックス内の数式には反映されませんでした。
テキストボックス内に記述された数式(テキスト)には影響を与えません。別途「置換」作業が必要です。
参照式とテキストが両立共存しているのですか?
因みに、当方Excel2007ですが参照式をセットすればテキスト入力ができなくなります。
>ただ、テキストボックスひとつづつしか変更できないんですね。
For~Next文を勉強してください。
[XL] Visual Basic for Applications でのループ構造の使用方法
http://support.microsoft.com/kb/141762/ja
この回答へのお礼
勉強不足ですいません。
For~Nextのイメージはわかっているのですが、
For i=1 to 100 で1から100までのループになるのはわかります。
前回教えていただいたマクロにiを利用して繰り返すということ何でしょうね。
勉強します。
「置換」も勉強します。
No.2
- 回答日時:2009/02/21 11:56
>シートABCをコピーし、テキストボックスのあるシートをコピーしても、
>テキストボックスのあるシートは元のシートABCを参照しています。
2つのシートを同時にコピーすれば、コピーしたシート間で参照関係が
築かれます。
シートの移動・選択・コピー
http://excel.syuriken.jp/sheet-1-5.htm
この回答へのお礼
有難う御座います。
この方法は試してみました。
セルの数式は参照されるのですが、
テキストボックス内の数式には反映されませんでした。
No.1ベストアンサー10pt
- 回答日時:2009/02/20 14:03
マクロの一例です。
テキストボックスを選択してマクロを実行してください。
コード内の検索文字と置換文字は実際に合わせて書き換えてください。
Sub test1()
Dim strf As String
strf = Selection.Formula
Selection.Formula = Replace(strf, "ABC", "XYZ")
End Sub
この回答へのお礼
有難う御座います。
使わせて頂いています。
ただ、テキストボックスひとつづつしか変更できないんですね。
でも、今までよりは確実に効率は上がりました。
このQ&Aを見た人はこんなQ&Aも見ています
注目の記事
教えて!Firefox
より速く、より安全なウェブブラウザ「Firefox(ファイアーフォックス)」に関する疑問をみんなで解決。全くの初心者から上級者までFirefoxの魅力を十分に味わうために、教えて!gooのユーザーみんながお手伝いします。
このQ&Aを見た人が検索しているワード
おすすめ情報
このQ&Aを見た人がよく見るQ&A
このカテゴリで人気のQ&Aランキング
- 4行間を詰めるには・・・
- 5エクセルで数式の結果が反映されな...
- 6エクセルで重複しているデータの抽...
- 7Excel文書が読み取り専用になって解...
- 8マイクロソフト以外で一番のoffice...
- 9どうやってもFor文を抜けてしまいま...
- 10エクセルのセルに入力した文字数
- 11エクセル STDEVとSTDEVPの違い
- 12エクセルで列の全ての項目に文字を...
- 13エクセルで条件に合うものを別シー...
- 14Excelで、エラーの #DIV/0! を表示...
- 15エクセルにおいて、シートの保護を...
- 16iPadでワード、エクセルを使うには...
- 17エクセルで画像を透過させて画像の...
- 18フリーの表計算ソフト
- 19excelからexcelへの差し込み印刷
- 20Excelで掛け算