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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ハマっている「お菓子」を教えて!
この世には、おいしいお菓子がありすぎて……。 次何を食べたらいいか迷っています。 みなさんが今、ハマっている「お菓子」を教えてください!
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
メモのコツを教えてください!
メモを取るのが苦手です。 急いでメモすると内容がごちゃごちゃになってしまったり、ひどいときには全く読めない時もあります。
-
【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
【お題】 ・買ったばかりの自転車を分解してひと言
-
「お昼の放送」の思い出
小学校から中学校、ところによっては高校まで お昼休みに校内放送で、放送委員が音楽とかおしゃべりとか流してましたよね。 最近は自分でもラジオができるようになって、そのクオリティもすごいことになっていると聞きます。
-
VBA/Worksheet_Changeがうまくいかない
PowerPoint(パワーポイント)
-
エクセル イベントマクロ Changeイベントを複数作りたい
Access(アクセス)
-
Excel VBAでのWorksheet_Changeが動作しない原因
Excel(エクセル)
-
-
4
【Excel VBA】シートコピー時、マクロコードはコピーしたくない
Access(アクセス)
-
5
worksheet_changeがループする
PowerPoint(パワーポイント)
-
6
エクセルのコントロールツールボックスの出し方。
Visual Basic(VBA)
-
7
Worksheet_Change、名前の定義で分岐
その他(Microsoft Office)
-
8
VBAでオプションボタンによってコンボボックスの内容を変える方法
Visual Basic(VBA)
-
9
Excel:入力規制で選択された値によって他のセルの入力規制リストを変更する方法
Excel(エクセル)
-
10
エクセルVBAでUserFormを起動した時
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
switch の範囲指定
-
DoEventsがやはり分からない
-
インタラクティブの反対語は?
-
UMLでの例外処理
-
VBAでループ内で使う変数名を可...
-
【Excel】特定の文字を含むセル...
-
findは動くがfindnextがマクロ...
-
iD
-
VBの質問#if 0 then ってどう...
-
Do~Loopした回数をカウントしたい
-
Access チェックボックスでチェ...
-
EXCEL VBA マクロ 実行する度に...
-
再帰処理を途中で抜けるには
-
IQテストの数列
-
Access 日付/時間型を検...
-
月度は何て読みますか?
-
Select Case文でこのようなこと...
-
VBA 特定の文字が入力されたセ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
EXCEL VBA マクロ 実行する度に...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
メルカリのメルカードで買い物...
-
DoEventsがやはり分からない
-
【Excel】特定の文字を含むセル...
-
findは動くがfindnextがマクロ...
-
switch の範囲指定
-
月度は何て読みますか?
-
インタラクティブの反対語は?
-
VBの質問#if 0 then ってどう...
-
UMLでの例外処理
-
お家デートをしててハグを長い...
-
Do~Loopした回数をカウントしたい
-
リョウ・・・量?料?
-
FFTの結果ついて
-
iD
-
VBAでセルに値が入力されるまで...
-
VB.NET Excelを読み込んでDataT...
おすすめ情報