• ベストアンサー

エクセル マクロ 見つけてセレクトする!

超初心者です。よろしくお願いします。 セルA1~A100の間の最小値を見つけて、その最小値のすぐ右側のB列のセルをセレクトするまでのマクロを作成したいです。 どのように記述したらよいでしょうか。

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

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

一例です。 最小値が、複数あった場合は無視しています。 Sub Macro1() saishou = WorksheetFunction.Min(Columns("A:A")) Columns("A:A").Find(What:=saishou, LookAt:=xlWhole).Offset(0, 1).Activate End Sub

c7_d30ea200
質問者

お礼

回答ありがとうございます。一番短くまとめていただいたのでBAにいたしました。疑問点があったのでまたこのプログラムについて質問をしたいと思います!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

noname#203218
noname#203218
回答No.3

他の方は最小値が複数ある場合の一例です。 Sub test() Dim c, Myrange, target As Range Dim Mymin As Long Set Myrange = Range("a1:a100") Mymin = Application.WorksheetFunction.Min(Myrange) For Each c In Myrange If c = Mymin And c <> "" Then If target Is Nothing Then Set target = c.Offset(, 1) Else Set target = Union(target, c.Offset(, 1)) End If End If Next c target.Select End Sub

c7_d30ea200
質問者

お礼

回答ありがとうございます。ごめんなさい、ちょっと私には解読が難しいのでとりあえず今は見送らせていただきます。

全文を見る
すると、全ての回答が全文表示されます。
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

例えば次のようなコードにします。 Sub 試験() Dim i As Integer Dim m As Long m = WorksheetFunction.Min(Range("A1:A10")) Set x = Range("A1:A10").Find(m, LookIn:=xlValues) i = Range(x.Address).Row ActiveSheet.Range("B" & i).Select End Sub

c7_d30ea200
質問者

お礼

回答ありがとうございます。頑張ったら理解できそうなので別の場面で使えるときがあったら使わせていただきます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excelのマクロで1個右のセルをセレクト

    セルa1をセレクトしてますが、そのマクロを使えばb1をセレクト、そこからマクロでc1をセレクト…とマクロを使うごとに1個右をセレクトするようにするには、マクロにどう入力したら良いでしょうか? キーボードの「→」で記録すると今セレクトしてるセルにしか移動できません。 どなたか知恵をお貸し下さい。

  • エクセルのマクロで

    ある範囲(例えばA1:A100)を検索して 最小値のセルに色付するというマクロはどのように 記述すればいいのでしょうか? よろしくお願いします。

  • エクセルのマクロの質問です。

    エクセルのマクロの質問です。 こんにちわ。エクセルのマクロを始めて間もないものです。 下記ようなマクロを組みましたが「Windows("B.xls").Activate」(※の部分)でとまってしまいます。 なぜかもわからず困っています。 Workbooks.Open Filename:="B.xls" For i = 1 To 1000 Step 1 Range(Cells(i, 1), Cells(i, 5)).Select Selection.Copy Windows("A.xls").Activate Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).Select ActiveSheet.Paste ※ Windows("B.xls").Activate Next i 一応、動作としては Bのマクロを開く→ループ始点(1000回繰り返す) 一回目⇒A1~B5をコピー→Aのエクセルを開く→A列のセル1行目に貼り付ける→Bのエクセルを開く 二回目⇒A2~B5をコピー→Aのエクセルを開く→A列のセル2行目に貼り付ける→Bのエクセルを開く . . . ループ終点 こんな感じで作成しましたが、どうしても上手く動かないで困っています。 無駄な動作が多いかもしれませんが、ぜひアドバイスをお願いします。 また、もっと簡単な動作ができるのであればそちらもお願いします。

  • エクセル マクロ 置き換え?

    マクロ初心者です。 A1に「10 00」とあります。この10と00の間にあるスペースを消して「1000」としたいです。 他にも「1 000 000」というのもあったりします。これもスペースを消して「1000000」としたいです。 A1のセルの中にあるスペースを消すにはどのように記述したら良いでしょうか。 内容も覚えたいので、多少長い記述になっても初心者に優しい記述の仕方を教えてくださいませ。 よろしくお願いします。

  • エクセルマクロでの計算について(2007)

    エクセルマクロ初心者です。 試行錯誤しながら作成しています。 セルB1には直接計算式を入れており(=(480+(A1)*10)/480*I1) その結果次第(70以下)でセルC1に計算結果(=(75-B1)*.48)をいれて 70より大きければセルC1に"-"を入れたいのですが上手く計算してくれません。 この処理を約65個のセルにしようと思っています。(セルの列はバラバラです) どうすればよいかご教示ください。 ちなみに現在作成している文は Private Sub 計算_Click() Worksheets("sheet2").Select If Range("B1").Value <= 70 Then Range("C1").Formula = "=(75 - (B1)) * 0.48" Else: Range("C1").Value = "-" End If End Sub よろしくお願いいたします。

  • EXCELのマクロで。。。

    シートAのセルC2の値(数字)を シートBのE、F、Gの各列のうち空いている一番左のセルで、かつ、D列に何か書いてある一番下の行のセル に転記したいです。 たとえば、シートBが図のような場合にはF28です。これが毎回、変化します。 マクロの記述を教えて下さい。よろしくお願い致します。

  • エクセル2010のマクロについての質問です。

    エクセルにてマクロを組もうと色々調べているのですが、 どうしてもわからないため教えていただきたいことがあります。 現在、マクロを実行すると固有の文字をアクティブセルに挿入するというマクロを作成しました。 このマクロを少し改造したいのですが、A1とB1に=のものが入っている行の特定の列のセルに固有の文字を挿入するという風にしたいです。 例えば、Aの列にはA1には1、A2には2という風に順に10間での数字が入っていて、 B1には9が入っている場合、C9のセルに固有の文字を挿入するという感じです。 B1を7に変えた場合、C7に固有の文字が挿入されるという感じにしたいです。 質問の仕方が下手でわかりにくいかも知れませんがお知恵をお貸しください。 よろしくお願いします。

  • EXCELのマクロがわかりません・・・

    現在、A列にデータが並んでいるのですが、 これを7つ区切り(例:A1~A7、A15~A21)にして、 別シートに用意した表に行列を入れ替えて、 貼り付けるマクロを作っているのですが、 なにぶんVBは素人ですので、よくわかりません。 今作ろうとしているマクロは、 「元データ」セルのA1からA7までをコピーして、 「作成データ」セルのB2を起点として、 コピーした内容の行列入れ替えを行い貼り付け、 以後、「元データ」のコピー範囲を7つづつ 下にずらし、「作成データ」の貼り付け起点を 1つづつ下にずらして、「元データ」のA列の 最後までくりかえすものです。 必ず「Range」文で引っかかってしまうのですが、 何か構文的におかしいでしょうか? かなり急ぎですので、 わかる方、よろしくお願いしますっ!! 下に、作成したマクロを貼り付けます。 Sub Macro3() ' ' Macro3 Macro ' マクロ記録日 : 2005/12/5 ユーザー名 : *** Worksheets("元データ").Activate 開始行 = -6 終了行 = 0 ペースト行 = 0 Do 開始行 = 開始行 + 7 終了行 = 終了行 + 7 ペースト行 = ペースト行 + 1 開始セル番号 = "A" & 開始行 終了セル番号 = "A" & 終了行 ペーストセル番号 = "B" & ペースト行 Range("開始セル番号:終了セル番号").Select Selection.Copy Sheets("作成データ").Select Range(ペーストセル番号).Select Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False _ , Transpose:=True Loop End Sub

  • エクセルのマクロ

    A列にアルファベット、B列からE列まで数字が入力されている表があります。 A1から順に(A1→A2→A3→・・・)、A列の文字を調べてそれが"A"であった場合のみ、同じ行のB列からE列の最大値をF列に、最小値をG列にコピーする(A列の文字が"A"以外の場合は何もせず下の行を調べる)、ということを繰り返し、A列が空白になった時その作業を中止する、というマクロを作りたいのです。 もちろん、一つの表だけならA列で並べ替えをして関数を使えば簡単にできますが、表がたくさんあるので自動化したいと思います。 マクロに関してはまったくの初心者なので、お知恵をお借りできればうれしく思います。

  • Excelのマクロについて

    分かる人がいれば、教えてください!! Excel上のセル(A1~A10)をクリックしたら"○"をB1~B10のセルをクリックしたら"×"になるようなマクロを作りたいんですけど、どうすれば良いのでしょうか? ちなみに例えばA1~A10に○がついていて、そのA列のどれかをクリックしたら空白になるようなマクロもお願いします。 大変困っているのでよろしくお願いします。

このQ&Aのポイント
  • VIDEOSTUDIO2021でモザイクを掛ける方法を教えてください
  • ソースネクスト株式会社の製品VIDEOSTUDIO2021でモザイクを掛ける手順について教えてください
  • VIDEOSTUDIO2021でのモザイク掛け方法を教えてください
回答を見る

専門家に質問してみよう