• ベストアンサー

セルの隣のセルの値を取得 VBA

初歩的な質問ですいません 検索したセル(最大値)の隣のセルの値(L)を取得したいです。 どこまでのコードを貼り付けたらいいかわかりませんが、 ret = Application.Max(Range("M:M")) と変数に格納したのですが、その後 piyo = ret.ActiveCell.Previous このようにしてみましたが、取得出来ていないようです。 記述法なのか、よろしくお願いします。

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

  • ベストアンサー
  • chie65535
  • ベストアンサー率43% (8519/19367)
回答No.1

以下のようにします。 Dim ret As Range Dim piyo As Variant Set ret = Range("M:M").Find(Application.Max(Range("M:M"))) piyo = ret.Offset(0, -1).Value MsgBox piyo >ret = Application.Max(Range("M:M")) 欲しいのは「最大値の場所」なのに、これでは「最大値(セルの中身の値)そのもの」が取り出されます。 >piyo = ret.ActiveCell.Previous 欲しいのは「1つ手前のセルの中身の値」なのに、これでは「今のカーソル位置でShift+Tabを押した時の位置」になります。 それに「今のカーソル位置(つまり、ActiveCell)」を変更してないので「ActiveCell.Previous」は使えません。

関連するQ&A

  • セルの値が欲しい

    セルに入力されている値を取得する方法といいますか理解が今だ出来ません エクセルの上記に入っている値*画像添付とセルに入力されている値が違う場合 セルに入力している値を取得したいのです、説明がわかりにくいかもしれませんので、情報が足らない際はおしゃってください、よろしくお願いします。 下記のコードでは画像に入っている値を取り出します。 Sub test() Dim ret As Range Dim piyo As Variant Application.ScreenUpdating = False Set ret = Range("M:M").Find(Application.Max(Range("M:M"))) piyo = ret.Offset(0, -1).Value MsgBox piyo END Sub

  • vbaでセル取得について

    お世話になります。 初歩的な事なのですが、 変数を使ったセルの取得で、 range("a1:b2")を取得する場合に 数字の部分が変数だったらどういう記述になるでしょうか。 ”のつける位置が良く分からず、どうつけても赤字でエラー になります。またcellsの場合も行数や列数が変数の場合の 記述の仕方をお教え頂きたく宜しくお願い致します。

  • VBAで、セル(Range)のオブジェクトが取得できない

    セルの情報を取得したいのですが、何故か以下のように書くと上手い具合に取得できません(A、B、Cは数値の変数)。 ------ Dim Rng As Range 'セル範囲を格納 Set Rng = Worksheets(1).Range(Cells(A, B), Cells(A, C)) ------ 以下のようにしてやると、何とか取得できます。 Worksheets(lngASNo + 1).Select Set Rng = Range(Cells(A, B), Cells(A, C)) どこが悪いのでしょうか? もし、判る方がいらっしゃいましたら、よろしくお願いいたします。

  • VBA★findを使って見つけたセルの値を取得

    AA="タナカ" Selection.Find(What:=AA, After:=ActiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, MatchByte:=False, SearchFormat:=False).Activate 自動マクロでコレをつくりました。 タナカを見つけてその隣の変数を取得するというものを作りたいと思っています。 関数で言うとVlookupでやるものをマクロ化しようとしています。 検索して見つかったセルの右隣のセルの値を取得するにはどうしたらいいですか?

  • 選択したセルの座標の取得

    選択したセルの座標の取得 sheet1    A B C   1   2  α     3     sheet1のB2にはαという文字が挿入されており、ハイパーリンクの設定がしてあります。 B2をクリックするとsheet2に移行します。 sheet1で選択したセルの位置を取得したいのですが、上手くいきません。 ご教授の程、宜しくお願いします。  現在の記述は以下の通りです。  Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)  Dim gyo As Long  Dim ret As Long  gyo = ActiveCell.Row  ret = ActiveCell.Column  MsgBox "行番号" & gyo & "列番号" & ret  End Sub Sheet1のB2を選択して、Sheet2に移行した時に、Msgboxには、 行番号2 列番号2 というようにしたいのです。

  • Excel VBAのInpuboxの文字列

    Inputboxにセル番地A1を入れ戻り値を変数に格納してその変数をRange またはCellsに組み込む場合、どう記述すればいいでしょうか。

  • エクセルのVBAを使って、セルの値の検索をしたいと思ってます。

    エクセルのVBAを使って、セルの値の検索をしたいと思ってます。 ですが、cells.findのように、アクティブセルが移動することなしに、値のみを取得し、変数に格納したいと思っていますが、どうすればよいか、見当がつきません。 繰り返し構文を使えば、検索はできますが、それだと、無駄に重くなりそうなので、何か良い方法はありませんか?

  • 行方向の同じ値のセルを結合するマクロ

    ネットで色々調べながら、A列方向の同じ値のセルを結合させるマクロ を作ってみたのですが、もっと簡単にできるようでしたら教えていただきたいです。 どうぞよろしくお願いいたします。 Sub セル結合() Dim r As Integer '行数 Dim i As Integer 'カウンタ r = Sheets(1).Range("a1").CurrentRegion.Rows.Count - 1 Application.DisplayAlerts = False For i = 1 To r Cells(i, 1).Activate '項目の一つ下のセルをアクティブに If ActiveCell.Value = ActiveCell.Offset(1).Value Then Range(ActiveCell, ActiveCell.Offset(1)).Merge End If Next Application.DisplayAlerts = True End Sub

  • vba  対象セルが空白の間動作を繰り返すには?

    下記を走らせると、セルが右端まで行ってとまります。 そうなる前に、対象セル範囲が空白になった時点で、動作を止めたいのですが どう記述するのがいいでしょうか? Dim u As Integer, o As Integer Application.Calculate For u = 2 To 3 For o = 7 To 2000 If Cells(u, o) = "" Then Range("G2").Select Range("G2").End(xlToRight).Select ActiveCell.Resize(6, 5).Select Selection.Cut Range("B2").Select Range("B2").End(xlDown).Select ActiveCell.Offset(1).Select ActiveSheet.Paste End If Next o Next u End Sub

  • Excel.Rangeで取得した値を配列に格納するには?

    プログラミング初心者です。 VB.NET でExcelからデータを取得したのですが、配列等に格納したいのですが、うまくできなくて困っています。どなたか教えてください。 例)以下のデータを取得する場合 セルA(列)1(行)からA5まで セルB1からB5まで セルC1からC5まで Dim xl_APP As Excel.Application Dim xl_Book AS Excel.Workbook Dim xl_Sheet As Excel.Seets = xl_Book.Worksheets Dim xl_W_Sheet As Excel.Worksheet = CType(xl_W_Sheet.Item(1),Excel.Worksheet) 中略 Dim range_data As Excel.Range Dim i Integer Dim j Integer Dim strCel As String For i = 1 To 5 For j = 1 To 3 range_data = CType(xl_W_Sheet.Cells(i,j),Excel.Range) strCel = CStr(range_data.Value)  ↑String型変数に格納していますが、多次元配列?に格納して取り出せるようにしたいのですが、どうしたらよいのでしょうか? Next Nest <range_dataに格納されるデータ> A1:氏名 B1:学年 C:1 年齢 以下同上 ・・・・のように取り出したいと考えています。 よろしくお願いします。

専門家に質問してみよう