• ベストアンサー
  • すぐに回答を!

エクセルのVBAについて教えてください

初めまして、いきなり質問で申し訳有りませんが、 今、エクセルを使って、 「複数のセルの中から(例えばa2からf6まで)の中の数字の最高の値のフォントの色を変える」 と言うマクロを組みたいとやってるんですが、 出来ないんです。 どのようなマクロになるのか、 教えていただけないでしょうか。 使ってるヴァージョンはエクセル95です。 すいませんがよろしくお願いします m(__)mペコリ            triton

共感・応援の気持ちを伝えよう!

  • 回答数3
  • 閲覧数50
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.3
  • popesyu
  • ベストアンサー率36% (1782/4883)

ん?下の投稿文字化けしてますよね? おれだけかな。 まそれは置いといて。 同値でもとなれば、もう少し変えないとだめかな。 つーか根本的に変えんと(笑) 動的配列とかFind使って検索とか? んー面倒だ。前の奴を改良します。 Sub test Dim C As Variant Dim X As Integer '最高値を取得 For Each C In Worksheets(1).Range("a1:f10") If C.Value >= X Then X = C.Value End If Next C '最高値を赤字に For Each C In Worksheets(1).Range("a1:f10") If C.Value = X Then C.Font.ColorIndex = 3 End If Next C End Sub つまりは全チェックループを2回くりかえす。 もっと効率的に出来るはずだけど ドンクサすぎます(>_<) ま一例ということで。 では

共感・感謝の気持ちを伝えよう!

質問者からのお礼

popesyuさん、ありがとうございました。 無事、望み通りの事が出来ました。 他にも色々やり方があるんですね。 これから、勉強していきたいと思います。 本当にありがとうございました。          triton

関連するQ&A

  • Excel VBA で色付きのセルの値を取得する

    ExcelのVBAマクロで、For &#65374; Then構文で複数のセルを参照していき、 色付きのセル(塗りなしのセル)に入力されている値のみを取得する方法を教えてください。 Excel2007を使用しています。

  • エクセルの書式設定で・・・

    エクセル2003を使用しています。 あるセルで「この値以上」ならフォントの色を赤くする、といった書式設定が出来ると思うんですが、その際となりのセルのフォントの色も連動して変える事は出来るんでしょうか?

  • エクセルで色のついているセルの数値を他の場所に表示させる方法

    エクセルについてわからないことがあるので質問させていただきます。 C列に色つきのセルがあちらこちらにあるのですが、色のついているセルの値だけ他の列に並べて表示させる方法はあるのでしょうか? 少し調べたのですが、マクロを使う方法がありそうなのですが、勉強不足でマクロは全くわかりません。どなたか教えてください。 詳しく書くと C3~C600まで数字が書いてあって、所々セルが黄色いです。 色つきは全部で五個なので順番にI3~I7に表示できればと思います。 またこれと関連した質問で●を表示しているセルの隣のセルの値を選んで他のセルに表示させる方法もありましたら宜しくお願いします。 セルの位置、数や色などを応用させたいので、細かい説明などをご教授願えれば幸いです。

その他の回答 (2)

  • 回答No.2
  • popesyu
  • ベストアンサー率36% (1782/4883)

私も条件付書式の方が簡単なのでは と思うのですが。 きっとその複数のセルと言うのが毎回任意のセルに なってしまうとかで毎回設定するのが面倒とか? ならば、条件付書式の方をマクロ化する手も ありますが(笑) まぁとりあえずご質問のマクロを適当に書いみました。 -------------------- Dim C As Variant Dim X As Integer Dim target As String For Each C In Worksheets(1).Range("a2:f6")  If C > x Then   x = C.Value   target = C.Address End If Next C Range(target).Font.ColorIndex = 3 --------------------- 簡単に解説しますと。 1.For Each ~ In が配列やコレクションでループを 繰り返す構文です。この場合は、A2からF6までの セルに対して以下のことを繰り返します。 2.Ifでその都度セルの値を変数Xと比較します。  値がXより大きければXに値を取得し、アドレスも取得。  (とりあえずの最大値という形です) 3.それをループ。取り合えずの最大値を常に 取得していってるので、最終的にはそれが最大値。 4.フォントの色はFont.ColorIndexとかで 変更できますが他にも色々あります。 まこの手のプログラムならアプローチ方法は 幾らでもありますのでひとまず参考にでも。 では

共感・感謝の気持ちを伝えよう!

質問者からの補足

osafuneさん、popesyuさん、お返事ありがとうございます _(._.)_ popesyuさんのマクロを試してみました。 うまく動くんですが、最高値が2個あった場合、 最初の物しか色が変わらないんです。 これは私の説明が足りなかったせいで、 申し訳なかったです m(__)mペコリ 最高値が2つあれば2つ、3つあれば3つ全部の フォントの色が変えたいんです。 すいませんが、よろしくお願いします m(__)mペコリ            triton

  • 回答No.1
  • osafune
  • ベストアンサー率48% (106/217)

tritonさん、こんにちは VBAじゃないとダメですかね? 「条件付き書式」の設定で可能だと思います。 1.まず、範囲を選択します。(例ではa2からf6) 2.メニューバーの「書式」→「条件付き書式」を選択 3.条件に「セルの値が」「次の値に等しい」を選択、ボックスには「=MAX(a2:f6)」という風に入力、次に書式をクリックしフォントの色を赤に指定して、OKをクリック 以上で出来上がりです。

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • エクセルVBA ダブルクリックで数字を加算

    お世話になります。 エクセルのVBAに関してご質問させてください。 該当セルをダブルクリックするごとに、数字を加算させてゆくようなマクロを組みたいと考えています。 ご存じのかたがおられましたら、なにとぞよろしくお願いいたします。

  • エクセルで自動処理を行いたい

    MicrosoftのExcel2000で質問です。 数字のみを入力するセル(A1)があります。 このセルの値が 1の時は右のセル(B1)に斜線をひく 2の時は右二つ(B1,C1)に斜線を引く … 5以上の時は行の挿入(AとBの間に) 5以上の数字から5以下の数字に変更の時は挿入した行を削除 と言う処理をやりたいのですが、マクロを使えば出来るというところまでしか分かりません。 どなたか教えていただけないでしょうか? [ツール]→[マクロ]→…で実行するやつではなく 勝手にやってくれるようにしたいです。

  • エクセル2003 VBAなのですが

    エクセル2003 VBAなのですが   A   B    C    D    E    F 1 あ   い   う   お   う   123 2 お   さ   え   あ   お   お 3 あ   い   え   お   え   888 上記のような表があるときに 3個以上同じ文字がある場合にセルに色をつけていきたい状況です 上記表でいうと『あ』と『え』と『お』のセルに色をつけたいのです セルには文字列のほかに数字も入っている状況です 単純にCtrl+Fで検索をして『すべて検索』で 出てきたセル全部に色をつける。 それをA1から文字があるところ全部やる と言った事をマクロでやりたいと思っております。 皆様よろしくお願いいたします。

  • エクセルVBA

    エクセル2003です エクセルの印刷するマクロをおしえてください *A列からQ列までで行は1&#65374;300で伸縮します  最終行をA5より下のA列のセルに値が連続で入っている最後が最終印刷範囲行とします *罫線ありです *1ページを30行とします *2ページ目からの先頭行に(A4:Q4)を印刷に入れたい マクロで印刷設定をした事がないのでさっぱりわかりません *ヘッダーとフッダーも可能でしょうか? 出来れば説明付きでよろしくお願いします

  • エクセルのVBAについて質問です。

    エクセル2003のVBAについて質問です。 複数の検索したい文字列があり、複数の検索対象セルがあります。 セルの文字列が検索文字列のいずれかと一致したセルの背景の色を変えたいです。 よろしくおねがいします。 仕事でマクロを組まなけばならなくなってしまったのですが、 初心者のため検索してみたり調べてみたり、参考にして作ってみたのですがうまくいかないばかりかどんどん解らなくなってしまいました。 どうか助けてください。 sheet1のセルが検索対象 (全セル対象でも大丈夫ですが、検索したいセルはB2→J2、B11→J11、B20→J20の範囲です)、 sheet2のA列に検索したい文字列が入力されています。 この検索したい文字列は今後増えていく可能性があるので、増えた場合にも対応できるようにと考えています。 sheet1(検索対象) あ い う え あ お お sheet2(検索文字列) あ う お け き ↑の様に入力されており、sheet1の「あ」と「う」と「お」のセルの背景を変えたいです。 色を変えたいのはsheet1です。 findメソッドや繰り返し処理などを調べて実践してみたのですが、 いきなりマクロを組めといわれた超初心者には難しく質問しています。 自分でやってみたのですが、 sheet1の最初の「あ」のみが変換され、後に出てくる「あ」が変換されません… どうしたらいいのか…どうすることも出来ず困っております。 すみませんが、どなたか優しい方助けてください。 よろしくおねがいします><

  • エクセルマクロ)VBAの書き方について

    初めてのマクロ作成に挑戦しようとしたのですが、さっそく壁に当たってしまい助けていただきたいです。 ■質問 A行に下記の数字が入っているとします。 この時、一番下の1300を元に、一番上の1300のセルをSelectしたいのですが、どのようにしたらよいのでしょうか? 今、試みていたのは、一番下の1300を使って、レンジA:Aを検索してみる方法です。それもできませんでしたが。。。 ※一番下の1300は、ここまでの過程でSelect状態になっています。 ※オフセットでの移動は希望していません。 ※選択中のセル(値)をみて、同じセル(値)が入った同列一番上のセルを選択したいです。 ※選択中のセルが下記の1200であった場合、一つしかないので、それを選択して欲しいです。 1000 1000 1100 1200 1300 1300 1300 1400 すみません、同じ内容の質問を見つける事が出来なかったので質問させていただきました。 よろしくお願いいたします。

  • Excel マクロ モジュラス43 vba

    初めて質問させて頂きます。 よろしくお願い致します。 エクセルにてバーコードcode39を作成しバーコードリーダーで読み取りたいのですが私の会社はモジュラス43が付与されているcode39しか読み取ることが出来ません。 エクセルにてセルに入力した数字にモジュラス43を付与できるマクロ解るかたあれば教えて下さい。 色々試したのですがどうしても作ることが出来ませんでした、お願い致します。

  • excel VBAについて

    コードの書き方が分からないのですが、 一つもともとあるexcelファイル(file1)にマクロを保存しておいて それを使うときに新しく必要な情報が入った上のとは別のexcelファイル(file2)を作ります そしてfile1を開いた状態でfile2から値を参照するにはどうすればよいのでしょうか? つまり今file2はありません しかしfile2を作りそこから参照したいときににコードをさわらなくてもいいように書きたいのです file2は毎回同じように作るので値は変わっても場所は毎回同じセルに入ります 説明が下手で質問が分かりづらいとは思うのですがどうかよろしくお願いいたしますm(__)m

  • EXCELの条件付き書式で空白セルを無視する方法

    エクセルにて。 値A~値B以外の数値を入力するとセルが黄色になるよう、条件付き書式を使って「セルの値が」「次の値の間以外」「値A」「値B」で 色が付くよう設定したのですが、セルに何も入力されていない時でも黄色くなってしまいます。 空白セルを無視させるにはどうしたら良いのでしょうか?何かよい方法があれば教えて下さい。 (ちなみに、セルではなくフォントの色だと上手くいくのは何故…;)

  • エクセル関数?でランダム入力について

    エクセルにて質問です。 一つのシートで横列(アルファベット)は同じで、縦列(数字)は二列ずつのセットで… もしセル R11に何もなければ(空欄なら)→ A11からBP12までのセルを薄い灰色で塗りつぶす もしセル R11に何かあれば→ Y11に15~22までのランダムの数字 Z11に0~59までのランダムの数字 BC11に8~11までのランダムの数字 BD11に0~59までのランダムの数字 ……… ……… ……… もしセル R39に何もなければ(空欄なら)→ A39からBP40までのセルを薄い灰色で塗りつぶす R39に何かあれば→ Y39に8 Z39に0~59までのランダムの数字 BC39に12~17までのランダムの数字 BD39に0~59までのランダムの数字 というものを作成したいのです。 尚、ランダム数字の値は上記の様に変更可能なものを希望です。 上記の内容になりますと、複数セルの塗りつぶしが含まれるので関数だけでは無理でしょうか? また、マクロ使用で可能ならコードを教えてもらえたら助かります。 エクセルに詳しい方おしえてください。 よろしくお願いします。