エクセルにおいて
vbaで「Select Case ステートメント」や「If...Then...Else ステートメント」を組める場合
条件付書式は役にたたないですか?
条件付書式のほうが優れている場合もありますか?

よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

こんはんば。



VBAとワークシートのコマンドは、比較にはならない、というべきかもしれません。VBAでは、条件を3つ以上増やして色をつけるという利点を挙げる人もいるかと思います。1回きりなら、VBAでは、色づけも良いのですが、あまり多く使いません。

実際の私自身の作ったものを言うと、VBAをがっちり組んでいるのにも関わらず、やはり条件付き書式を使って、入力した文字の内容を条件に、フォントを青くしたり、赤くしたり、戻すようにしています。

理由は、行を挿入しても条件付き書式の領域が広がらない、値の入力によって自動的に色が変わる、反応が速い、などの利点が挙げられます。

ただし、行を挿入したり削除するのを、セルを挿入/削除すると参照するセルがずれてしまうので、それらは、参照セルがずれないようなマクロにしました。
    • good
    • 0
この回答へのお礼

一回きりなら条件付書式で十分ですね。ありがとうございます。

お礼日時:2009/05/12 21:41

私の経験より回答します。


結論から言うとケースバイケースです。
条件付書式と関数のみで作成してしまえば、マクロを使わないのでマクロを有効にするかどうかの確認画面が誰が開いても出てこなくなると言う利点があります。(再描画の問題を考慮しなければ、選択している行をハイライトさせることも条件付書式で可能ですし、条件付書式での書式にセルの網掛けのみを設定するなどすればさらに視覚的効果の幅が広がります)
更に、条件付き書式を使うメリットとしては、マクロを使うほど高度な処理をするわけでもない小さな視覚的効果を実現するときに非常に強力です。(マクロだと1個1個構文を書いていくの面倒ですしね)
逆に、マクロで実装するほうが有利な場合もあります。関数だけで実装した場合は数が多くなるとLookUp系は特にですが再計算処理がもたつくようになります。更に、広範囲で複数パターンの入り混じった条件付書式をコピーしようとすると、「範囲が広すぎます」と言われて貼り付けできなかったり、複雑すぎて保存できませんと言われたりします。
そういうときに、Excelの自動処理に任せるのではなく、変更されたポイントだけをマクロでピンポイントに処理を行うことにより処理の高速化を狙うことができます。
ですので、条件付書式が絶対いいともマクロのほうが絶対いいともどちらともいえません。扱いたいデータの量やそのファイルを以後どのくらいの長さ使用するか、そのファイルをまたメンテナンスする頻度がどのくらいあるかなどによりマクロを使うかマクロを使わずに条件付書式で完結させるか、あるいは両方のいいところ取りをして最適なパターンを探すかなどいろいろな場合があります。
私自身、集計などの補助のためのファイルを作成することが多いですが、どちらもよく使っています。ただ、小規模なものでしたらマクロは極力使わないようにしていますね。(処理速度が重い場合は別ですが・・・)使用者がファイルを開くたびにマクロのセキュリティーの確認を聞かれるのも鬱陶しいだろうからと言う気遣い的な考えからですね。
以上、参考になれば幸いです。
    • good
    • 0
この回答へのお礼

どちらにも利点はあるのですね。
確かにセキュリティ画面は鬱陶しいですね。
ありがとうございます。

お礼日時:2009/05/12 21:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセルの、複数条件指定の合計を出すSUMIFS関数の末尾の「 S」は、何の意味でしょうか?

エクセルの、複数条件指定の合計を出す、SUMIFS関数の末尾の「 S」は、何の意味でしょうか?
別にある単数条件指定の合計を出す関数の「SUMIF」関数との区別で気になっています。

詳しい方がいましたら、ご回答、よろしくお願いします。

Aベストアンサー

こんにちは!

SUMIF関数は検索条件がひとつの場合の「合計」に使用する関数ですが、
SUMIFS関数関数は複数条件に対応できる関数になります。
その意味での「s」になるのではないでしょうか?

※ Excel2007以降では同じような関数で
COUNTIFS関数・AVERAGEIFS関数等が準備されています。m(_ _)m

Qexcel-エクセルの条件付書式ー誕生日月を...

私、WinME,Offce2000personalを使用しております。

エクセルの条件付書式で、「今月」誕生日の人のセルを強調させて表示したいのですが、どういう条件設定にすればよいのでしょうか。

エクセル技道場も拝見しましたが、3日前から、ということでしたので、過ぎてしまうと、(>=3のところを>=31とかにしても)強調表示は消えてしまいますよね?
毎月、書式を手入力で更新せずに、設定したいのですが、、。
こちらの過去投稿も拝見したのですが、年が同じでしたので、よくわからなかったのです。
回答よろしくお願いします。

Aベストアンサー

C4:C10の範囲に誕生日が入っているとして、その範囲を選択して「条件付き書式の設定」へ行きます。
左のボックスを「数式が」にします。
右のボックスには「=(MONTH(C4)=MONTH(TODAY()))」と入力します。
どうですか?

Qエクセル関数(IF)のある条件公式の意味は?

ある商品の売買に関する下記のエクセル関数(IF)のある条件公式の意味がわかりません。
どなたか、教えていただけましたら嬉しく思います。

fx=IF(H28>$F$6,IF(F28>1,"売","-"),
IF(H28<-$F$6,IF(F28>1,"買","-"),"-"))

前半の部分は、Fから6(?)の値がH28の値よりも小さいとき、
かつF28の値が1よりも大きいときは売。
後半の部分はFから6(?)の値がH28よりも大きいとき、
かつF28の値が1より大きいときは買。
という指示ではないかと思いますが正しいのでしょうか?

この条件の公式なのですが、意味がわかりません。
よろしくお願いします。

Aベストアンサー

参考に
=IF(F28>1,IF(H28>$F$6,"売",IF(H28<-$F$6,"買","-")),"-")
式をこのようにすることもできます。
売買の条件
1.F28>1 であること
2.H28>F6 ならば 「売」
3.H28<-F6 ならば 「買」
4.1~3に当てはまらない場合はすべて 「-」

QエクセルVBAでSelect...Caseの構文

エクセルVBAで
■Select...Caseの構文は、次(構文1)のようになっているとのことですが、
構文2のような、意味でネストして使う使い方は許されているのでしょうか。
(参考 QNo.1965604 の#7に,#8に関係したところをお聞きします。)

(構文1)
Select Case 変数
 Case 値1
   変数が値1の時の処理
 Case 値2
   変数が値2の時の処理
 Case Else
   他のCaseに合わない場合(その他)の処理
End Select

(構文2)
Select Case 変数a
 Case 値1
   変数aが値1の時の処理
      Select Case 変数b
           Case 値1
           変数bが値1の時の処理
           Case 値2
           変数bが値2の時の処理
      Case Else
       変数bが、他のCaseに合わない場合(その他)の処理
End Select

 Case 値2
   変数aが値2の時の処理
 Case Else
   変数aが、他のCaseに合わない場合(その他)の処理
End Select

エクセルVBAで
■Select...Caseの構文は、次(構文1)のようになっているとのことですが、
構文2のような、意味でネストして使う使い方は許されているのでしょうか。
(参考 QNo.1965604 の#7に,#8に関係したところをお聞きします。)

(構文1)
Select Case 変数
 Case 値1
   変数が値1の時の処理
 Case 値2
   変数が値2の時の処理
 Case Else
   他のCaseに合わない場合(その他)の処理
End Select

(構文2)
Select Case 変数a
 Case 値1
   変数aが...続きを読む

Aベストアンサー

質問 1965604 で回答したものです。「メチャメチャになっている」と書いた箇所があり、そのことと本質問が関連しているのかもしれません。もしそうなら、言い訳になりますが、
OKWAVEの補足をパッと見て、OKWAVEではインデントが崩れるのでネストを見抜けず、SelectCaseの視点(変数)が変わっていたので誤解したようです。Case分のネストも最近使わなかったので。
CASE文のネストが可能かどうかは、既出回答でお分かりになったと思います。
複数視点からの判別はプログラム表現(コーディング)上難しいもののように思ってます。
それぞれ(変数aと変数b)を個別に条件を満たすかどうかのサイン(フラグ)0,1を作って(するとサインの組み合わせができますが)、11、10、01、00の各パターンを判別(例えばネストなしのCASE文で)して、処理を変えたような経験もあります。
質問 1965604 では、他の箇所の補足振りから見て、CASE文のネストまで使われるレベルの方とは思わず、失礼しました。

Qこのポイント獲得条件の意味がわからないんですけど分かりやすく説明してくれる方お願いします(T_T)

このポイント獲得条件の意味がわからないんですけど分かりやすく説明してくれる方お願いします(T_T)

Aベストアンサー

「インストールしてアプリ起動」と書いてありますね。そのままです。
上のボタンから、AppStoreにへ入って、ダウンロード。アプリ起動です。
大抵はアプリ起動後にブラウザが勝手に立ち上がります。遷移しない場合はポイント付かない(失敗)してる事が多いです。(なお、失敗したと思ってやり直し2度めインストールしても付きません。1度インストールしてるため)

こういったポイント付くと書いてあっても、ポイント付かない場合もあります。
特定のゲーム会社のもので付かないという事があります。(偽広告?)
すぐポイントと書いてあっても、5分後ぐらいの事もあります。

QExcelで日付を条件にした条件付き書式を設定したいのですが...

Excelで日付が期間内に収まるか判定する条件付き書式を書いています。
エクセル技道場もヘルプも見たのですがうまくいきません。
ご存知でしたら、教えて下さい。

やりたいことは次のとおりです。

 A      B(開始)  C(終了)  D(対象日) E(判定)
 2001年7月  7/1     7/15 7/2 赤
  ↑       ↑     ↑ ↑
(2001/07/01)(2001/07/1) (2001/07/15) (A+1)

7/16     色なし

 Eを、Dの日付が開始と終了日の間にあれば「赤」に、なければ色なしで
 表示したいのです。

DATEDIFとDATEVALUEを組合せて条件式を作っているのですが、赤になり
ません。よろしくお願いします。

Aベストアンサー

なんだかわざわざ難しくしちゃってる感じ。
D1セルの日付がB1とC1の間にあるときにTRUEになる数式は、
=AND(B1<=D1,D1<=C1)
ですみますよね。
あとはTRUEとFALSEで色変えをする条件付書式を設定するだけ。

Q戦略的互恵関係の成立条件とその意味とは?

戦略的互恵関係の成立条件とその意味とは?

最近、国会の予算委員会をラジオで聞いていると「戦略的互恵関係」という言葉が頻繁に聞こえてくるのですが、意味がわからないのです。
まあ、主義主張が同じ国であれば「互恵関係」は成立すると思いますが、主義主張が全く異なる国との間に「戦略的互恵関係」など存在し得ないように思うのですが、どのような考えや哲学で主義主張が全く異なる国家間で「戦略的互恵関係」なるものが成立するものなのでしょうか?
成立するとなれば、どのようなものでしょうか? 
強いて追加すると、北朝鮮とは「戦略的互恵関係」は成立しないですよね。同質同根の中国とも同じですよね。
どういう成立条件で何を意味するのかをお教え願いたい。

Aベストアンサー

+共産主義を標榜する共産党の答弁の方がむしろ哲学的ですね。では彼らはなんなのでしょうね。

原理主義者です。

原理主義者には、聖書・聖典があります。

工作部員とプランナーの役割分担と言い換えることでしょう。

鉄砲玉兵卒とイマームといっても良いかもしれません。

社会主義者を装う共産主義者の特徴として

孤立する(自分はゲリラだと思っている)。
人間はうんざり。(家族関係がギクシャクしている)
世界の景色こそ大事。人間は邪魔。

基本的に組織はいらないと主張するが、
政党・病院は、戦略的互恵関係に基づき、常に組織は利用している。
損をしたと感じたら、社会性がないと主張する。(愛は損得関係だと思っている)

「宗族社会」を理想の社会と思い込み、「変な過疎村」が現存する原始共産主義だと勘違いしている)
自分の考えが聖典。(そういう意味では新教キリスト的)

共産党は政権を取れないから投票しない。というのも戦略的互恵関係です。
同党が政権を取れば真っ先に指導的立場に就職したいと思っている。

民主党に対してそう考えているように、
共産党が、政権をとれば
いままでこの党には何かあると思っていた。と饒舌さを発揮し、取り入ろうとするはずです。

自己中心を基礎とした戦略的どっちつかず。
便所に行くことさえ「精神的充足」と名づける「俗物唯物論者」です。
自分に合う人がいないといつも半泣きの顔をさらけ出している不幸な人たちです。

+共産主義を標榜する共産党の答弁の方がむしろ哲学的ですね。では彼らはなんなのでしょうね。

原理主義者です。

原理主義者には、聖書・聖典があります。

工作部員とプランナーの役割分担と言い換えることでしょう。

鉄砲玉兵卒とイマームといっても良いかもしれません。

社会主義者を装う共産主義者の特徴として

孤立する(自分はゲリラだと思っている)。
人間はうんざり。(家族関係がギクシャクしている)
世界の景色こそ大事。人間は邪魔。

基本的に組織はいらないと主張するが、
政党・病院は、戦略的互...続きを読む

Qexcel マクロ 「select case」への条件盛り込み方法について

初めまして。

仕事にて、EXCELに工程遅延の原因を記入しているのですが、
同じ理由(約50種類あります)を何度も記入する必要があるため、
理由ごとに番号を割り振って、ボタン一つで記入できるようにしたいと思っています。

そこで、下記のようにマクロを作成してみたのですが、
現状では、例えばCells(1, 1)に何かを特記していた場合、
記入後にこのマクロを実行してしまうと、Cells(1, 1)の特記が、
上書きにより消えてしまいます。

そこで、Cells(num, 1)が空白であれば、Cells(num, 1)に上書きする、
という条件を付加したいのですが、可能でしょうか。

EXCELマクロの本を参考に作成しているのですが、
組み合わせの方法が分かりません。

お時間がある方いらっしゃいましたら、
ご検討よろしくお願い致します。

Sub 理由挿入()
Dim num As Integer
For num = 1 To 100
Select Case Cells(num, 2).Value
Case 1
Cells(num, 1).Value = "理由1"
Case 2
Cells(num, 1).Value = "理由2"
Case 3
Cells(num, 1).Value = "理由3"
Case 4
Cells(num, 1).Value = "理由4"
End Select
Next
End Sub

初めまして。

仕事にて、EXCELに工程遅延の原因を記入しているのですが、
同じ理由(約50種類あります)を何度も記入する必要があるため、
理由ごとに番号を割り振って、ボタン一つで記入できるようにしたいと思っています。

そこで、下記のようにマクロを作成してみたのですが、
現状では、例えばCells(1, 1)に何かを特記していた場合、
記入後にこのマクロを実行してしまうと、Cells(1, 1)の特記が、
上書きにより消えてしまいます。

そこで、Cells(num, 1)が空白であれば、Cells(num, 1)に上書きす...続きを読む

Aベストアンサー

Sub 理由挿入()
Dim num As Integer
For num = 1 To 100
If Cells(num, 1).Value = "" Then
Select Case Cells(num, 2).Value
Case 1
Cells(num, 1).Value = "理由1"
Case 2
Cells(num, 1).Value = "理由2"
Case 3
Cells(num, 1).Value = "理由3"
Case 4
Cells(num, 1).Value = "理由4"
End Select
End If
Next
End Sub
でいいんじゃないか。

Q不問求人条件にかかる特記事項・・・ 意味?

求人情報に以下の用語がありましたが、何を意味しているのでしょうか?

不問求人条件にかかる特記事項正社員雇用(試用期間3ヶ月:賃金同じ)

このように、ハローワークや求人情報特有の言葉をわかりやすく解説したサイトなどありますか?

Aベストアンサー

正社員だけれど試用期間が3ヶ月ありますという意味です。
特記事項なので、注意すべき項目という意味かと思います。

ハローワークの独特の用語の参考になるかどうかわかりませんが
ハローワークインターネットサービス+転職サイトの情報を
両方掲載しているサイトがあるのでよければ参考までに。

参考URL:http://www.indivision.jp/promo/guide.html?banner_id=ad_hw

Q条件付書式 しましまともう1つ書式を設定

エクセルの表をしましま(1行ごとにグレー)にしたいのですが、
条件付書式で、"=AND(MOD(ROW(),2)=1)"
を設定すればしましまにできるところまでは分かりました。

ですが、すでに、*の書いてあるセルを網掛けにする条件付書式が入っているセルがあります。
(条件付書式で、セルの値が 次の値に等しい ="*")

*の入っているセルは、網掛けで、かつ、しましまにしたいのですが、
そのような設定は可能なのでしょうか?

Aベストアンサー

こういった点で悩まれているという事は2003以前のバージョンをお使いですか?
条件付き書式はバージョンによって操作性や機能がかなり違ってきますのでバージョンの記載はお忘れなく。

さて、2003以前だと仮定すると、条件付き書式の各条件は優先度が高い順に単独で実行されていきますので、この場合は、新たに「*があり、行番号が奇数である」という条件数式をANDなどで指定し、網かけでしましまの書式を設定するしかないと思います。(条件1で設定。優先度が条件1→2→3だから)

2007以降ですと、他と条件が競合した場合書式を重ねる事ができるかどうかの選択ができるのですが。

余談ですが

>=AND(MOD(ROW(),2)=1)

のANDは必要?別の式と組み合わせてますか?


人気Q&Aランキング