A 回答 (7件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
こんばんは!
>そのうちB、D、Zに●を付与する。
とは別列表示で良いのでしょうか?
とりあえずB列に「●」を表示するようにしてみました。
一例です。
Sub Sample1()
Dim k As Long, c As Range, myAry As Variant
myAry = Array("B", "D", "Z")
Range("B:B").ClearContents
For k = 0 To UBound(myAry)
Set c = Range("A:A").Find(what:=myAry(k), LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
c.Offset(, 1) = "●"
End If
Next k
End Sub
>なお、●の付与は一度のみで、再度クリックしても●が付与されない
の意味がよく判らないので
的外れならごめんなさいね。m(_ _)m
回答ありがとうございます。返信が遅くなり、すいません。
なお書きの意味が分かり辛かったですね。
B列に「●」を表示するのではなく、A列に記載され、検索されたB、D、Z
の前に「●」が表示される感じです。
例)●B
記載されたマクロは正常に動きましたが、追加の内容ではどの様になりますでしょうか。
もし、可能であれば回答お願い致します。無知ですいません。
No.2
- 回答日時:
流れ図を書くとわかりやすいと思いますよ。
セルA1にカーソルを移動
↓
→→ セルに入っている文字列に●が含まれているか?
↑ ↓ ↓
↑ Yes No
↑ ↓ ↓
↑ ↓ B、D、Zなら●を加える。
↑ ↓ ↓
↑ ↓ ↓
↑ セルを一つ下に移動。
↑ ↓
↑←行数分繰り返し←←←
※ セルA1から下方向へ順番に検索して空白セルになるまで繰り返します。
※ 文字列の大文字・小文字の判定はしていません。この例では半角大文字だけを認識します。
Sub Macro1()
' エクセルで複数の文字を検索し、その文字に特定文字を付与する
Dim i As Long, moji As String
Range("A1").Select
i = 1
Do Until Cells(i, 1) = ""
moji = ActiveCell.Value
If InStr(moji, "●") > 0 Then GoTo Continue
If InStr(moji, "B") > 0 Then ActiveCell.Value = moji + "●"
If InStr(moji, "D") > 0 Then ActiveCell.Value = moji + "●"
If InStr(moji, "Z") > 0 Then ActiveCell.Value = moji + "●"
Continue:
ActiveCell.Offset(1, 0).Select
i = i + 1
Loop
End Sub
回答ありがとうございます。お礼が遅くなりすいません。
回答頂いたマクロで正常に動きましたが、A列の任意の行から検索される様にしたいです。
どの様にしたら宜しいでしょうか。
持てる知識は活用したのですが、上手く出来ませんでしたので、回答頂けると幸いです。
No.3
- 回答日時:
No.1です。
↓のコードに変更してみてください。
Sub Sample2()
Dim k As Long, c As Range, myAry As Variant
myAry = Array("B", "D", "Z")
For k = 0 To UBound(myAry)
Set c = Range("A:A").Find(what:=myAry(k), LookIn:=xlValues, lookat:=xlWhole, MatchCase:=True)
If Not c Is Nothing Then
c = "●" & c
End If
Next k
End Sub
※ A列の最初から検索しています。
尚、No.2さんの方に
>A列の任意の行から検索される様にしたいです。
とありますので、余計なお世話かもしれませんが、
A列のあるセルを選択し、そのセル以降で最初にヒットした場合のコードも載せておきます。
Sub Sample3()
Dim k As Long, lastRow As Long
Dim c As Range, myArea As Range, myAry As Variant
myAry = Array("B", "D", "Z")
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
Set myArea = Range(Cells(Selection.Row, "A"), Cells(lastRow, "A"))
For k = 0 To UBound(myAry)
Set c = myArea.Find(what:=myAry(k), LookIn:=xlValues, lookat:=xlWhole, MatchCase:=True)
If Not c Is Nothing Then
c = "●" & c
End If
Next k
End Sub
これで選択セル以降が検索対象となります。
※ 今回はどちらも大文字・小文字を区別していますので、
途中に小文字のアルファベットがあってもスルーされます。m(_ _)m
No.4
- 回答日時:
No,2です。
今回、質問者さんがVBAについてまだ慣れていらっしゃらないようでしたので
複雑な配列などをごちゃごちゃ書くよりもシンプルな方が良いと思い出来るだけシンプルにしました。
なので、おっしゃるような改造も簡単な書き換えで出来ます。
A列の任意の行から検索される様にしたい、ということは
流れ図の最初、つまり「セルA1にカーソルを移動」という部分が無ければ良いということです。
プログラムでいうと4行目の「 Range("A1").Select 」を削除するだけです。
あらかじめA列の任意のセルをクリックしておいてからこのマクロを実行すればその場所から検索を始めます。
No.5
- 回答日時:
再びNo,2です。
修正した内容です。結果が”B●”となるのを”●B”の形にしました。
Sub Macro1()
' エクセルで複数の文字を検索し、その文字に特定文字を付与する
Dim i As Long, moji As String
i = ActiveCell.Row
Do Until Cells(i, 1) = ""
moji = ActiveCell.Value
If InStr(moji, "●") > 0 Then GoTo Continue
If InStr(moji, "B") > 0 Then ActiveCell.Value = "●" + moji
If InStr(moji, "D") > 0 Then ActiveCell.Value = "●" + moji
If InStr(moji, "Z") > 0 Then ActiveCell.Value = "●" + moji
Continue:
ActiveCell.Offset(1, 0).Select
i = i + 1
Loop
End Sub
丁寧な回答ありがとうございます。
マクロ自体はとても分かりやすいのですが、25行目までしか機能しません。
26行目以降にB,D,Zがあっても●が付されない状況です。
No.6
- 回答日時:
No,2です。
[26行目以降にB,D,Zがあっても●が付されない]ということですが、
当方の環境ではNo.5のマクロで何百行でも正しく動作しています。
26行目以降にB,D,Zがあっても●が付きます。
セル内の文字列に問題がありそうな気がしますが、
その「●が付されない」文字列というのをここに貼ってみてもらえませんか。
No.7
- 回答日時:
No,2です。
何度もすいません。B,D,Zは半角文字でなければ反応しません。全角で入力されていませんか?。
添付画像のように画面上ではとても区別しにくいのでよく確認してみてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Excel(エクセル) エクセルの条件付き書式で*を使いたい 4 2022/05/13 16:49
- Visual Basic(VBA) VBA初心者です 検索した数字の行に色をつける 5 2023/02/13 14:22
- Excel(エクセル) Excelについて▶あるセルに文字を入力すると、別のセルに色がつく(条件付き書式) 1 2022/03/27 16:43
- Excel(エクセル) Excelでの検索結果を含む行だけを表示させたい 5 2023/03/10 17:08
- Excel(エクセル) エクセル関数の変わった使い方 3 2022/05/13 17:12
- Visual Basic(VBA) 以下のVBAで該当文字列の前後に付与したい。 例 前に付与 abc ユーザーID 12345 後に付 3 2022/04/19 21:50
- Excel(エクセル) VBA 文字列変換と指定した列にある日時データから時間を削除する方法について 2 2022/04/14 15:23
- ノートパソコン 外付けHDDがDからEに変わってしまいました。元に戻したいです。 2 2022/04/04 14:45
- Excel(エクセル) エクセル関数について 8 2023/06/28 17:04
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
キックでかかるのに、セルが回...
-
フォルツァmf08のセルが回らない
-
2ストのバイクにセルスタータ...
-
トラクターのセルを回すには何...
-
セルダイナモ
-
ライブディオ ZX なにしてもか...
-
マインスーパーのルールを教え...
-
SR400へのセルスターターの取り...
-
レッツ4パレットのFIランプが点...
-
z750s
-
セルスターターの取り付け方法...
-
RZ50セルでエンジンかからない
-
ホーネット250、セルがまわ...
-
フェアレディーZ(Z33)のエン...
-
SUZUKIのバンバン200のエンジン...
-
TWのスカチューンについて
-
映画「MADMAX」★グース始動時の...
-
鉄道路線図の作り方
-
先日、妻がスズキのチョイノリ...
-
スカイウェイブ 一日駐車でオ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
キックでかかるのに、セルが回...
-
AVにあるセル解禁とはどういう...
-
フェアレディーZ(Z33)のエン...
-
ホーネット250、セルがまわ...
-
スクーターのエンジンが急にか...
-
TWをセル始動に戻すには?
-
フォルツァmf08のセルが回らない
-
マジェスティーのセルボタン押...
-
バイク
-
SR400へのセルスターターの取り...
-
なぜバイクには キックスタート...
-
マグナ50をキタコ88ccにボアア...
-
セルでもキックでもエンジンが...
-
エンジンブローするとセルが回...
-
セルモーターが止まらない現象
-
マグナ50 セルでエンジンがかか...
-
z750s
-
z750s
-
TW200のキルスイッチについて
-
GSX250カタナのセルは回るが、...
おすすめ情報