hananoppo の回答履歴

全351件中1~20件表示
  • エクセル関数"SUMIFS"に変わる物ありますか?

    表作成しているのですが、うまくいかないところがあります。 ご指導いただければ幸いです。 条件に満たすと範囲指定した個所の合計を出すということをしたいのですが、 例えば、A列に種類(文字列)・B列に○月(文字列)・C列に金額が入力されています。 種類と○月が一致したら合計値を出すということをしたいのですが・・ 調べてみるとSUMIFSが良いみたいですが、私のは対応していないようです。 それに代わる方法はあるでしょうか?

  • ナンプレの解法「ユニークレクタングル」について

    ナンプレの解法の1つに「unique rectangle」と呼ばれているものがあります。 解が一通りであるという条件から出てくるものであるとされています。 http://www.geocities.jp/master_mishichan/hyper.html 2つの数字が次のような形で4つの升目(セル)を埋めている形になると解が1通りでなくなるのでこのような配置になる可能性を排除することができるというものです。  ab | ab      ab | ab    (配置1) このことを踏まえて  ab | abc  ab | ab    (配置2) の形が出てくれば、「右上のセルに c が入ることが確定する」とされています。 しかし、この時使われている論法に「?」が付く場合があります。 この右上のセルにcが入っているとした時に解が一つ決まるとします。 しかしcが入っていない時に4つのセル以外の部分に矛盾無く数字を入れることができるのであればそれも解です。その場合の解は2通りになりますから合わせてこの問題全体の解は3通りであるということになります。 従って「唯一解の条件が成り立つためには右上のサイトにはcが入いらなければいけない」という論法には穴があることになります。「cが入らない場合はこの4つのセル以外の部分に矛盾無く数字を入れることはできない」ということを確かめる必要があります。もし問題がそのように作られていれば別にunique rectangleの論理は使わなくても解は求めることができるはずです。ただ解を速く見つけるための方法の一つだという事になります。 でも問題作成者が問題作成段階で(2)の形が出てくれば(1)になるような数字の配置が排除できると思い込んでいればこの4つのセル以外の数字の配置がどのような決まり方をするのかを吟味しなければいけないという事を抜かしてしまいます。 今日、ナンプレの問題をいくつか解いていて「解が5通り存在する」という場面に出くわしました。 解答にはその中の一つだけが示されています。(1)の形の数字の配置を避けるとした時に得られる解です。でも(1)の形になっても周囲の数字は矛盾なく決まりました。(実際の数字の配置ではこのような配置になっているセルが2セット8個とその数字に連動しているセルが4つの計12個です。この12個以外のセルの数字は全て確定しています。81個のセルを含む領域は79個と12個のセルを含む2つの領域に分離されているのです。) 以前にも1セット3通りの解の存在する問題に出合った事がありますので問題作成者の思い込みはかなりきついようです。 問題を解く側からすれば「唯一解が存在する」ものとして解いて間違いではないのかもしれませんが解いた結果が唯一解にはなっていないという場合があることを関係者はどのように考えているのかを知りたいと思います。

  • AACファイルをWAVファイルに変換したいのです

    AACファイルをWAVファイルに変換したいのですが、フリーでインストール不要のツールをご存知でしたら教えてください。 Superゥ( Super〈c〉 )でやればAAC→WAV変換できました。 ただ変換時間がかなり掛かり、また、途中で終わっていました(30分の音声なのに8分で終了)。 ITUNEでは変換できませんでした(インポートすら出来ませんでした)。 また、faadを使ったことがあるのですが、WINDOWS7に対応しきれていないのかエラーで途中でエンコードが終わってしまいます。 xrecode IIも使っていますが使用回数制限があるのかあと1回のようなカウントがされています。 またこちらのTOOLでは問題なくWAVに変換出来るものの、動画とWAVを合わせた時に音のズレが起こります。(音声位置の調整をしたにも関わらず) 宜しくお願いします。

  • エクセルで時間給計算をしたい。

    エクセルを使って、下記のような入力で時間給計算が出来るようにしたいのですが、 就業途中で時間給単価が変わってしまう為、うまく作れません。 どなたか教えていただけませんか。宜しくお願い致します。 時間給単価 19時~22時=800円  22時~24時=1000円 就業例) 19時~23時まで就業したとして、              19時~22時=800×3=2400円       22時~23時=1000×1=1000円       合計3400円 この計算を、例えばセルA1に19:00 B1に23:00 と入力するだけで、 働いた時間と、合計時間給がセルに表示される方法をお願いします。       

  • 条件にあてはまる場合、行挿入+値を移動させるマクロ

    Excel2003、WindowsXPを使用しています。 説明が分かり難いところがあるかもしれませんが、よろしくお願いいたします。 1.C列に値が入っていた場合、下に行を挿入。 2.挿入した行のB列に、C列に入っていた値を移動。 3.D列に値が入っていた場合、さらにその下に行を挿入。 4.挿入した行のB列に、D列に入っていた値を移動。 5.E列に値が入っていた場合、さらにその下に行を挿入。 6.挿入した行のB列に、E列に入っていた値を移動。 というように、C-E列に値が入っていた場合、下に行を挿入し、 挿入行にその値を移動させるマクロを教えてください。 (実行前)    A列     B列  C列  D列  E列   F列 ああああ  AAA  BBB  CCC  DDD  12222 うううう    EEE                   544 くくく     FFF  GGG  VVV        8 すす     TTT   BBB            4300 (実行後)  A列     B列   C列 ああああ  AAA   12222 ああああ  BBB   12222 ああああ  CCC   12222 ああああ  DDD   12222 うううう    EEE    544 くくく     FFF    8 くくく     GGG   8 くくく     VVV    8 すす     TTT    4300 すす     BBB   4300 上記実行後のように、マクロで出来たら…と思っています。 どうぞよろしくお願いいたします。

  • 条件にあてはまる場合、行挿入+値を移動させるマクロ

    Excel2003、WindowsXPを使用しています。 説明が分かり難いところがあるかもしれませんが、よろしくお願いいたします。 1.C列に値が入っていた場合、下に行を挿入。 2.挿入した行のB列に、C列に入っていた値を移動。 3.D列に値が入っていた場合、さらにその下に行を挿入。 4.挿入した行のB列に、D列に入っていた値を移動。 5.E列に値が入っていた場合、さらにその下に行を挿入。 6.挿入した行のB列に、E列に入っていた値を移動。 というように、C-E列に値が入っていた場合、下に行を挿入し、 挿入行にその値を移動させるマクロを教えてください。 (実行前)    A列     B列  C列  D列  E列   F列 ああああ  AAA  BBB  CCC  DDD  12222 うううう    EEE                   544 くくく     FFF  GGG  VVV        8 すす     TTT   BBB            4300 (実行後)  A列     B列   C列 ああああ  AAA   12222 ああああ  BBB   12222 ああああ  CCC   12222 ああああ  DDD   12222 うううう    EEE    544 くくく     FFF    8 くくく     GGG   8 くくく     VVV    8 すす     TTT    4300 すす     BBB   4300 上記実行後のように、マクロで出来たら…と思っています。 どうぞよろしくお願いいたします。

  • 条件にあてはまる場合、行挿入+値を移動させるマクロ

    Excel2003、WindowsXPを使用しています。 説明が分かり難いところがあるかもしれませんが、よろしくお願いいたします。 1.C列に値が入っていた場合、下に行を挿入。 2.挿入した行のB列に、C列に入っていた値を移動。 3.D列に値が入っていた場合、さらにその下に行を挿入。 4.挿入した行のB列に、D列に入っていた値を移動。 5.E列に値が入っていた場合、さらにその下に行を挿入。 6.挿入した行のB列に、E列に入っていた値を移動。 というように、C-E列に値が入っていた場合、下に行を挿入し、 挿入行にその値を移動させるマクロを教えてください。 (実行前)    A列     B列  C列  D列  E列   F列 ああああ  AAA  BBB  CCC  DDD  12222 うううう    EEE                   544 くくく     FFF  GGG  VVV        8 すす     TTT   BBB            4300 (実行後)  A列     B列   C列 ああああ  AAA   12222 ああああ  BBB   12222 ああああ  CCC   12222 ああああ  DDD   12222 うううう    EEE    544 くくく     FFF    8 くくく     GGG   8 くくく     VVV    8 すす     TTT    4300 すす     BBB   4300 上記実行後のように、マクロで出来たら…と思っています。 どうぞよろしくお願いいたします。

  • エクセルマクロVBA:該当セルの行の色を変更したい

    すみません。 ご存じの方、ご教授願います。 エクセル用マクロを作成しているのですが、 たとえば、 A1、A4、A9に目的の該当文”FFFF”があり、 行1、行4、行9のバックカラーを変更する場合、 どのようなマクロを作成すればよいのでしょうか? なお、上記A1、A4、A9は毎回一定ではなく、該当セルの数がゼロの場合もあれば、10以上の場合もあります。(同じ列には存在しています。) 検索”FFFF”→SHIFT+スペースではセルの場所が特定されてしまうので、目的の文の場所がかわったあるいはないときにも背景色を変えてしまいます。 どうかよろしくお願いします。

  • 数独の3国同盟のアルゴリズム教えて下さい

    はじめまして! C言語を勉強して3ヶ月になります、現在、勉強のつもりで数独の解法プログラムを作っています が、解法プログラムを基本から順に実装しようと基本から2国同盟まではわかったのですが3国 同盟以上(まずは自明のNaked Tripleからお願いします<(_ _)>)のアルゴリズムがどうしても 解らずプログラムが書けません。マスの絞り込み方です。例えば横ラインのマスで候補数が2、 3個のマスに絞って・・・次ですが3個のマスには3種類しか入らない。・が解りません!目 で見ればわかりますがそれをプログラムする方法)NAKED(見える)Tripleだけで良いので考え方 を教えて下さい。2日間詰まってます(>< ) どうぞ宜しくお願いします<(_ _)> (例) R3横一行だけを考えたときにR3C1(6,8)、R3C2(1,6)、R3C3(2,3,4)、R3 C4(1,8)、R3C5(1,2,4,5,6)・・・で()内は候補数です。これはC1、C2、C4で (1,6,8)の3国同盟ができています。R3C5の(1,6)は削除され候補数(2,4, 5)となる。悩んでいるのはC1、C2、C4を同盟決定のアルゴリズムです。 「異なる3つのマスを選んだときに、それら3マスに入れられる候補の種類が3種類であること」を プログラム上でどう表現したら良いかずっと詰まってます(>< ) どう考えたらこの3つのマスを決定(同盟関係)できるのでしょうか?宜しくお願い致します<(_ _)>

  • 数独の3国同盟のアルゴリズム教えて下さい

    はじめまして! C言語を勉強して3ヶ月になります、現在、勉強のつもりで数独の解法プログラムを作っています が、解法プログラムを基本から順に実装しようと基本から2国同盟まではわかったのですが3国 同盟以上(まずは自明のNaked Tripleからお願いします<(_ _)>)のアルゴリズムがどうしても 解らずプログラムが書けません。マスの絞り込み方です。例えば横ラインのマスで候補数が2、 3個のマスに絞って・・・次ですが3個のマスには3種類しか入らない。・が解りません!目 で見ればわかりますがそれをプログラムする方法)NAKED(見える)Tripleだけで良いので考え方 を教えて下さい。2日間詰まってます(>< ) どうぞ宜しくお願いします<(_ _)> (例) R3横一行だけを考えたときにR3C1(6,8)、R3C2(1,6)、R3C3(2,3,4)、R3 C4(1,8)、R3C5(1,2,4,5,6)・・・で()内は候補数です。これはC1、C2、C4で (1,6,8)の3国同盟ができています。R3C5の(1,6)は削除され候補数(2,4, 5)となる。悩んでいるのはC1、C2、C4を同盟決定のアルゴリズムです。 「異なる3つのマスを選んだときに、それら3マスに入れられる候補の種類が3種類であること」を プログラム上でどう表現したら良いかずっと詰まってます(>< ) どう考えたらこの3つのマスを決定(同盟関係)できるのでしょうか?宜しくお願い致します<(_ _)>

  • エクセルで05'30"と表示したい

    エクセル2007を利用してますが、セルに例えば0530と入力したら05'30"と表示されるようにしたいのですが可能でしょうか?セルの書式設定のユーザー定義でmm'ss"としたのですが上手くできませんでした。それとA1セル 03'00" A2セル 05'40"と入力されている場合にB2セルにA2-A1の分秒を引いた数字 02'40" を表示させたいのですがどのように入力すればよいでしょうか? 以上宜しくお願いいたします。

  • Excel VBAで名前定義の記述について

    Excel2003ですが、データ部分の範囲が変わるため都度VBA で範囲を取得して名前定義を書き換えようと思っているのですが、範囲名は取得できますが、ダブルクオーテーションに囲まれてしまい、認識されません。手動で名前定義のダブルクオーテーションをはずすと認識されます。 下記コードでやっていますが、どのように記述すれば認識されるのでしょうか?教えてください Sub 名前定義() '***************************************************************************** '名前定義 Dim ソースデータ範囲 As Variant Dim 右下端 As Variant '名前→定義でソースデータ範囲を”DB”に定義 Range("A1").CurrentRegion.Select Selection.CurrentRegion.Select 右下端 = Selection.Item(Selection.Count).Address ソースデータ範囲 = データ! & "A1" & ":" & 右下端 Worksheets("データ").Activate ActiveWorkbook.Names.Add Name:="DB", RefersToR1C1:=ソースデータ範囲 End sub

  • 全てシートをスクロールさせたいのですが。。

    エクセルVBAでブックの全てのシートを洗濯し 全てシートをスクロールさせたいのですが .ScrollColumnをどのように指定すればいいのでしょうか? Window.ScrollColumn = 4とするとオブジェクトが必要です。 とメッセージがでます。 ActiveWindow.ScrollColumn = 4にすると全てのシートに 反映されません。。。

  • 全てシートをスクロールさせたいのですが。。

    エクセルVBAでブックの全てのシートを洗濯し 全てシートをスクロールさせたいのですが .ScrollColumnをどのように指定すればいいのでしょうか? Window.ScrollColumn = 4とするとオブジェクトが必要です。 とメッセージがでます。 ActiveWindow.ScrollColumn = 4にすると全てのシートに 反映されません。。。

  • エクセルVBA 繰り返し

    エクセルVBAで   ABCD       ABCD          1 54 1      1 145   2 24 3     2 234 3   1      3 1 上記の左のようなデータを右ように 各行ごとに並び替えをしたいのですが、 どのようにしたらいいのでしょうか。 Range("A1:D1").Select Application.CutCopyMode = False Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight, SortMethod _ :=xlPinYin, DataOption1:=xlSortNormal 1行だとこんなんがでてきました。 これをどうしたら、3行4行と増やしていけますか? 50行ほどくりかえしたいです。 どなたか分かる方 お願いします。

  • 条件にて行削除をするをマクロで高速化したい

    シート(最初)のA,B,C列を連結した値と シート(残)のA,B,C列を連結した値を照合させ 同じ値の場合は シート(残)の該当行を削除です。 シート(最初)は6,182行 シート(残)は7,561行です。 VLookupを使って処理時間5分です。 VLookupを使わない記述で25分です。 20,000行位のデータを処理したいのですが時間が不安です。 別スレで 「VLookupで処理3分をdictionaryオブジェクトで1秒以内にする方法」を 教えていただきましたが、流用ができません。 シート(残)内にもシート(最初)内にも重複行はありません。 私の記述は「F列を検索用に使用」となっていて F列にデータがある場合、都度記述を書換えないと 使えないので、そこも対応したいです。 照合させる値はA,B,Cの連結値というのは変わらないのですが データがある範囲は都度変化する為です。 ・A~E列とかA~H列とか ・シート残はA~E列、シート最初はA~G列とか 記述そのものを教えてください。よろしくお願いします。 Sub 自動重複削除F列使用() 'シート(最初)のA,B,C列とシート(残)のA,B,C列が一致した行は 'シート残の行を削除 'F列を検索値として使用。 Dim Line As Long Dim LastRow As Long Dim myRange As Range Dim Flag 'シート「最初」のF1に、A,B,C列を結合した値を転記 With Sheets("最初") Set myRange = .Range("F2:F" & .Cells(Rows.Count, "A").End(xlUp).Row) .Range("F2").FormulaR1C1 = "=RC[-5]&RC[-4]&RC[-3]" 'シート「最初」のF2からデータのあるところまで 'F1の規則でデータ貼付 .Range("F2").AutoFill Destination:=myRange End With 'シート「残」のF1に、A,B,C列を結合した値を転記 Sheets("残").Select LastRow = Cells(Rows.Count, "A").End(xlUp).Row Range("F2").FormulaR1C1 = "=RC[-5]&RC[-4]&RC[-3]" 'シート「最初」のF2からデータのあるところまで 'F1の規則でデータ貼付 Range("F2").AutoFill Destination:=Range("F2:F" & LastRow) On Error Resume Next '双方のシートのF列を照合させ、ヒットした行は 'シート「残」から行削除をする For Line = LastRow To 2 Step -1 Flag = WorksheetFunction.VLookup(Cells(Line, 6).Value, myRange, 1, 0) If Err.Number = 0 Then Rows(Line).Delete xlUp Else Err.Clear End If Next Line '検索に使用したF列を削除 Sheets("残").Select Columns("F:F").Select Selection.Delete Shift:=xlToLeft Sheets("最初").Select Columns("F:F").Select Selection.Delete Shift:=xlToLeft Sheets("残").Select Range("A1").Select End Sub ●別方法 Sub 自動重複行削除F列未使用超遅() 'VLOOKUP無 'シート(最初)のA,B,C列とシート(残)の 'A,B,C列が一致した行はシート(残)の行を削除 Dim ws1, ws2 As Worksheet Dim i, j As Long Set ws1 = Worksheets("最初") Set ws2 = Worksheets("残") For i = 2 To ws1.Cells(Rows.Count, 1).End(xlUp).Row For j = ws2.Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1 If ws1.Cells(i, 1) = ws2.Cells(j, 1) And ws1.Cells(i, 2) = ws2.Cells(j, 2) And _ ws1.Cells(i, 3) = ws2.Cells(j, 3) Then ws2.Rows(j).Delete (xlUp) End

  • 条件にて行削除をするをマクロで高速化したい

    シート(最初)のA,B,C列を連結した値と シート(残)のA,B,C列を連結した値を照合させ 同じ値の場合は シート(残)の該当行を削除です。 シート(最初)は6,182行 シート(残)は7,561行です。 VLookupを使って処理時間5分です。 VLookupを使わない記述で25分です。 20,000行位のデータを処理したいのですが時間が不安です。 別スレで 「VLookupで処理3分をdictionaryオブジェクトで1秒以内にする方法」を 教えていただきましたが、流用ができません。 シート(残)内にもシート(最初)内にも重複行はありません。 私の記述は「F列を検索用に使用」となっていて F列にデータがある場合、都度記述を書換えないと 使えないので、そこも対応したいです。 照合させる値はA,B,Cの連結値というのは変わらないのですが データがある範囲は都度変化する為です。 ・A~E列とかA~H列とか ・シート残はA~E列、シート最初はA~G列とか 記述そのものを教えてください。よろしくお願いします。 Sub 自動重複削除F列使用() 'シート(最初)のA,B,C列とシート(残)のA,B,C列が一致した行は 'シート残の行を削除 'F列を検索値として使用。 Dim Line As Long Dim LastRow As Long Dim myRange As Range Dim Flag 'シート「最初」のF1に、A,B,C列を結合した値を転記 With Sheets("最初") Set myRange = .Range("F2:F" & .Cells(Rows.Count, "A").End(xlUp).Row) .Range("F2").FormulaR1C1 = "=RC[-5]&RC[-4]&RC[-3]" 'シート「最初」のF2からデータのあるところまで 'F1の規則でデータ貼付 .Range("F2").AutoFill Destination:=myRange End With 'シート「残」のF1に、A,B,C列を結合した値を転記 Sheets("残").Select LastRow = Cells(Rows.Count, "A").End(xlUp).Row Range("F2").FormulaR1C1 = "=RC[-5]&RC[-4]&RC[-3]" 'シート「最初」のF2からデータのあるところまで 'F1の規則でデータ貼付 Range("F2").AutoFill Destination:=Range("F2:F" & LastRow) On Error Resume Next '双方のシートのF列を照合させ、ヒットした行は 'シート「残」から行削除をする For Line = LastRow To 2 Step -1 Flag = WorksheetFunction.VLookup(Cells(Line, 6).Value, myRange, 1, 0) If Err.Number = 0 Then Rows(Line).Delete xlUp Else Err.Clear End If Next Line '検索に使用したF列を削除 Sheets("残").Select Columns("F:F").Select Selection.Delete Shift:=xlToLeft Sheets("最初").Select Columns("F:F").Select Selection.Delete Shift:=xlToLeft Sheets("残").Select Range("A1").Select End Sub ●別方法 Sub 自動重複行削除F列未使用超遅() 'VLOOKUP無 'シート(最初)のA,B,C列とシート(残)の 'A,B,C列が一致した行はシート(残)の行を削除 Dim ws1, ws2 As Worksheet Dim i, j As Long Set ws1 = Worksheets("最初") Set ws2 = Worksheets("残") For i = 2 To ws1.Cells(Rows.Count, 1).End(xlUp).Row For j = ws2.Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1 If ws1.Cells(i, 1) = ws2.Cells(j, 1) And ws1.Cells(i, 2) = ws2.Cells(j, 2) And _ ws1.Cells(i, 3) = ws2.Cells(j, 3) Then ws2.Rows(j).Delete (xlUp) End

  • エクセルで色付けのVBAを作成してるのですが・・。

    エクセルでレンジ値の大きさにより色付けをする(下の条件)VBAを作りたいのですが うまく走りません。お手数とは思いますがご教授お願いします。 シート "aaa" のレンジ "A3<A2<A1" とだんだん大きくなれば、 シート "bbb" のレンジ "B1" の文字を黄色にして、シート "bbb" のレンジ "C1" の文字を赤色へ シート "aaa" のレンジ "A3<A2<A1" とだんだん大きくなれば、 シート "bbb" のレンジ "B1" の文字を緑色にして、シート "bbb" のレンジ "C1" の文字を赤色へ シート "aaa" のレンジ "A3,A1" が空白の場合、シート "bbb" のレンジ "C1" の文字を赤色へ シート "aaa" のレンジ "A3,A2,A1" が上の条件に合わなければ、 シート "bbb" のレンジ "B1" の文字を黒色にし、シート "bbb" のレンジ "C1" の文字を赤色にして終わる。 というようなプログラムで下記のように作りました。 ("A1,A2,A3"に入る値は50~100まで) ----------------------------------------------- Sub 注意() Dim v506Hi, v506Lo, v506a, v506b As Single v506a = Worksheets("aaa").Range("A3") v506b = Worksheets("aaa").Range("A1") If Worksheets("aaa").Range("A3") <> "" Then GoTo Sub1 ElseIf Worksheets("aaa").Range("A1") <> "" Then GoTo Sub1 Else Worksheets("bbb").Range("B1").Font.Color = RGB(0, 0, 0) GoTo sub2 Sub1: Select Case v506a Case Is < Worksheets("aaa").Range("A2") v506Hi = Worksheets("aaa").Range("A2") v506Lo = 0 Case Is > Worksheets("aaa").Range("A2") v506Lo = Worksheets("aaa").Range("A2") v506Hi = 500 Case Is = Worksheets("aaa").Range("A2") v506Hi = 500 v506Lo = 0 End Select Select Case v506b Case Is > v506Hi Worksheets("bbb").Range("b1").Font.Color = RGB(255, 255, 0)黄色 Case Is < v506Lo Worksheets("bbb").Range("b1").Font.Color = RGB(0, 255, 0)緑 Case Else Worksheets("bbb").Range("b1").Font.Color = RGB(0, 0, 0) End Select sub2: Worksheets("bbb").Range("c1").Font.Color = RGB(255, 0, 0)赤 End If End Sub ----------------------------------------------------------- プログラム初心者で間違いだらけとは思いますが、よろしくお願いいたします。

  • エクセルで色付けのVBAを作成してるのですが・・。

    エクセルでレンジ値の大きさにより色付けをする(下の条件)VBAを作りたいのですが うまく走りません。お手数とは思いますがご教授お願いします。 シート "aaa" のレンジ "A3<A2<A1" とだんだん大きくなれば、 シート "bbb" のレンジ "B1" の文字を黄色にして、シート "bbb" のレンジ "C1" の文字を赤色へ シート "aaa" のレンジ "A3<A2<A1" とだんだん大きくなれば、 シート "bbb" のレンジ "B1" の文字を緑色にして、シート "bbb" のレンジ "C1" の文字を赤色へ シート "aaa" のレンジ "A3,A1" が空白の場合、シート "bbb" のレンジ "C1" の文字を赤色へ シート "aaa" のレンジ "A3,A2,A1" が上の条件に合わなければ、 シート "bbb" のレンジ "B1" の文字を黒色にし、シート "bbb" のレンジ "C1" の文字を赤色にして終わる。 というようなプログラムで下記のように作りました。 ("A1,A2,A3"に入る値は50~100まで) ----------------------------------------------- Sub 注意() Dim v506Hi, v506Lo, v506a, v506b As Single v506a = Worksheets("aaa").Range("A3") v506b = Worksheets("aaa").Range("A1") If Worksheets("aaa").Range("A3") <> "" Then GoTo Sub1 ElseIf Worksheets("aaa").Range("A1") <> "" Then GoTo Sub1 Else Worksheets("bbb").Range("B1").Font.Color = RGB(0, 0, 0) GoTo sub2 Sub1: Select Case v506a Case Is < Worksheets("aaa").Range("A2") v506Hi = Worksheets("aaa").Range("A2") v506Lo = 0 Case Is > Worksheets("aaa").Range("A2") v506Lo = Worksheets("aaa").Range("A2") v506Hi = 500 Case Is = Worksheets("aaa").Range("A2") v506Hi = 500 v506Lo = 0 End Select Select Case v506b Case Is > v506Hi Worksheets("bbb").Range("b1").Font.Color = RGB(255, 255, 0)黄色 Case Is < v506Lo Worksheets("bbb").Range("b1").Font.Color = RGB(0, 255, 0)緑 Case Else Worksheets("bbb").Range("b1").Font.Color = RGB(0, 0, 0) End Select sub2: Worksheets("bbb").Range("c1").Font.Color = RGB(255, 0, 0)赤 End If End Sub ----------------------------------------------------------- プログラム初心者で間違いだらけとは思いますが、よろしくお願いいたします。

  • エクセル VBAについて。その2

    以前、こちらの掲示板でお世話になった者です。   Private Sub Worksheet_Change(ByVal Target As Range) Select Case Target.Address Case "$C$5" Select Case Target.Value Case 1 Range("C6").Value = 24 Range("D5").Value = 600 Range("D6").Value = 0 Range("E5").Value = 400 Range("E6").Value = 0 Case 2 Range("C6").Value = 32 Range("D5").Value = 1000 Range("D6").Value = 0 Range("E5").Value = 500 Range("E6").Value = 0 End Select Case "$D$5" Select Case Range("C5").Value Case 1 Range("D6").Value = (600 - Range("D5").Value) / 25 Case 2 Range("D6").Value = (1000 - Range("D5").Value) / 25 End Select Case "$E$5" Select Case Range("C5").Value Case 1 Range("E6").Value = (400 - Range("E5").Value) / 50 Case 2 Range("E6").Value = (500 - Range("E5").Value) / 50 End Select と、上記のようなマクロがお手伝いしていただいた結果、完成しました。 C5に1を代入した場合 D5 = 600 D6 = 0 E5 = 400 E6 = 0 C5に2を代入した場合 D5 = 1000 D6 = 0 E5 = 500 E6 = 0   C5に1を代入しており、D5の値を500に下げた時 D6 = 4 (D5の値を100下げる毎にD6の値に+4 ) (D5の値を100上げる毎にD6の値に-4 ) C5に1を代入しており、E5の値を300に下げた時 D6 = 4 (E5の値を100下げる毎にE6の値に+4 ) (E5の値を100上げる毎にE6の値に-4 ) <以下、C5に2を代入した時のケースを省略。>   というような意味合いのマクロになったと思いますが、少々困ったことが発生しました。 (D5の値を100下げる毎にD6の値に+4 ) (D5の値を100上げる毎にD6の値に-4 ) (E5の値を100下げる毎にE6の値に+4 ) (E5の値を100上げる毎にE6の値に-4 ) この部分を (D5の値を100下げる毎にD6の値に+4 ) (D5の値を100上げる毎にD6の値に-8 ) (E5の値を100下げる毎にE6の値に+4 ) (E5の値を100上げる毎にE6の値に-8 ) に変更したいのですが、計算式がわかりません(?ω?) どなたかご指導のほどよろしくお願いします。