
マクロ初心者です。
IF複数条件についてお聞きしたいのですがよろしくお願いします。
■内容■
E列に入っているデータをF列に条件出力するマクロを作成したいです。
その際、指定したコード(全50条件:01A~50X)以外を全て「その他」にしたいのですが可能でしょうか?
<マクロ>
ActiveSheet.Range("F2:F50").FormulaR1C1 = _
"=IF(OR(RC[-1]=""01A"",RC[-1]=""02B"",RC[-1]=""03C"",RC[-1]=""04D""・・・・・・・,RC[-1]=""50X"",RC[-1]=""""),RC[-1],""その他"")"
■問題■
・条件が50個とたくさんあるためうまく処理されません。条件に上限があるのでしょうか?
・プログラムが長いのと見やすくするため改行をしたいのですが、エラーになってしまいうまくプログラム文中の改行ができない。
何回か試行錯誤してみましたがうまくいきませんでした。
どなたか分かる方がいらっしゃいましたらご助言いただきたいです。
よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
セル式の長さは1024文字までと言う制限があります。
コレに引っかかっていませんか?また、50個の条件式が並んでいたら見づらくって仕方が無いように思えます。
それよりは、50個のコードを作業列(例ではA列)に入れ、E列の各行の値がA列に無ければ「その他」と表示し、あればE列の値をそのまま表示する方が良いと思います。
つまり、この様な式を埋め込んでいくわけです
=IF(ISNA(MATCH(E2,A:A,0)),"その他",E2)
マクロにするとこんな感じです。
ActiveSheet.Range("F2:F50").FormulaR1C1 = "=IF(ISNA(MATCH(RC[-1],A:A,0)),""その他"",RC[-1])"'<- A列にコード一覧が記載されている事
ActiveSheet.EnableCalculation = True '<- 再計算してくれない場合はこの1行もいれる
条件式がかなり長かったので制限にひかかっていたと思います。
同じ値ならその値を返し、違う場合は「その他」を返す。
と言った処理の方がスマートですね。
教えていただきました式を入れてみたのですが・・・
=IF(ISNA(MATCH(E2,A:A,0)),"その他",E2)
違う値の場合に「その他」が反映されず、「0」が反映されて
しまいました。
A列にはコード一覧は入っている状態なのですが、どうしたら良いでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- その他(データベース) 「1004:アプリケーション定義またはオブジェクト定義のエラー」への解消方法に関して 1 2023/07/09 11:47
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:02
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:00
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- Visual Basic(VBA) Sheet3から2つの条件でオートフィルターで抽出した個数をSheet2へ入力するマクロで、一つ目の 4 2023/01/12 23:40
- Visual Basic(VBA) excel VBA if文について 3 2022/03/27 17:42
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
一行おきにコピーするマクロが...
-
シート保護の状態で行の追加を...
-
エクセル VBA 指定の範囲内をコ...
-
エクセルで空白以外のセルの値...
-
EXCELにて複数列を同条件(色)...
-
エクセルで反転コピー
-
最終行から上10行をコピーする...
-
【Excel-マクロ】グループとア...
-
行数が不規則な一週間ごとの合...
-
マクロ初心者です、小数点6桁で...
-
エクセルで行挿入した際、自動...
-
特定の桁数を抽出
-
エクセルで縦に長い表を印刷
-
Excelの非表示列も含めてコピー
-
【マクロ】IF複数条件の上限に...
-
エクセル マクロ 貼り付け先が...
-
エクセルの関数について(日付で...
-
エクセルで表示された値だけ行...
-
EXCELで○ヶ月を○年○ヶ月に変換...
-
Excelで同じセルに箇条書きをし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELにて複数列を同条件(色)...
-
一行おきにコピーするマクロが...
-
エクセルで空白以外のセルの値...
-
Excelの非表示列も含めてコピー
-
シート保護の状態で行の追加を...
-
エクセルの関数について(日付で...
-
エクセルで反転コピー
-
エクセル VBA 指定の範囲内をコ...
-
エクセルで表示された値だけ行...
-
エクセル マクロ 貼り付け先が...
-
エクセルで行挿入した際、自動...
-
エクセルVBA 複数列をコピーす...
-
[Excel VBA]空白セル以外に連番...
-
特定の桁数を抽出
-
マクロ初心者です、小数点6桁で...
-
"=LEFT(RC[-13],5)"を書き換えたい
-
Excel VBAで日にちを入力して線...
-
【Excel-マクロ】グループとア...
-
Excelのマクロで不規則に連番を...
-
Excel 条件に従いセル移動するには
おすすめ情報