• 締切済み

エクセルのテキストボックス内は検索できないのでしょうか?

エクセルの表から任意の文字列をカウントしたいのですが、一部セルでなくテキストボックスにて表が作成されている部分があります。 このテキストボックス内の文字列を検索する方法はあるのでしょうか? 客先指定のフォームのため作り直すことができないのですが、何かよい方法をご存知でしたらぜひご教示ください。

noname#127397
noname#127397

みんなの回答

  • end-u
  • ベストアンサー率79% (496/625)
回答No.4

横から失礼。 >このテキストボックス内の文字列を検索する方法はあるのでしょうか? 意味合いとしては >テキストに書かれたVALUE値を引数に、エクセルファイル内で検索ということです。 ではないような? アクティブなシートに配置されたシェイプのテキストボックスを対象に、 ある文字列を検索するサンプルなら以下。 Sub test()   Dim tb As TextBox   Dim st As String   Dim n As Long      st = InputBox("TextBox内で検索する文字を入力" & vbLf _         & "(部分一致は * 付加)")   If st = "" Then Exit Sub      For Each tb In ActiveSheet.TextBoxes     If tb.Text Like st Then       n = n + 1     End If   Next      MsgBox n End Sub アクティブなBookの全シートが対象なら Dim ws As Worksheet 'と変数を一個追加して For Each ws In ActiveWorkbook.Worksheets   For Each tb In ws.TextBoxes     If tb.Text Like st Then       n = n + 1     End If   Next Next

  • sykt1217
  • ベストアンサー率34% (277/798)
回答No.3

すみません。 >Dim TextValue As Integer 'テキストVALUE保持用 ですが、「As String」でお願いします^^;

  • sykt1217
  • ベストアンサー率34% (277/798)
回答No.2

#1です。 補足ありがとうございます。 >ユーザーフォーム、コントロールボックスともに利用しておりません。 とのことですが、そうしますと何からテキストボックスを出しているのでしょう?リンクでしょうか? まぁとりあえずテキストボックスということはオブジェクト名かオブジェクトIDがあると思うので、それを使い形になるかと思います。 また、検索とのことですので、「正規表現」ということになりますかね。 正規表現の代表的なものとして「Findメソッド」・「Like演算子」などが挙げられます。 Sub test() Dim count As Integer 'カウント用 Dim i As Integer '列ループ用 Dim j As Integer '行ループ用 Dim TextValue As Integer 'テキストVALUE保持用 With Worksheets("Sheet1") TextValue = onjectname.Value 'オブジェクト名.VALUEでテキストボックスの値を取得 count = 0 'カウント初期化 For i = 1 To 8 'A~H For j = 1 To 8 '1~8 If .Cells(j, i).Value Like TextValue Then '.Cells(j, i)の値が変数「TextValue」の値ならば count = count + 1 'カウントに+1 End If Next j Next i MsgBox TextValue & "は" & count & "個あります。" End With End Sub テストはしていませんが、こんな感じで出来るかと思います。 エラーが出た場合、意味合いが違う場合は補足お願いします。

  • sykt1217
  • ベストアンサー率34% (277/798)
回答No.1

ちょっと理解できないので以下の質問への補足をお願いします。 >表から任意の文字列をカウントしたいのですが ・カウントとはどういうカウントですか?アドレスを取得ですか?文字数のカウントですか?それともその他のカウントですか? >このテキストボックス内の文字列を検索する方法はあるのでしょうか? ・テキストに書かれたVALUE値をテキスト内で検索ということですか?テキストに書かれたVALUE値を引数に、エクセルファイル内で検索、ということですか?それとも他の意味ですか? >客先指定のフォームのため作り直すことができないのですが、 ・ユーザーフォームを利用していますか?コントロールボックスからの利用ですか?VBAは使用可能ですか? 以上、補足お願いします。

noname#127397
質問者

補足

説明が足りず申し訳ありません。 趣旨から申しますと、一枚のエクセルシート内に、任意の文字列が何個表示されているかを知りたいのです。 >カウントとはどういうカウントですか?アドレスを取得ですか?文字数のカウントですか?それともその他のカウントですか? 任意の文字列が含まれるテキストボックスの数をカウントしたいということです。 エクセル関数でいうとCOUNTIFです。 >テキストに書かれたVALUE値をテキスト内で検索ということですか?テキストに書かれたVALUE値を引数に、エクセルファイル内で検索、ということですか?それとも他の意味ですか? テキストに書かれたVALUE値を引数に、エクセルファイル内で検索ということです。 現在、同じ文字列AAでも、セルに入力されているものと、テキストボックスに入力されたものとが混在しており、例えばAA、AB、ACという文字列を含んだ、セルの数のみCOUNTIFにて数量が把握できている状況です。 >ユーザーフォームを利用していますか?コントロールボックスからの利用ですか?VBAは使用可能ですか? ユーザーフォーム、コントロールボックスともに利用しておりません。 VBAは使用可能です。 以上、補足でした。

関連するQ&A

  • エクセル テキストボックスについて

    エクセルの図形について勉強をしています テキストボックスの文字列をシート上のセルにリンクすることができると説明がありますがどのように操作をしたらよいのでしょうか?

  • テキストボックスの名前に変数をつける

    文字列から文字を抜き取って、 指定したテキストボックスに ループで挿入する処理を作成しています。 イメージとしては下記のような感じです ループ  ・取得した文字←文字列[カウント]  ・「テキストボックス名 + カウント.Text」← 取得した文字   ・カウント = カウント + 1 ループ 真中の行の「テキストボックス名 + カウント.Text」を 定義するにはどうすれば良いでしょうか?

  • エクセル テキストBOXのフォント

    エクセルでセルやVBAエディターの フォントリストにあるものが フォームのテキストBOXリストにありません。 プログラムでプロパティー指定しても 有効にはならないようです。エラーも返しませんが OCRBを使いたいのですが。。。 プロパティーに追加する方法って有るのでしょうか よろしくどうぞ

  • エクセルにて、テクストボックスにセルの文字列を参照させているのですが、

    エクセルにて、テクストボックスにセルの文字列を参照させているのですが、セルの文字列の255文字分しか参照してくれません。テキストボックスに256文字以上参照させるにはどうすればよいでしょうか。よろしくお願いします。

  • エクセル テキストボックスについて

    エクセルでテキストボックスへセルからの反映方法 の質問です。 エクセルのセル内の数字や文字を ・いくつかのシートを作成して ・そのシートのセルに反映させ、連動させる 方法はどのようにするのでしょうか。

  • 表をテキストボックスに入れたい

    Word2007で表を作りました。 最下段の行が2ページ目に行くためテキストボックスに 表を入れ1ページにおさめたいと思います。 出来上がった表をテキストボックスに入れる方法を教えて下さい。 文字列をテキストボックスに入れるときは、文字列を選択して 挿入 → テキストグループ → テキストボックス → 横書きテキ ストボックスの描画で自動的にテキストボックスに入りますが 表は、文字列と同じようにできないのでしょうか

  • WORD2002:コントロールツールボックスのテキストボックス

    WORD2002でアンケートフォームを作成中です。 コントロール・ツールボックスでテキストボックスを作りました。広めにしてスクロールバーもつけ、たくさん入力できるようにしているのですが、ロック後、テキストボックス内の入力文章に任意で改行が入れられないのが気になります。これをなんとかする方法はないでしょうか? フォームで作ると回答者が任意で改行を入れられる点は良いのですが、入力文字に網掛けがかかってしまうのがデザイン上、気になります。かといって網掛けをオフにすると、入力位置が分かりにくくなってしまいます。※入力範囲は表のセルで表示しましたが、セル内のフォームフィールド以外の場所をクリックしても入力できないため、慣れない回答者には入力しづらそうです。 解決方法のアドバイスをどうぞよろしくお願いします!

  • EXCELでフォームのテキストBOXに入力した文章を別セルに書き出すマ

    EXCELでフォームのテキストBOXに入力した文章を別セルに書き出すマクロ Excel VBAでフォームのテキストBOXに入力した文章を別セルに書き出すマクロを作成しています。 普通に書き出すことと、改行コードで改行させることはできます。 しかし、改行コード&決まった文字数(任意)で改行し、改行後の先頭に句読点が来たときには句読点で改行させるようにしたいです。 (句読点が行末に来る場合、任意の文字数に+1する) どのようにしたら良いでしょうか? 今行っている方法だと、1行で文字数での改行が2回行われるとおかしくなってしまいます。 ご教授ください

  • Excelで、テキストボックスに書かれた文字を検索したい

    表題の通りなのですが、 1) ExcelのSheetにテキストボックスを作成する 2) その中に文字(品番・コード名)を入力する 3) そのようなテキストボックスが、Sheet上にたくさんある 4) おなじブックの別Sheetにも同様のテキストボックスがたくさんある このような場合、ブックを開き、テキストボックス内の任意の文字を検索することは可能でしょうか?

  • EXCELのテキストボックスについて

    図形描画のテキストボックスを使用して文字を色分けして使っています テキストボックスの3列目を赤色で点滅 別のテキストボックスの6列目を青で点滅 エクセルでは不可能なのでしょうか? どうか宜しくお願い致します。

専門家に質問してみよう