• ベストアンサー

連続しないセルの範囲をマクロを使って選択したい。

見積書で「旧単価」より「新単価」の方が大きければ セルを黄色に… 小さければセルを水色に…という条件付書式を設定したセル D5を『形式を選択して貼り付け』でD列に書式のみを貼り付けようと 試みました。 【商品A見積書】     A      B      C     D     E 4  部品番号  部品名称  旧単価   新単価  数量 5  0000001   部品A    \210   ¥220    10   6  0000002   部品B    ¥520   ¥550     2 7  材料費小計 *******   *****   ******  ***** 8 9  0000004   部品C    \320   ¥420     3   10  0000005   部品C-2   ¥520   ¥450     2 11  材料費小計 *******   *****   ******  ***** この様な形で空白が出来ておりますので、全く上手くいきません。 Range("D65536").Select Selection.End(xlUp).Select で終了の位置までは選択できるのですが、 今度はD5までの空白が、商品ごとに変化してしまい 一定になりません。 このような連続しないセルの範囲を選択したい場合 どうすれば良いか御教授ください。

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

  • ベストアンサー
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.2

対象データセル範囲は Range("D5", Cells(Rows.Count, "D").End(xlUp)).Select で選択できます。 そこから、データ(定数)の入力されているセルを選択すればどうでしょうか。 D列のデータセル範囲を選択>編集>ジャンプ>セルの選択で、「定数」セルを選択 といった操作を「マクロの記録」すれば参考になるコードが得られます。 余裕があれば、Slectしないコードの書き方を研究してみてください。

hi-lite05
質問者

お礼

ありがとうございます。 私の希望そのままの結果が得られました。 ジャンプという機能を始めて使ったのですが 奥が深いですねエクセルは… エクセルを使いこなせないのに VBAなんかまだ早いのかも知れませんね… 本当に助かりました。 ありがとうございました。

その他の回答 (1)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

条件付書式を他のセルにも適用したいと言うことですよね。 D5~D6を選択 Ctrlキーを押しながらD9~D10を選択 同様にCtrlキー押しながらご希望のセルを選択します。 条件付初期のウィザードを開いてOKを押せば、選択したセル全てに適用されたと思います。

hi-lite05
質問者

お礼

ありがとうございます。 すいません、書いていませんでしたが、 部品が10個で材料費小計があるものや 部品30個で材料費小計があるもの等 かなり違いが出ます。 その組み立てた部品の小計がそれぞれ 50~100程ある見積もりを300件位はこなさないと いけませんので、アドバイス戴いた方法では 対応に時間が掛かり過ぎてしまいます。 “マクロの記録”程度の知識しかないですが VBAで対応したいと考えております。

関連するQ&A

  • マクロでのセルの選択範囲について

    マクロのセル範囲の指定でうまくできなくて困っています。 マクロでB3:B5を選択するように、コードを次のように Range(Cells(3.2), Cells(5, 2)).Select 書くと、B1:C5を選択します。 試しに、 Cells(3, 2).Select と書くと、B3を選択します。 次に、マクロを Cells(5, 2).Select と書くと、B5を選択します。 どうしてでしょうか。 宜しくお願い致します。

  • VBA、セルの選択範囲について

    下記のような表を用意し、   A   B  C  D  E 1    1月 2月 3月 合計 2 Aさん 1  2  3  6 3 Bさん 1  2  3  6 4 Cさん 1  2  3  6 5 合 計 3  6  9  18 セルの範囲選択を指定し別シートの任意のセルへコピーをVBAで行いたいのですが、 Aさん、Bさん、Cさんという範囲を選択する為に、合計という文字は含みたくないので、 Range("A2").Select Range(Selection, Selection.End(xlDown).Offset(-1)).Select と記載し、これは出来ました。 同様に、 1月、2月、3月という範囲も同様にxlToRightを使用し選択出来ました。 Range("B1").Select Range(Selection.End(xlToRight).Offset(, -1), Selection).Select しかし、B2:D4の範囲の指定の仕方がわかりませんでした。 データのレコード数は一定ではないのでB2:D4というように範囲を指定する事は出来ません。 そのときに応じてDさん、Eさんと増えたり、4月、5月と増えたりするので。 何か方法があればご指導お願いします。

  • マクロ セル範囲の選択の仕方について

    いつも回答して頂きありがとうございます。 ネット等で検索し、有効なマクロ記述を使用してセル範囲の選択を行いましたが、 自分が思っている通りに動きませんでした。 『質問内容』 C7を起点とした最終の列 (C7:D7) ← 自分の狙いの選択範囲(Dより大きい文字がきて欲しかった) 実際は、(A7:C7)が選択された。 どこらへんの記述が間違っているのでしょうか? 御指導の程よろしくお願い致します。 ちなみに下記が自分が作成中のマクロです。 Sub シートを繰り返し選択する() Dim d As Integer Dim retu As Integer d = 3 retu = Range("IV7").End(xlToLeft).Column Worksheets(Worksheets("一覧").Cells(d, 2).Value).Activate ActiveSheet.Range(Cells(7, 3), Cells(7, retu)).Select End Sub

  • 合計の範囲選択

    Excel2000です。シート1のB10とシート2のC10に小計があります 総計をシート1のD1セルにSUM関数で出す時、シート1のB10を選択してから シート2のC10を選択するには、どうしたら良いですか。

  • エクセルVBAで、とびとびのセルの順次選択方法?!

    仮にA1:B10という範囲内で、空白のセルだけを一つずつ順番に選択しようと思い、以下のコードを書いてみました。 実行してみると、範囲内がすべて空白の場合にはA1→B1→A2→B2→・・・と、選択してくれます。 しかし、空白と空白以外のセルが混在していると、最初の空白セルから下に、範囲内の空白セル数分だけ、空白であると否とを問わず選択してしまいます。 ( ̄□ ̄;)!! myRngには空白セルだけを指定され、myRng.Cells.Countでもちゃんと空白セル数がカウントされます。 でも、myRng.Cells(i).Select では正しく選択されないのはなぜでしょうか? Cells(i)を使用せず、ループを For Each c In myRng c.Select Application.Wait Now + TimeValue("0:00:01") Next c で回せば選択できるのに・・・・・。 Sub test01() Dim x As Long, i As Long, myRng As Range With ActiveSheet Set myRng = .Range("A1:B10").SpecialCells(xlCellTypeBlanks) x = myRng.Cells.Count For i = 1 To x myRng.Cells(i).Select Application.Wait Now + TimeValue("0:00:01") Next i End With Set myRng = Nothing End Sub ご教示くださいませ。 (o。_。)oペコッ.

  • エクセル連続していない不規則な数値セルの小計を右隣空白セルに一発で出すには?

     エクセル2000で定期的に部材の出庫表を作成しているのですが、日々、データーが変動し、表が更新されます。    A   B  C  D  E  F  G 1コード   1  2  3  4  5  6  2名称   数量 ← ← ← ← 3部材1  10  5    4部材2  30 24     8 5部材3  25    40 15     23 6部材4      8 15     32 7部材5      9  18 8部材6  20 30  45       45 7  上記のような形式で表が作成され、実際はもっと横長の表になります。  各部材はB3以降に数量が記載され、最右端に合計セルがあります。数値セルの各行に所々、空白セルがあります。(セルには数式は入っていない)  少しでも表を見やすくしたいので、数値データーセルが連続しているセルの右隣の空白セルに簡単に小計を差し込みたいのですがその方法が分かりません。  仕方ないので手動にてCTRLキーを押しながら任意の数値セルを選択し、Σで合計していますが、作業が進まず、ミスも出ます。  上記の表の部材1ですと、B3、C3の合計(小計)15を空白のD3セルに、部材3ならD5、E5の小計55をF5に、部材6ならB8、D8の合計95をE8に表示させたいのです。 過去にもこの質問をしたのですが、VBAでないと出来ないのでしょうか?私はVBAでの記述がよく理解できません。他に簡単に連続する数値セルの合計を右隣の空白セルに表示する方法は無いでしょうか?IF関数等を入れたりしていますが、循環エラーが出たり、上手く行かず、教えていただけませんか?手入力しか無理でしょうか?これで困っています。

  • エクセルのマクロでセル選択するには

    初心者です! エクセルのSheet1に30箇所のセルをマクロで選択したいのですが、 たまに選択するセルが変わります。 そこで、Sheet2のA1から下へSheet1の選択する位置を「B2」「C5」「D10」・・・としてマクロで一発で30箇所のセルを選択する方法を教えてください Sheet2のA1から下へ入力するセル位置はその都度変化します。 変化したときにそのマクロを実行すると選択できるといいのですが!! よろしくお願いします。

  • 選択セルの中身が変わる理由

    4月 5月 6月 商品A 87 58 210 商品B 85 90 117 商品C 100 54 130 商品D 76 210 325 合計 348 412 782 Sub 数値条件セル選択() Dim 対象セル As Range Dim 選択セル As Range 'シート内の数値セルを選択 ActiveSheet.UsedRange.Select ActiveCell.SpecialCells(xlCellTypeConstants, xlNumbers).Select '「100以上」のセルを選択 1 For Each 対象セル In Selection 2 If Val(対象セル.Value) >= 100 Then 3 If 選択セル Is Nothing Then 4 Set 選択セル = 対象セル Else 5 Set 選択セル = Union(選択セル, 対象セル) End If End If Next '検索結果の表示 If 選択セル Is Nothing Then ActiveCell.Select MsgBox "該当セルはありませんでした" Else 選択セル.Select End If End Sub 教えてください 3,4の所なのですが、最初に見つけた100以上の値(6月の210)なので 選択セルに210が入るのですが、コレは分かりました。が最後までコードを進めていくと選択セルが(4月の100)になっています。 コレはなぜでしょうか。分かりません。教えてくださいお願いします。 VBAの勉強(初心者です)

  • セルの選択

    エクセルで、マクロを作っています。 列の中に、数値がとびとびに入っている場合、数値の入っている最も下のセルはどのように選択すればいいのか教えてください。 Selection.End(xlDown).Select ↑では、空白になっているセルがあると、そこが選択されてしまうので、、、 お願いします。

  • エクセルVBA セルの値を使ってのセル選択

    セルに入力した値でセル選択の範囲を指定したいです セルの値がxの時 セルB1~Cx と セルD100~Ex+100 を同時に選択したいのですが どうすれば良いのでしょう? セルA1に50と入力されているとします Range("B1:C50,D100:E150").Select となってほしい訳です Range や Cells とか調べたのですが分かりませんでした

専門家に質問してみよう