
No.1ベストアンサー
- 回答日時:
こんにちは。
> 何か解決策はありますでしょうか?
"範囲内のセル全てに処理が適応され"るように書き直せばいいです。
具体的な説明が何もないので、
汎用的なサンプルと、仮の処理例でお応えします。
要は
Targetの中で処理が必要なセルを篩に掛けることと、
Targetの中で処理が必要なセルすべてを総当たりで処理することと、
それぞれのセルについて条件分岐をすることと、
条件分岐に副ってセルの色を変えること、
の4つのポイントを考えればいいです。
以下の記述の応用としては、
★で示した部分で「処理対象範囲」を指定することと、
「条件分岐と処理の一例」として、こちらが勝手に書いている部分を
そちらのやりたいように書換えること、だけで済むように書いています。
以下の記述を新しいシートのシートモジュ-ルにコピペしたら、
「テスト壱」「テスト弐」を実行して動作を確認してみてください。
' ' ///
Private Sub Worksheet_Change(ByVal Target As Range)
Const 処理対象範囲 = "A1:B100" ' ←★運用に合わせて★←要指定★
' ' 関係ないセルの値変更なら処理を中止して Exit Sub
If Intersect(Target, Range(処理対象範囲)) Is Nothing Then Exit Sub
' ' 値変更されたセルの内、処理対象範囲に含まれるセルだけを、総当たりで処理
Dim c As Range
For Each c In Intersect(Target, Range(処理対象範囲))
' ' =======================
' ' 以下、各セル c に対する、条件分岐と処理の一例
If c.Value = "" Or Not IsNumeric(c.Value) Then
c.Interior.ColorIndex = xlColorIndexNone
Else
Select Case c.Value Mod 5
Case 0: c.Interior.Color = vbRed Or &HAAAAAA
Case 1: c.Interior.Color = vbBlue Or &HAAAAAA
Case 2: c.Interior.Color = vbMagenta Or &HAAAAAA
Case 3: c.Interior.Color = vbGreen Or &HAAAAAA
Case 4: c.Interior.Color = vbYellow Or &HAAAAAA
End Select
End If
' ' =======================
Next
End Sub
Sub テスト壱() ' 数値オンリー
Cells.Clear
Cells(1, 1) = 1
Cells(2, 1) = 2
MsgBox "オートフィルします"
Range("A1:A2").AutoFill Destination:=Range("A1:A30")
End Sub
Sub テスト弐() ' 数値と文字列
Cells.Clear
Cells(1, 1) = 1
Cells(2, 1) = "履歴-1"
MsgBox "オートフィルします"
Range("A1:A2").AutoFill Destination:=Range("A1:A30")
End Sub
この回答への補足
2000行くらいのデータ数なので、ループを使うと重くなります。
フォルダ検索を再帰処理で行っているため、これ以上速度を落とすことはできません。
No.2
- 回答日時:
> 2000行くらいのデータ数なので、ループを使うと重くなります。
> フォルダ検索を再帰処理で行っているため、これ以上速度を落とすことはできません。
失礼な話ですね。
補足、ということは、これを読んでどうにかして欲しい、ということなのでしょうけれど、
文句を言う前に何をやりたいのか具体的に示したらどうですか?
> 2000行
その程度で重くなるのは、設計の問題ですから、そちらで見直してください。
> フォルダ検索を再帰処理で行っているため
その処理が遅くて困っている、ということと、件の質問と
どのような関係があって、何を訊きたいのですか?
2000行程度で、"重く"なる状態、ということは、
少なくともExcel2007以降のバージョンだということは想像できます。
でも、想像をどれだけ膨らませても、あなたの望むものを書くことは出来ません。
具体的な条件に合わせて"重くならないよう"手当てすることは出来ますが、
漠然と汎用的な万能薬のようなものを期待されているのでしたら、
残念ながら、そのようなものはありません。
強いて言えば、オートフィルそのものが遅いのですから、
設計も見直しから始めることになるのでしょう。
> オートフィルをした場合、
> 範囲内のセル全てに処理が適応されません
という質問に対する応えとしては、#1の内容以上に書くことはありません。
条件を後出しにして、わざわざ解決を遠避けて楽しんでおられるのでしたら、
或いは、ご自分の置かれた状況や抱えている問題を説明することが出来ないのでしたら、
質問するより先に調べてみてはいかがですか?
このサイト内でも、関連していそうなQAは多数あると思いますよ。
そういうスレを読むことで、あなたが必要とする解決策を手に入れる為には、
どのように質問を組み立てていけばいいのか、とか、
どうすればご自身のなさりたいことを伝えることができるのか、とか、
探ってみるなり、既存の質問・回答を参考にご自身で応用するなり、
何れにしても、もう少し考えてから
仕切り直したほうがよいのではないかと思います。
具体的な回答を付けるのに必要十分な補足でもあれば、解決へのお手伝いはします。
しかし、対話的でなく、尚、挑発的なやりとりしか出来ないのでしたら、
私には引き受けられることはありませんので、退席することになるでしょう。
尚も解決を望まれるようでしたら、ちゃんとした補足をしてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelVBAの複数指定範囲の構文 2 2022/05/26 22:39
- Excel(エクセル) マクロ、条件付き書式のfont.color 1 2023/03/28 01:10
- Excel(エクセル) Excel VBA 空白行があるセル範囲に色を付ける 3 2022/06/13 15:58
- Visual Basic(VBA) 複数指定セルの可視セルのみを別シートに転記するVBAについて 2 2022/05/27 21:19
- Visual Basic(VBA) Sheet1のA列にコードB列にメアド、Sheet2のB列にコード一覧とD列にメアド一覧があり、Sh 3 2022/10/19 11:57
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/15 08:30
- 一眼レフカメラ プログラムオートといわゆるオートの違いは? 1 2022/09/11 20:20
- Visual Basic(VBA) シート間で同じ値があったら指定範囲をコピーして貼り付け 1 2022/11/07 08:01
- Visual Basic(VBA) EXCEL VBA ユーザーフォームの内容をループでデータベースに登録したい。 2 2023/02/02 10:22
- Visual Basic(VBA) セルS2に入力した「月」と一致したB列の右隣へセルS110の値を転記する下記マクロを実行するとエラー 2 2022/12/06 17:32
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Vba Array関数について教えてく...
-
【マクロ】シートの変数へ入れ...
-
【マクロ】並び替えの範囲が、...
-
エクセルのVBAコードと数式につ...
-
エクセルのマクロについて教え...
-
エクセルの改行について
-
【VBA】 結合セルに複数画像と...
-
vbsでのwebフォームへの入力制限?
-
算術演算子「¥」の意味について
-
【マクロ】売上一覧YYYYMMDDHHS...
-
【マクロ】開いているブックの...
-
Vba セルの4辺について罫線が有...
-
vb.net(vs2022)のtextboxのデザ...
-
ダブルクリックで貼り付けた画...
-
VBAの「To」という語句について
-
VBAでユーザーフォームを指定回...
-
VBAでCOPYを繰り返すと、処理が...
-
【マクロ】変数を使った、文字...
-
エクセルのVBAコードについて教...
-
ワードの図形にマクロを登録で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Vba セルの4辺について罫線が有...
-
vbsでのwebフォームへの入力制限?
-
【ExcelVBA】5万行以上のデー...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
【マクロ】開いているブックの...
-
【マクロ】並び替えの範囲が、...
-
エクセルの改行について
-
エクセルのマクロについて教え...
-
vb.net(vs2022)のtextboxのデザ...
-
VBAでCOPYを繰り返すと、処理が...
-
VBA ユーザーフォーム ボタンク...
-
エクセルのVBAコードと数式につ...
-
エクセルのVBAコードについて教...
-
[VB.net] ボタン(Flat)のEnable...
-
【マクロ】変数を使った、文字...
-
改行文字「vbCrLf」とは
-
質問58753 このコードでうまく...
-
【マクロ】シートの変数へ入れ...
-
ワードの図形にマクロを登録で...
-
算術演算子「¥」の意味について
おすすめ情報