- ベストアンサー
Excel VBA で色付きのセルの値を取得する
ExcelのVBAマクロで、For ~ Then構文で複数のセルを参照していき、 色付きのセル(塗りなしのセル)に入力されている値のみを取得する方法を教えてください。 Excel2007を使用しています。
- 848192
- お礼率79% (23/29)
- Excel(エクセル)
- 回答数3
- ありがとう数4
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
チカラワザで一つずつ巡回して調べていくのが一番簡単です。 sub macro1() dim h as range dim res1 as double, res2 as double on error resume next for each h in selection if h.interior.colorindex = xlnone then res1 = res1 + h.value else res2 = res2 + h.value end if next msgbox "塗り無し合計 " & res1 msgbox "塗りあり合計 " & res2 end sub 「値のみ取得」したのを具体的にどうしたいのかご相談に書かれていませんが、自力で適切に応用してみて下さい。
その他の回答 (2)
- WindFaller
- ベストアンサー率57% (465/803)
セルに、ユーザー定義関数としても、関数のまま置くことが可能ですが、以下は、マクロで使った方がよいです。 '// Function ColorSum(rng As Range, Optional bln = False) 'rng は、セルの範囲, bln は、False デフォルト、色付きのセル, True, 色なしのセル Dim cSum As Double Dim nSum As Double Dim c As Range For Each c In rng If VarType(c.Value) = vbDouble Then If c.Interior.ColorIndex <> xlColorIndexNone Then cSum = cSum + c.Value Else nSum = nSum + c.Value End If End If Next c If bln Then ColorSum = nSum Else ColorSum = cSum End If End Function '例: Sub Test01() Dim r As Range Set r = Range("A1", Cells(Rows.Count, 1).End(xlUp)) r.Cells(r.Count + 1, 1).Value = ColorSum(r) r.Cells(r.Count + 2, 1).Value = ColorSum(r, True) End Sub '//
関連するQ&A
- エクセルのVBAを使って、セルの値の検索をしたいと思ってます。
エクセルのVBAを使って、セルの値の検索をしたいと思ってます。 ですが、cells.findのように、アクティブセルが移動することなしに、値のみを取得し、変数に格納したいと思っていますが、どうすればよいか、見当がつきません。 繰り返し構文を使えば、検索はできますが、それだと、無駄に重くなりそうなので、何か良い方法はありませんか?
- ベストアンサー
- オフィス系ソフト
- エクセルVBAで設定したセルの値
エクセルVBAについての質問です。 例えば、A1とB1のセルの値を参照している数式がC1セルに設定してあるとします。 さらに、D1のセルにはC1の値を参照している数式が設定してあるとします。 VBAでA1、B1のセルの値を変更したとします。 次のステップのVBAでC1、D1のセルを参照すれば、A1、B1の変更が反映された後の正しい値である C1、D1の値が取得できるのでしょうか? できて当たり前だと思うのですが、セルに設定してある数式が大変複雑であったりすると、ちゃんとA1、B1の変更が反映された正しいC1、D1セルの値がVBAで取得できるのかちょっと不安です。 ばかな質問かもしれませんが、回答をよろしくお願い致します。
- ベストアンサー
- その他MS Office製品
- エクセルVBAでセルの色を取得できますか?
エクセルVBAについて教えてください。 セルの色のカラーコードを取得とかってできますでしょうか? 「#000000」みたいに。
- ベストアンサー
- その他(業務ソフトウェア)
- VBA アクティブなセルのシート名を取得したい
エクセル2010使用です。 VBAで、アクティブなセルのあるシート名を取得する方法を教えてください。 マクロ.xls (マクロシートA1) ←今回のマクロを書き込んだファイル 参照.xls (参照シートA1) 入力.xls (入力シートF3) この3つのエクセルファイルを開きます。 ( )内はそれぞれの前面にあるシート名と選択されたセルです。 入力シートのF3にカーソルをおいて下記マクロを実行すると MsgBox ActiveSheet.Name & ActiveCell.Address 「マクロシート F3」と返されます・・・ ほしい結果は「入力シート F3」なんです。 このような場合にアクティブセルのあるシート名を取得する方法があれば教えてください。 よろしくお願いいたします。
- ベストアンサー
- Excel(エクセル)
- EXCELでセルの値を取得したい
EXCELで、各行の一番最後のセル(右端)の値を取得したいのですが どうすればできますか。 関数やマクロがわからないので、ここで質問させていただきました。 どなたか教えていただけると助かります。 よろしくお願いいたします。
- 締切済み
- その他(業務ソフトウェア)
- エクセルVBAで関数が入った空白セルの取得
エクセルVBAで下記のようなセルの参照をしたいのですが、よろしくお願いします。(エクセル2002です) A B C D E F 1 78 80 セル(A1)(B1)には値も関数も入れられています。 セル(C1)(D1)(E1)には値は入っていませんが、ワークシート関数が組み込まれており空白となっています。(関数の""にて空白) セル(F1)には何も入力されていません。 今回はセル(B1)の80の値を取得できるようにVBAで下記のようにコードを組みました。 Range("F1").End(elToLeft).Activate そうすると、セル(E1)に関数があるために(?)(E1)がアクティブな状態となります。 関数が入力されていても空白として(B1)をアクティブな状態にするために良い方法はありますでしょうか? 誠に申し訳ございませんが、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Excel VBA フォーム内のTXTBOX 値取得について
お世話になります VBAフォーム内のTXTBOXの入力についてですが 「今まで」 TXTBOXに値入力ボタンクリック時に書き込み処理でしたが 「わからないこと」 次に開くとTXTBOXに(セル)に入力した値を取得しボタンクリックなしでリアルタイムに書き込みをしたいのですが、 イメージ的に、テキストボックスとセルのリンクみたいな感じが理想です、分かる方宜しくお願い申し上げます。 Excel 2003 XP Pro VBA 初心者以下
- ベストアンサー
- オフィス系ソフト
- VBA セルの値を別セルにコピーするには
VBAでPastespecialでセルの値を別セルにコピーするマクロを組みたいです。 以下は参考にしたソースコードです。 Worksheets("Sheet1").Range("A1:B10").Copy Worksheets("Sheet2").Range("A1").PasteSpecial _ Paste:=xlPasteValues, _ Operation:=xlNone, _ SkipBlanks:=False, _ Transpose:=False あるExcelマクロの入力フォームSheetに、製品リストと使用している場所のマスタデータをクエリで読み込んで、製品IDと場所のコードを入力したらINDEX関数で抽出し、マクロ実行ボタンを押すと抽出結果を入力フォームの入力欄に貼り付けします。 上記のマクロだと貼り付けする元セルを移動させたら内容がずれた値がそのまま貼り付けされてしまうと思われますが、地道にコードのコピー元のセルを書き直さないといけないのでしょうか。 Excelの関数だと参照範囲を固定したら掴んで移動させてもセル番地が連動して移動してくれますが、マクロの場合どのようにすれば良いでしょうか。 また、複数個所のセルをコピーするので Paste:=xlPasteValues, _ Operation:=xlNone, _ SkipBlanks:=False, _ Transpose:=False をコピーするセルの箇所に毎回入れていますが、コピー元のセル・コピー先のセル番地を一括して実行する方法はありますでしょうか。 VBAはソースコードを参考に当てはめているだけで、自力でコードを書くスキルは皆無です。 Excelは2016です。 詳しい方いましたらご教授ください。よろしくお願い致します。
- ベストアンサー
- Visual Basic
- EXCEL VBAで探した値を色を付ける
EXCEL VBAで探した値を色を付ける方法が知りたいです。 シート2の値を参照してシート1の中からVBA シート2の数字を見つけて 合ったら シート1の同じ数字の背景に色をつけていく そんなVBAが作りたいのですが いい案が浮かばないのでどなたか教えていただけませんか? よろしくお願いいたします。 Sheet1 sheet2 A A 1 10 : 1 12 2 11 : 2 14 3 12 : 3 15 4 13 : 5 14 : 6 15 : 7 16 sheet1の12・14・15の所の背景を色を付けたいのですが うまくいかないのでよろしくお願いいたします
- ベストアンサー
- その他(ソフトウェア)
- EXCEL VBA シート内の特定のセルに値が入…
EXCEL VBA シート内の特定のセルに値が入力された際に処理を実行するプログラム EXCELシート内の特定のセルに値が入力された際に処理を実行するプログラムをEXCEL VBAで作成したいと考えています。 EXCELに計測データを取込み、このデータが設定値以外の場合のみ、トリガーを出す様なイメージで使いたいと思います。 どの様に考えれば良いでしょうか?サンプル等ありましたら紹介ください。 上記質問の”トリガー”について補足します。 あるセルに値が入力されたら、マクロを実行するという風にしたいという意味です。 単純にマクロ実行を手動で行うのでは無く、ある値が判定値以外の場合に他アプリケーションを操作したいという意味です。。
- ベストアンサー
- 開発
お礼
参考になりました。ありがとうございます。