ここから本文です

エクセルのマクロ/VBAについて質問です。 仕事上必要になると感じて、最近マ...

get********さん

2017/9/415:27:22

エクセルのマクロ/VBAについて質問です。

仕事上必要になると感じて、最近マクロについて勉強し始めました。
そして、早速必要な事態になったのですが、まだ勉強しはじめたばかりで、ど

う組めばいいのかわからないので、質問します。

テキストボックスに記入した数字
1-2-2-2
みたいな羅列を、ボタンなどを使って検索をします。
検索してヒットしたセルを着色。
着色する色はマクロ内で決めてます。
着色したら、テキストボックス内の文字を消去。

ここまでは出来たのですが、ループ機能?を組み込こんで、すべてを検索して着色することが出来ません。
最初のヒットしたセルで終わってしまうんです。
あと、着色完了したあと、すぐに検索できるようテキストボックス内に文字を入れれる状態にしたいです。

どうか、教えていただけますでしょうか。

補足要望があったので、私が入れてるマクロを挙げておきます。

Private Sub CommandButton1_Click()
Dim c As Range
With ActiveSheet
Set c = .Cells.Find(.TextBox1.Value, Lookat:=xlPart)
If Not c Is Nothing Then
c. Interior.ColorIndex = 25
Eise
MsgBox "見つかりませんでした"
.TextBox1.Value = ""
End If
.TextBox1.Value = ""
End With
Set c = Nothing
End Sub

以上です。
これに、テキストボックスに入力している文字が含まれているセルをすべて着色できるようにして、
そして、再びすぐに文字を入力できる状態になる、というのが理想形です。

もしご迷惑でなければ、勉強も同時に行いたいので、ここはどういうマクロか、とメモ程度に書いていただけると嬉しいです。
どうかお願いします。

この質問は、活躍中のチエリアン・専門家に回答をリクエストしました。

閲覧数:
107
回答数:
3
お礼:
250枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

tai********さん

リクエストマッチ

2017/9/417:17:37

シートに挿入するテキストボックスなら


Sub test()
Dim sp As Shape, r As Range
Set sp = Shapes("テキスト ボックス 1")
ActiveSheet.Cells.Interior.Color = -4142
sp.Select
For Each r In ActiveSheet.UsedRange
If r.Value = Selection.Characters.Text Then
r.Interior.Color = vbYellow
End If
Next
Selection.Characters.Text = ""
End Sub



こんな感じだと思うがおそらくFindメソッドを使ったのでしょうね。?
Findの場合FindNextを使うのでこっちより少し面倒、

シートに挿入するテキストボックスなら


Sub test()
Dim sp As Shape, r As...

  • 質問者

    get********さん

    2017/9/420:46:55

    イメージ図としては、こんな感じです!
    今は仕事場ではないので、明日試してみます。
    うまくいけば、このままベストアンサーに選ばせていただきます。

    が、参考程度に、私が入れてたマクロを捕捉で載せておきます。
    私がどうしたかったのか、少しばかりわかっていただければ…

  • その他の返信を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2017/9/10 10:52:03

やっと完成しました!
次々と追加したい機能に対し、すべて答えていただき、本当に感謝しています。
本当にありがとうございました。

これからもっとマクロを学び、勉強していきます!

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

プロフィール画像

カテゴリマスター

aka********さん

リクエストマッチ

2017/9/415:41:44

<すべてを検索して> のすべてとは なんのことでしょうか
ある文字列を すべてのデーター あるいは 特定の範囲から 探すのが 検索ですよね。

貴方の言われる このすべてとは ある文字列が 複数あるということでは ありませんか?

数種類の文字列を データーの中から探す場合は 一々テキストボックスには 入れません。

特定のセルにある複数の文字列を 順次データの中から探すようにして テキストボックスは 不要です。

例えば FOR I=1 TO 100
検索値= RANGE("A" & I)
SET RNG=CELLS.FIND(検索値)
処理
NEXT

これで セルA1:A100迄の値を 順次 全セルから 検索して 処理するマクロになります。(概念です)

テキストボックスを 利用するのは 検索文字列が 数例で 未定の場合 使用します。

繰り返し処理するには 向きません。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

nan********さん

2017/9/415:33:16

テキスト入力の「1-2-2-2」で何をどう検索して色を付けたいのかが
マクロを見てみないとわかりません。

「テキストボックス、テキストボックス内」に関する質問

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる