当方VBA勉強中の者です。
以下のことをしたくて学習を始めました。
①特定フォルダ内に格納されている全テキストファイルを読み込み
② ①の内容を新規シートに張り付け、これを繰り返す。
ここまでは諸々調べて出来たように思えます。(Excel2016)
諸事情によりコードを掲載すると質問が通りませんでしたので検索したのですが、
こちらのご回答者様と類似した内容のVBAを作成してみました。
https://oshiete.goo.ne.jp/qa/6689790.html
少し逸れましたが、この後以下のことをしたくなりました。
③各シートの13,14,15,16行目に特定の文字列(数字の1以上)が含まれている場合、シート見出しの色を赤色にしたい。
参考までですが、テキスト内容はこのような形です。
>>>>>>>>>>
1~6行目:文字列
7行目:空白
8~最大16行目 ;テキストによって13行目まで等、行数が異なり不定です。
約17行目:空白 ; 以後何かしらの文字列が18行目以降にあります。
8~最大16行目は以下のようになっています。 ;あくまでイメージです。
8 -------------------------------
9 **** **** *****
10 **** **** *****
11 **** **** *****
12 -------------------------------
13 userA no 6 ******
14 userB no 0 ******
15 userC no 0 ******
16
>>>>>>>>>>
Tabプロジェクト内のColorIndexプロジェクトを使う等、所々アタリはついているのですが、
一度Subを区切ってしまったので、追記するのが良いのか。
そもそも内容をループ処理に変更してその中で処理しなければなのか。
不定の行数の表現や、そもそもの抽出方法をどうすべきか方針が固まらず、
行き詰ってしまいました。
有識者の方、上記を満たすようなVBAはどのようなものになりますでしょうか。
ご教示いただけますと大変助かります。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
No1です。
>0を含めたどの数字が入っていようと、メッセージボックス
>"あり"の判定となってしまいます。
私の環境では、含まれている数字が0だけの場合は「なし」と判定されます。
>範囲もFindの数字も誤ってないように見受けられるのですが、
No1のコードの意味を変えて実行しているものと推測します。
例えば、
「 i = 1 」としているところを、「 i = 0 」に変えればそのようになりますけれど・・?
No.2
- 回答日時:
こんばんは。
>③各シートの13,14,15,16行目に特定の文字列(数字の1以上)が含まれている場合、シート見出しの色を赤色にしたい。
userA no 6 ****** : これは対象
userB no 0 ****** : これは対象外
Like演算子が、便利に使えると思います。 例えば下記はどうでしょうか?
全シートのA13:A16を検索しています。
Sub test11()
Dim mySh As Worksheet, myRng As Range
For Each mySh In Worksheets
For Each myRng In mySh.Range("A13:A16")
If myRng Like "user* no [1-9]*" Then
’処理内容を記載
MsgBox myRng.Address & "OK!"
End If
Next myRng
Next mySh
End Sub
No.1
- 回答日時:
こんにちは
>特定の文字列(数字の1以上)が含まれている場合~~
がわかればよいものと解釈しました。
表現を変えれば、セル範囲内に1~9の文字が存在するか否かを調べればよいことになるので、"*数字*"で検索してヒットすれば「あり」と判定できます。
(正規表現を用いる方法も考えられますが、面倒なので・・)
以下は、ひとまずアクティブシートを対象にしてありますが、変数wsの内容を対象シートにすれば、そのシートを検索します。
対象のセル範囲が列全体なのか、A列だけでよいのかわかりませんけれど、とりあえずA列にしてあります。
(違っている場合は、セル範囲を変えればそのまま応用できるはずです)
「1~9」の文字があれば「あり」、無ければ「なし」と表示されます。
Sub Sample()
Set ws = ActiveSheet
i = 1
Set r = Nothing
While i < 10 And r Is Nothing
Set r = ws.Range("A13:A16").Find("*" & i & "*")
i = i + 1
Wend
If r Is Nothing Then MsgBox "なし" Else MsgBox "あり"
End Sub
ご回答いただきありがとうございます。
>表現を変えれば、セル範囲内に1~9の文字が存在するか否かを調べればよいことになるので...
→なるほど。多角的に見るとヒントがあったりするのですね。
まずは言葉が不足しておりすみません。
汲んで頂いた通り、問題の箇所はA13~A16になります。
試しにいくつかのシートで実行してみたところ、
0を含めたどの数字が入っていようと、メッセージボックス"あり"の判定となってしまいます。
範囲もFindの数字も誤ってないように見受けられるのですが、、
この原因を探すことはできますでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAで、1つのエクセルで、2つのシートからもう1つのシートに条件のある転記コードを教えてください。 1 2023/03/16 18:07
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
- Visual Basic(VBA) VBA 改行コードの取り方 1 2022/03/22 14:14
- Excel(エクセル) Excelの列から検索して該当する行を別シートに転記するVBA 2 2022/12/20 09:35
- Visual Basic(VBA) VBAでのMATCH関数 3 2022/10/17 19:06
- Visual Basic(VBA) エクセルについて教えてください。 3 2023/06/28 09:11
- Excel(エクセル) 列を自動で追加したい 3 2022/07/11 12:58
- Visual Basic(VBA) VBAで、特定の文字より後を削除して残った数値を文字列に変換と特定の文字より前も削除したい 3 2022/04/15 19:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別のシートから値を取得するとき
-
Excelマクロのエラーを解決した...
-
【Excel VBA】Worksheets().Act...
-
同じ作業を複数のシートに実行...
-
ユーザーフォームに入力したデ...
-
XL:BeforeDoubleClickが動かない
-
特定の文字を含むシートだけマ...
-
excelのマクロで該当処理できな...
-
VBA 入力月で該当シートを選択...
-
IFステートの中にWithステート...
-
【ExcelVBA】全シートのセルの...
-
Worksheet_Changeの内容を標準...
-
ExcelVBA:複数の特定のグラフ...
-
ブック名、シート名を他のモジ...
-
エクセル・マクロ シートの非...
-
VBAで大量のファイルをシート名...
-
実行時エラー'1004': WorkSheet...
-
VBA 検索して一致したセル...
-
エクセルのシート名変更で重複...
-
エクセルVBAでダブルクリックを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のシートから値を取得するとき
-
ユーザーフォームに入力したデ...
-
【ExcelVBA】全シートのセルの...
-
同じ作業を複数のシートに実行...
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
ExcelVBA シート名を複数セルか...
-
XL:BeforeDoubleClickが動かない
-
実行時エラー'1004': WorkSheet...
-
VBA 存在しないシートを選...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
ブック名、シート名を他のモジ...
-
ExcelのVBAのマクロで他のシー...
-
【Excel VBA】Worksheets().Act...
-
エクセルのシート名変更で重複...
-
特定の文字を含むシートだけマ...
-
シートが保護されている状態で...
-
Excel マクロについての相談
-
VBA 検索して一致したセル...
おすすめ情報