本ページは公開が終了した情報の複製であり、掲載時点での情報です。本ページに記載されている内容について各所に問い合わせることはご遠慮下さい。
サポート技術情報

[XL]セルに入力されてた文字列から「行および列番号」を取得する方法

文書番号: 402277

最終更新日: 1997/10/20


この資料は以下の製品について記述したものです。


この記事は、以前は次の ID で公開されていました: JP402277

概要

本文書では、Microsoft(R) Visual Basic(R) Programming System Applications
Edition (以下 VBA) を使って、セルに入力されている文字列が示している「行番
号」と「列番号」を取得する方法を、サンプル モジュールと共に解説しています。

詳細

セルに入力されている「 B15 」のようなセルの参照として認識できる文字列から、
行や列の番号を取得することができます。
  1. 入力されているセルから Range オブジェクトの Value プロパティを使用して データの取得と行う。
  2. 1. で取得した文字列と Range オブジェクトの Row プロパティを使用し行番号を 取得。
  3. 1. で取得した文字列と Range オブジェクトの Column プロパティを使用し列番 号を取得。

A1 形式の場合

サンプル 1

次のサンプル モジュールでは、ワークシート "Sheet1" のセル A19 に入力されて いる文字列を取得し、その文字列が示す行と列番号のセルへ移動しています。例え
ばセル A19 に「 B15 」と入力されている場合には、マクロ実行後はセル B15 が
選択されている状態になります。
  Sub RowCellno()
      Dim cellrange As String
      Dim rowno,colno As Integer
      cellrange = Range("sheet1!A19").Value
      rowno = Range("sheet1!" & cellrange).Row
      colno = Range("sheet1!" & cellrange).Column
      Worksheets("sheet1").Activate
      Cells(rowno, colno).Select
  End Sub

サンプル 2

「サンプル 1 」では、ワークシート "Sheet1" のセル A19 に「 ABCD 」のような セル参照として利用できない文字列が入力されている場合は「マクロエラー」が
発生します。次のサンプル モジュールでは、セル参照として利用できない文字
列が入力されていたら、エラーメッセージを表示してマクロを終了するように
しています。
  Sub RowCellno2()
      Dim cellrange As String
      Dim rowno,colno As Integer
      cellrange = Range("sheet1!A19").Value
      On Error Goto ErrorHandler
      rowno = Range("sheet1!" & cellrange).Row
      colno = Range("sheet1!" & cellrange).Column
      Worksheets("sheet1").Activate
      Cells(rowno, colno).Select
      Exit Sub
  ErrorHandler:
      MsgBox "セル参照が無効です。"
  End Sub

R1C1 形式の場合

サンプル 3

次のサンプル モジュールでは、ワークシート "Sheet1" のセル R19C1 に入力され ている文字列を取得し、その文字列が示す行と列番号のセルへ移動しています。例
えばセル R19C1 に「 R15C2 」と入力されている場合には、マクロ実行後はセル
R15C2 が選択されている状態になります。また、セル参照として利用できない
文字列が入力されていたら、エラーメッセージを表示してマクロを終了するように
しています。
  Sub RowCellno3()
      Dim cellrange As String
      Dim rowno As Integer
      Dim colno As Integer
      Dim Point
      cellrange = Worksheets("sheet1").Cells(19,1).Value
      'cellrange = Range("sheet1!A19").Value でも可能
      If Left(cellrange, 1) <> "R" Then
          GoTo ErrorHandler
      End If
      Point = Application.Search("c", cellrange, 1)
      If IsError(Point) Then
          GoTo ErrorHandler
      End If
      On Error GoTo ErrorHandler
      rowno = CInt(Mid(cellrange, 2, Point - 2))
      colno = CInt(Right(cellrange, Len(cellrange) - CInt(Point)))
      rowno = Worksheets("Sheet1").Cells(rowno, colno).Row
      colno = Worksheets("Sheet1").Cells(rowno, colno).Column
      Worksheets("sheet1").Activate
      Cells(rowno, colno).Select
      Exit Sub
  ErrorHandler:
      MsgBox "セル参照が無効です。"
  End Sub
Additional reference words: cell row column reference number indirect 参照

Keywords: KBHOWTO KB402277
Technology: kbExcel500 kbExcelSearch kbExcelWinSearch

inserted by FC2 system