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も見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
VBA/Worksheet_Changeがうまくいかない
PowerPoint(パワーポイント)
-
Excel VBAでのWorksheet_Changeが動作しない原因
Excel(エクセル)
-
エクセル イベントマクロ Changeイベントを複数作りたい
Access(アクセス)
-
-
4
IF関数で空欄(")の時、Nullにしたい
その他(Microsoft Office)
-
5
エクセルのコントロールツールボックスの出し方。
Visual Basic(VBA)
-
6
VBAでオプションボタンによってコンボボックスの内容を変える方法
Visual Basic(VBA)
-
7
Worksheet_Change、名前の定義で分岐
その他(Microsoft Office)
-
8
Excel:入力規制で選択された値によって他のセルの入力規制リストを変更する方法
Excel(エクセル)
-
9
Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
メルカリのメルカードで買い物...
-
EXCEL VBA マクロ 実行する度に...
-
switch の範囲指定
-
DoEventsがやはり分からない
-
【Excel】特定の文字を含むセル...
-
インタラクティブの反対語は?
-
FFTの結果ついて
-
VB.NET Excelを読み込んでDataT...
-
findは動くがfindnextがマクロ...
-
Access チェックボックスでチェ...
-
VB6,Ifから抜けるには?
-
読み方教えてください。
-
UMLでの例外処理
-
Arduino UNO のC言語
-
TextBoxに日付を自動的に入れる
-
月度は何て読みますか?
-
2重のDo~Loopは?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
switch の範囲指定
-
メルカリのメルカードで買い物...
-
【Excel】特定の文字を含むセル...
-
DoEventsがやはり分からない
-
EXCEL VBA マクロ 実行する度に...
-
VBの質問#if 0 then ってどう...
-
Do~Loopした回数をカウントしたい
-
もしかして
-
UMLでの例外処理
-
findは動くがfindnextがマクロ...
-
インタラクティブの反対語は?
-
VBA SaveChanges 上書きされない
-
リョウ・・・量?料?
-
Loadイベント中にほかのイベン...
-
セルの値が0はクリアするマクロ
-
FFTの結果ついて
-
Select Case文でこのようなこと...
おすすめ情報